为什么可以';我不能在discord.py中使用这个石头剪刀之后的其他命令吗?
我正在编写一个Discord机器人,但每当我使用这个命令,rockpaperscissors命令,在游戏结束后,我就不能使用任何其他命令,如“帮助”。为什么会这样为什么可以';我不能在discord.py中使用这个石头剪刀之后的其他命令吗?,discord,discord.py,discord.py-rewrite,Discord,Discord.py,Discord.py Rewrite,我正在编写一个Discord机器人,但每当我使用这个命令,rockpaperscissors命令,在游戏结束后,我就不能使用任何其他命令,如“帮助”。为什么会这样 elif message.content == ",rockpaperscissors": await message.channel.send("```\nRock Paper Scissors\n~~~~~~~~~~~~~~~~~~~~~\nSend your move in the format
elif message.content == ",rockpaperscissors":
await message.channel.send("```\nRock Paper Scissors\n~~~~~~~~~~~~~~~~~~~~~\nSend your move in the format ,[move] e.g. ,rock\n```")
@client.event
async def on_message(message):
_ = str(message.content).lower()[1::]
computer = random.choice(RPS)
await rockPaperScissorsChecker(message, _, computer)
return
从您给出的代码中无法判断,但这里有几种可能的原因
场景#1
消息上有多个
事件
当使用事件时,您不需要编写多个事件-您可以使用if
/elif
语句来发挥您的优势。如果您选择有多个,那么脚本中最新定义的一个将是“活动”的一个
下面是如何在消息上的中分离命令:
@client.event
异步def on_消息(消息):
如果message.author.bot:
返回
elif message.content.lower().startswith(“,rockpaperscissors”):
#这里是cmd的代码
elif message.content.lower().startswith(“,cmd2”):
#这里是第二个cmd代码
#等等等等。
场景#2
您在消息上使用命令装饰器和,而不处理命令
重写(编写自己的)消息事件上的时,需要调用Bot.process\u commands()
,以使注册的命令正常工作。在幕后有一个默认的on_message
事件,它已经完成了,但是因为您正在重写自己的,所以您需要添加它:
@client.event
异步def on_消息(消息):
等待客户端处理命令(消息)
#其余的on_消息代码
参考文献:
- -“默认情况下,此协同程序在
on_message()
事件中调用。如果选择覆盖on_message()
事件,则也应调用此协同程序。”
- -命令装饰器
从您给出的代码中无法判断,但这里有几种可能的原因
场景#1
消息上有多个事件
当使用事件时,您不需要编写多个事件-您可以使用if
/elif
语句来发挥您的优势。如果您选择有多个,那么脚本中最新定义的一个将是“活动”的一个
下面是如何在消息上的中分离命令:
@client.event
异步def on_消息(消息):
如果message.author.bot:
返回
elif message.content.lower().startswith(“,rockpaperscissors”):
#这里是cmd的代码
elif message.content.lower().startswith(“,cmd2”):
#这里是第二个cmd代码
#等等等等。
场景#2
您在消息上使用命令装饰器和,而不处理命令
重写(编写自己的)消息事件上的时,需要调用Bot.process\u commands()
,以使注册的命令正常工作。在幕后有一个默认的on_message
事件,它已经完成了,但是因为您正在重写自己的,所以您需要添加它:
@client.event
异步def on_消息(消息):
等待客户端处理命令(消息)
#其余的on_消息代码
参考文献:
- -“默认情况下,此协同程序在
on_message()
事件中调用。如果选择覆盖on_message()
事件,则也应调用此协同程序。”
- -命令装饰器