当前位置: 首页 > 知识库问答 >
问题:

为什么我的on_消息事件不起作用(discord.py)

仲孙昊焱
2023-03-14

我正在制作一个工作正常的不和谐机器人,但是我想开始使用齿轮,因为我认为这是编写代码的更好的方式,但是现在我的on_message不再工作了,它也没有显示任何错误信息,我在整个互联网和所有的解释对我都不起作用,所以我决定在这里问。这是我的代码:

from discord.ext import commands

TOKEN = 'my token'

bot = commands.Bot(command_prefix="$")


class Interactions(commands.Cog):
    @commands.Cog.listener()
    async def on_message(self, message):
        msg = message.content
        hi = ["hi", "hello", "hi!", "hello!"]
        bye = ["bye", "good bye", "bye!", "good bye!"]

        # Messages in english
        if str(msg).lower() in hi:
            await message.channel.send('Hello!')

        if str(msg).lower == 'how are you?':
            await message.channel.send("I'm fine")

        if str(msg).lower == "what's your favorite food?":
            await message.channel.send("Sushi with sweet potato!")

        if str(msg).lower == "what do you eat?":
            await message.channel.send(
                "I don't eat, I'm just a simple bot :pensive:")

        if str(msg).lower == "are you fine?":
            await message.channel.send("Yes, I am")

        if str(msg).lower in bye:
            await message.channel.send("Good bye!")

def run():
    bot.add_cog(Interactions(bot)
    bot.run(TOKEN)


if __name__ == "__main__":
    run()

共有1个答案

索嘉石
2023-03-14

导入:

from discord.ext.commands import command, Cog

代码的其余部分:

TOKEN = 'my token'

bot = commands.Bot(command_prefix="$")


class Interactions(commands.Cog):
    @commands.Cog.listener()
  
    async def on_message(self, message):
        pass

这应该工作,如果不只是平我;)

 类似资料:
  • 我的代码起作用了。只有一个问题,那就是在调用任何命令后,我的on_message被调用(这会导致一些副作用)

  • Stage.close()对我不起作用。 我查看了:JavaFX2.0:关闭一个舞台(窗口) 这是我的代码: 下面是调用消息框类的代码:

  • 我正在尝试检测我的两个精灵何时发生碰撞。我做的第一件事是在我的播放器周围创建一个矩形(称为player.img),然后在我想检测的树周围创建另一个矩形(称为背景.treesrect)。我将玩家矩形的坐标设置为等于当用户按下键移动时更新的坐标,但玩家矩形不移动。然后我使用精灵.碰撞(精灵)函数来检测它们是否碰撞并且没有检测到。有人可以向我展示为什么我的播放器矩形没有更新以及其他任何可能错误的内容吗?

  • 问题内容: 我在这里有点困惑。如果我将变量传递给json_decode,它将不起作用: 第一个回显正确显示了我传递的JSON字符串,例如 第二个回显显示NULL。因此,我从第一个回显中获取了字符串,并编写了以下代码: 你怎么说,它向我展示了正确解码的数组。字符串绝对相同,我什至保留转义字符。也许是问题所在? 问题答案: 看起来您的服务器已启用。无论是将其禁用或运行通过使用它之前。

  • 还不起作用。所以我放弃链接,我只是编码:

  • 我对这段代码有一个问题,因为我似乎找不到问题所在?这是我试图解决的问题:-声明并编写一个名为valid_triangle的函数,它将表示三角形三边长度的三个实数作为参数,并根据这三个长度是否能够构成三角形输出真或假。 关于三角形的以下规则: 三角形只能有正长度的边 三角形任意两条边的长度之和必须大于第三条边的长度