我正在制作一个发送dm的不和谐机器人,用户需要对消息做出反应才能与该机器人进行交互。
首先,请使用前缀和命令名称调用bot命令。之后,机器人将为消息中标记的用户dm。机器人会要求您用表情符号做出反应,然后它将执行一些操作。问题是,我不知道如何在第一个反应后停止bot执行这些操作。可以说用户对: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