如何修复 discord.py 中的“未解析的引用‘消息’”?

Posted

技术标签:

【中文标题】如何修复 discord.py 中的“未解析的引用‘消息’”?【英文标题】:How do I fix "Unresolved reference 'message'" in discord.py? 【发布时间】:2021-06-15 13:02:06 【问题描述】:

我目前正在用 PyCharm 编写一个机器人。我正在努力让机器人在用户提到它们时响应用户。这是代码。

@client.event
async def on_message(msg):
    if str(client.user.id) in msg:
        em = discord.Embed(title="404Bot Help", description="Use $help <command> for extended information on that command.")

        em.add_field(name="Information", value="help, server, about")
        em.add_field(name="Moderation", value="clear")
        em.add_field(name="Chat", value="send, hello, speak")
        em.add_field(name="Games & Fun", value="coinflip, 8ball")
        em.add_field(name="Miscellaneous", value="test")

        await client.send_message(embed=em)

但由于某种原因,它向我显示了这个错误。

免责声明:

我对 discord.py 很陌生,所以请尊重这一事实。美好的一天。

【问题讨论】:

您的代码包含错误部分,您的代码中没有对message 的引用 请提供minimal reproducible example 和完整的错误回溯,而不是小屏幕剪辑 【参考方案1】:

您需要使用msg.channel.send。另外,在你的 if 语句中,使用 msg.content 而不是 msg

@client.event
async def on_message(msg):
    if str(client.user.id) in msg.content:
        em = discord.Embed(title="404Bot Help", description="Use $help <command> for extended information on that command.")

        em.add_field(name="Information", value="help, server, about")
        em.add_field(name="Moderation", value="clear")
        em.add_field(name="Chat", value="send, hello, speak")
        em.add_field(name="Games & Fun", value="coinflip, 8ball")
        em.add_field(name="Miscellaneous", value="test")

        await msg.channel.send(embed=em)

【讨论】:

@404la_g 如果这对您有用,请确保将我的答案标记为正确!

以上是关于如何修复 discord.py 中的“未解析的引用‘消息’”?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Discord.py 不为语音命令运行我的异步功能?

使用 Gradle Kotlin DSL 配置 Jooq 时如何修复“未解析的引用:jdbc”

如何修复 ffmpeg 未找到 |不和谐.py

如何修复“discord.errors.ClientException:Command kick 已注册。”错误?

如何修复导入时出错的模块中的SyntaxError?

如何删除discord.py中的消息[重复]