我编写了一个不和谐机器人,它为对消息做出反应的用户添加了一个角色。机器人还会回复消息“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))
答案 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”时,机器人都应该在您对消息做出反应之前回复您。