我正在尝试使用discord.py制作俄罗斯轮盘机器人 仅当有人使用“开始”启动游戏后,如何才能使“加入”和“射击”命令可用?
答案 0 :(得分:0)
使命令仅在使用其他命令后才可用的一种方法是在该命令内创建一个全局变量,然后在下一个命令中调用它,这样,如果不在其中使用它们,将会出错。正确的顺序。
示例:
@commands.command()
async def test(ctx):
global x
x = True
@commands.command()
async def test2(ctx):
print(x)
如果在 test 之前使用 test2 ,则会出现以下错误:
NameError: name 'x' is not defined
您可以使用 try 来解决此问题
@commands.command()
async def start(ctx):
global game
game = True
@commands.command()
async def join(ctx):
try:
print(game)
except NameError:
await ctx.send('There is no game going on')