【问题标题】:How to make an on/off switch for discord.py bot如何为 discord.py 机器人打开/关闭开关
【发布时间】:2020-11-04 18:35:23
【问题描述】:

所以我有一个包含大约 2000 行代码的不和谐机器人。

我想为机器人做一个开关开关,在 on_ready 之后,如果开关关闭,什么都不会起作用!到目前为止,这是我所拥有的:

async def on_ready():
   print("YE")

k = 1

@client.command()
@commands.has_permissions(administrator=True)
async def off(ctx):
    global k
    k = 0
    await ctx.send("**RUNNING EMERGENCY ONLY!**")

@client.command()
@commands.has_permissions(administrator=True)
async def on(ctx):
    global k
    k = 1
    await ctx.send("**I'm Awake!**")

@client.command()
async def kstat(ctx):
    if k == 0:
        await ctx.send("**EMERGENCY FUNCTIONS ONLY!**")
    else:
        await ctx.send("**I'm Running Just Fine :)**")

if k == 1:
   #million lines of code
else:
   print("LOCKDOWN")

现在函数可以工作了,所以当我做前缀+关闭或前缀+打开时,k值会改变,但函数不会死!

可能是什么原因,我该如何解决?

附:我尝试了while循环,它会无限次读取所有命令,认为该命令无限次存在并给出错误!所以我认为不能调用while循环!

我希望你们能帮助我! 谢谢:)

【问题讨论】:

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


【解决方案1】:

所以如果我理解正确,看起来一旦机器人在线,它会检查 k == 1,如果是,它会运行函数。由于您只进行一次检查,因此如果值在此期间发生变化,则不会发生任何事情。

我建议您尝试调用函数/命令(或百万行代码中发生的任何事情)并检查 k 的值,反之亦然,每次您希望调用函数而不是不断运行命令时有什么办法阻止它。

如果我误解了任何内容,请纠正我,如果可能,请发送指向您的代码的链接

【讨论】:

  • 呃,我想你能加入我的 Discord 吗? discord.gg/chilling
  • 我认为你的不和谐标签会更有帮助
  • 抱歉回复晚了,是的,TOG#6666
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
相关资源
最近更新 更多