【发布时间】:2021-04-14 14:29:23
【问题描述】:
编辑:
解决方案是在检查功能中添加一个附加条件,我已经在后续答案中发布了详细信息。
主要问题:
我是新的python,并决定通过创建一个不和谐的机器人来学习它。
根据用户命令,我能够让机器人发送一条消息,该消息可以按照这种设计更改页面:
I want to make a multi-page help command using discord.py
我可以很好地更改一条消息的页面,但是,如果用户多次调用该命令,对机器人发送的消息之一做出反应会更改所有未超时消息的页面。我可以在代码中进行哪些更改,以便对一条消息做出反应不会触发其他消息中的页面更改?
其他问题:
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in ["◀️", "▶️"]
# This makes sure nobody except the command sender can interact with the "menu"
- 我知道wait_for会使用这个函数作为检查,但是检查参数是在哪里以及如何传入的呢?如果可能,如何添加更多参数?
reaction, user = await bot.wait_for("reaction_add", timeout=60, check=check)
- 在文档中,我无法确定 wait_for 方法的返回值,看起来它在不同情况下会发生变化。
- 我们没有将消息实例传递给 wait_for 方法,那么该方法如何知道要等待响应的消息?
- 如果检查失败,程序流程会怎样?似乎只有当 check() 返回 true 时才会执行此行下的语句。但是当检查失败时会发生什么?
【问题讨论】:
标签: python discord.py discord.py-rewrite