如何使我的不和谐机器人的重复功能起作用?

时间:2021-05-24 23:59:54

标签: python discord discord.py

所以我是 discord.py 的新手,我对 Lua(另一种编码语言)有一些经验。我试图让我的机器人在等待十分钟后重复它正在做的事情。但是错误告诉我没有定义“重复”。我知道定义重复是什么,但我不知道将它定义为什么或导入什么。我的代码如下所示。

@bot.event
async def on_reaction_add(reaction, user):
    emoji = reaction.emoji

    if user.bot:
        return

    if emoji == '1️⃣':

        await user.send('Reminding you every ten minutes.')
        await asyncio.sleep(600)
        await user.send('Reminding you to stop procrastinating!')
        repeat()

应该发生什么:

当用户对消息用 "1️⃣" 做出反应时(我没有显示消息代码,因为它没有问题),我的机器人会 DM 用户说“每十分钟提醒一次”。然后机器人将等待 10 分钟,然后再次 DM 用户说“提醒你停止拖延!”除非用户说“pp!remove”,否则它会重复这个过程,我只是无法让重复功能工作。

先谢谢你。 :)

1 个答案:

答案 0 :(得分:0)

这实际上会按照您的要求执行,但这永远不会退出。不知何故,你需要让你的“停止这个!”命令设置 while 循环检查的标志。

@bot.event
async def on_reaction_add(reaction, user):
    emoji = reaction.emoji

    if user.bot:
        return

    if emoji == '1️⃣':

        await user.send('Reminding you every ten minutes.')
        while True:
            await asyncio.sleep(600)
            await user.send('Reminding you to stop procrastinating!')