Я создаю диск-бот, который отправляет дм, и пользователь должен реагировать на сообщение, чтобы взаимодействовать с ботом.
Прежде всего вы вызываете команду бота с префиксом и именем команды. После этого бот будет отмечен пользователем в сообщении. Бот попросит вас отреагировать с помощью эмодзи, после чего он выполнит некоторые вещи. Проблема в том, что я не знаю, как остановить бот от выполнения этой вещи после первой реакции. Допустим, пользователь реагирует с помощью: thumbsup: -> бот делает что-то, но если вы затем отреагируете с помощью: thumbsdown: (или удалите: thumbsup: и затем отреагируете снова), он продолжит делать это, я этого не хочу произойдет.
@client.command()
async def yesorno(ctx, member: discord.Member, *, content):
mens = ctx.message.mentions
mens.append(ctx.author)
if len(mens) != 2:
await ctx.send('One user only')
else:
# await ctx.author.send(content)
await member.send(content + ', react either with ?, or ?')
@client.event
async def on_reaction_add(reaction, user):
channel = reaction.message.channel
if channel == user.dm_channel:
if str(reaction.emoji) == '?':
await ctx.send(user.mention + ' accepted')
return
elif str(reaction.emoji) == '?':
await ctx.send(user.mention + ' declined')
return
return