对消息做出反应后停止corutine

时间:2020-01-22 03:07:59

标签: python-3.x discord discord.py-rewrite

我正在制作一个发送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

0 个答案:

没有答案