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

JS Discord Bot 上线但不回复消息 [重复]

Discord Bot JS:编辑来自先前斜杠命令交互的回复

Discord BOT with Python,如何让它在我们发送命令的频道中回复(完成)

检查消息回复是不是为回复类型消息 discord.py

Discord Bot 无需命令即可发送消息