Python Discord Bot 取消命令
Posted
技术标签:
【中文标题】Python Discord Bot 取消命令【英文标题】:Python Discord Bot cancel command 【发布时间】:2021-04-11 07:13:12 【问题描述】:您好,我想用 Python 制作一个有趣的 Discord 机器人,我写了一个垃圾邮件命令。现在我想做一个新的命令来阻止它。
命令如下:
@commands.command()
async def spam(self,ctx, msg="hi", *, amount=1):
for i in range(0, amount):
await ctx.send(msg)
有没有办法做到这一点?
【问题讨论】:
【参考方案1】:有一个简单的解决方案。在函数spam
之外,声明一个具有任何名称(即stop
)的bool
变量,并将该值实例化为False
。在垃圾邮件功能中。在 spam 函数中,声明 global stop
并将 stop
重新实例化为 False
。然后只需使用 while 循环知道何时停止,并创建另一个命令,将停止值更新为 True
结束垃圾邮件命令。
解决方案如下所示:
stop = False
@commands.command()
async def spam(self, ctx, msg='hi', *, amount=1):
global stop
stop = False
i = 0
while not stop and i < amount:
await ctx.send(msg)
i += 1
@commands.command()
async def stop(self, ctx):
global stop
stop = True
从这里,您可以添加与您的命令相关的任何其他必要逻辑。
还建议在消息之间使线程休眠,以免服务器过载。这可以通过导入time
模块并在await ctx.send(msg)
行之后注入time.sleep(1)
行来完成。
【讨论】:
非常感谢 没问题!玩得开心!以上是关于Python Discord Bot 取消命令的主要内容,如果未能解决你的问题,请参考以下文章