使用其他函数停止函数中的循环

时间:2018-06-03 09:50:13

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

在编码Discord机器人时,我想创建一个重复@mention用户的函数,直到他们用另一个命令(override)作为响应。

global boolean
boolean = False    
@bot.command(pass_context = True)
async def wakingTheDead(ctx, user:discord.Member):
    global owner
    owner = ctx.message.author
    global target
    target = user
    print("reassigned logged")
    msg = 'Calling {}!!!'.format(user.mention)
    while boolean == False:
        await ctx.send(msg)
        await asyncio.sleep(3)


@bot.command(pass_context = True)
async def override(ctx):
    if ctx.message.author == owner or ctx.message.author == target:
        boolean = True
        await ctx.send("```css\n Overriding...```")
    else:
        await ctx.send("```prolog\n You're Not Authorised To Override This!```")

使用此代码,override可以正常工作,但布尔值的更改似乎不会影响wakingTheDead中的while循环。

同样,我真正想做的是拥有一个可以跟踪不同服务器的所有消息并使用它们做事的机器人。

例如,当用户最终在同一服务器上响应时,!wakingTheDead命令将停止@mentioning用户。

我知道这可能是你见过的最疯狂的代码,但是嘿,如果没有指导,我无法改进:)

0 个答案:

没有答案