嗨!
我正在尝试为我的服务器制作一个小型票务机器人-问题是反应中的表情符号会删除频道!
因此,如果成员在新创建的频道之外使用表情符号,它将删除频道:(
我的代码现在是什么样的:
@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
guild_id = payload.guild_id
guild = self.client.get_guild(guild_id)
user_id = payload.user_id
user = self.client.get_user(payload.user_id)
message_id = payload.message_id
emoji = payload.emoji.name
if message_id == 768765161301213185 and emoji == "?":
member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
support_role = guild.get_role(760792953718308915)
category = guild.get_channel(768764177736400906)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
member: discord.PermissionOverwrite(read_messages=True, send_messages=True),
support_role: discord.PermissionOverwrite(read_messages=True, send_messages=True)
}
ticket_nr = random.randint(100,999)
channel = await category.create_text_channel(f'ticket-{ticket_nr}', overwrites=overwrites)
embed = discord.Embed(
title="How can I help you?",
description="Please wait for a supporter.")
embed.set_author(name="TiLiKas Ticket Bot")
for channel_all in guild.text_channels:
if str(channel_all) == str(channel):
if user_id != 739740219544305714 and emoji == "?":
await channel.delete(reason=None)
else:
print("ERROR")
我想要什么?
我希望机器人仅在表情符号用于新创建的频道时响应它!
答案 0 :(得分:0)
@client.event
async def on_message(message):
if message.content.startswith('$thumb'):
channel = message.channel
await channel.send('Send me that ? reaction, mate')
def check(reaction, user):
return user == message.author and str(reaction.emoji) == '?'
try:
reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check)
except asyncio.TimeoutError:
await channel.send('?')
else:
await channel.send('?')
您的check
方法应类似于:
def check(reaction, user):
return user == message.author and str(reaction.emoji) == '?' and reaction.message.channel == message.channel
此检查在这里检查: