discord.py Bot 在反应添加之前没有响应

时间:2021-03-25 11:41:16

标签: python discord discord.py

我编写了一个不和谐机器人,它为对消息做出反应的用户添加了一个角色。机器人还会回复消息“Hallo Bot”。但是当我关闭机器人并再次打开它时,机器人不会在我对另一条消息做出反应之前回复该消息。

    async def on_raw_reaction_add(self, payload):
        mitglied = discord.utils.get(payload.member.guild.roles, name="Mitglied")
        if str(payload.emoji) == "?":
            await payload.member.add_roles(mitglied)

    async def on_message(self, message):
        if message.content.startswith("Hallo Bot"):
            await message.channel.send("Hallo " + str(message.author.name))

1 个答案:

答案 0 :(得分:0)

试试这个:

@client.event
async def on_reaction_add(reaction, user):
        mitglied = discord.utils.get(user.member.guild.roles, name="Mitglied")
        user_id = reaction.user.author.id
        user = client.get_user(user_id)
        if reaction == "?":
            await user.add_roles(mitglied)
@client.event
async def on_message(message):
       if message.content.startswith("Hallo Bot"):
          await message.channel.send(f"Hallo <@{message.author.id}>")

您的代码是在一个事件中执行的,这不应该是这种情况,因为消息和反应是 2 个不同的事件。我已将它们分开,现在每当您输入“Hallo Bot”时,机器人都应该在您对消息做出反应之前回复您。