(Discord Bot)on_raw_reaction_add(payload)问题(票务系统)

时间:2020-04-21 21:24:00

标签: python discord discord.py-rewrite

嘿,我正在用Python开发Discord Bot。这是文档:https://discordpy.readthedocs.io/en/latest/index.html

我会问一个问题。我用Python做一个不一致的机器人,需要帮助:

  1. 是否可以在与我相关的不和谐机器人中发挥作用?我想在on_raw_reaction_add事件中包含整个票务系统。这有可能吗?如果这不可能,那么如何参考例如给定的票证?

  2. 我想在票务系统中加入一个条件。创建票证时,用户获得等级“ A”。如果他已经具有该等级,则机器人将向他发送消息,他已经创建了票证,并且将无法创建其他票证。有谁知道如何检查用户的排名?我知道@ command.has_role存在,但这不适用于某种条件。

这是我的代码:

@client.event
async def on_raw_reaction_add(payload):
        message_id = payload.message_id
        if message_id == 701490140110913568:
                guild_id = payload.guild_id
                guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)
                if payload.emoji.name == 'koperta':
                                print("zlotek")
                                channel = client.get_channel(payload.channel_id)
                                message = await channel.fetch_message(payload.message_id)
                                user = client.get_user(payload.user_id)
                                emoji = client.get_emoji(700845595103068211)
                                await message.remove_reaction(emoji, user)
                                name = '✅ OPENED TICKETS ✅'
                                category = discord.utils.get(guild.categories, name=name)
                                overwrites = overwrites = {
                                guild.default_role: discord.PermissionOverwrite(read_messages=False),
                                guild.me: discord.PermissionOverwrite(read_messages=True)
                                }
                                await guild.create_text_channel(f'Ticket-0001', category=category, overwrites=overwrites)
                                role = discord.utils.get(guild.roles, name='A')
                                member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
                                await member.add_roles(role)

感谢您提供各种形式的帮助。你是最好的

0 个答案:

没有答案