Python,Discord bot 未回复消息且终端未更新
Posted
技术标签:
【中文标题】Python,Discord bot 未回复消息且终端未更新【英文标题】:Python , Discord bot not replying to messages and Terminal not being updated 【发布时间】:2021-05-17 16:26:06 【问题描述】:更新
由于某种原因,尽管我的代码看似正确,但我的 discord 机器人无法响应多条消息。此外,我在 VS Code 中遇到了一个问题:除非我关闭、重新打开编辑器并重新运行代码,否则终端不会更新!请记住,除非程序在终端上显示“就绪”,否则不和谐机器人不会运行。由于那个终端问题,我的机器人运行不完美! 那么什么会导致这样的问题呢?
注意:
当我点击运行按钮是 VSC 时,没有任何变化。(除非我重新打开编辑器,否则它不起作用)
...
@bot.event
async def on_message(message):
events = ['happy birthday', 'joyeux anniversaire']
games = ['rocket league', 'Minecraft']
while True:
if message.author == bot.user:
return
for event in events:
if event in message.content.lower():
await message.channel.send('Happy Birthday! ????????')
for game in games:
if game in message.content.lower():
await message.channel.send('It\'s play time ! ')
...
【问题讨论】:
使用if 'rocket league' in message.content.lower(): ...
有什么问题?这是python的基础知识
甚至for text in games: if text in message.content.lower(): ...
?这是Python的基础知识
@furas 我知道这真的很简单。我尝试了多次,但由于某种原因它不起作用。但是,在我关闭并重新打开编辑器后,它现在可以正常工作了!
也许您有两个文件 - 也许您在一个文件中进行了更改,但它一直在运行其他文件。或者,也许您在更改后没有重新启动机器人,而您一直在运行旧代码。
【参考方案1】:
坦率地说,我不明白你的问题,因为它是基础知识。
你必须使用另一个for
-loop。
events = ['happy birthday', 'joyeux anniversaire']
games = ['rocket league']
@bot.event
async def on_message(message):
if message.author == bot.user:
return
for event in events:
if event in message.content.lower():
await message.channel.send('Happy Birthday! ??')
for game in games:
if game in message.content.lower():
await message.channel.send(f'"game" is a good game')
【讨论】:
你应该说有问题。如果不起作用,那么您应该描述它-即。如果收到错误消息,您应该添加错误消息。句"doesn't work"
是最没用的信息。也许如果你会说它有问题,那么你就不会得到所以可能会被否决。
问题出在编辑器本身。当我运行代码时,终端中不会出现任何内容,除非我关闭编辑器,重新打开它并重新运行代码,否则不会对机器人进行任何更改。【参考方案2】:
修复:
所以我意识到问题的根源正如我预期的那样来自编辑器。但是,问题的性质仍然未知,但复制文件内容(代码)并将其移动到另一个 python 文件可能会有所帮助。此类问题有时会发生。
【讨论】:
以上是关于Python,Discord bot 未回复消息且终端未更新的主要内容,如果未能解决你的问题,请参考以下文章
如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js
Discord Bot JS:编辑来自先前斜杠命令交互的回复