gpt4 book ai didi

python - on_message 事件的 Discord py Cog 问题,不起作用

转载 作者:行者123 更新时间:2023-12-04 08:30:13 30 4
gpt4 key购买 nike

最近我的 bot 越来越大,我花时间重写代码以使其与 Discord Py 的 cogs 系统一起工作

我已经正确调整了所有代码,但是我停止工作的所有 on_message 事件都没有抛出任何类型的错误消息。

模块加载正确,没有语法错误,所以我不明白会发生什么。

我的一些代码:

import discord
import random
import datetime
from discord.ext import commands

class eastereggs(commands.Cog):
def __init__(self, bot):
self.bot = bot
self._last_member = None

@commands.Cog.listener()
async def on_message(self,message):
Cheers= ["Hi", "hi", "Hello", "hello"]
if message.content in Cheers:
await message.channel.send('Hello again')
await self.bot.process_commands(message)

def setup(bot):
bot.add_cog(eastereggs(bot))

但是,它不会对数组中的任何问候语使用react

我编辑:我有多个带有数组的 on_message 事件

但似乎只有一个有效

最佳答案

问题在于你不能有两个同名的函数。如果你这样做,它只会调用最后一个。该文件将加载而不会出现任何错误。因为所有都是 on_message 事件,所以只有最后一个会起作用。但是,您可以告诉听众要“听”什么。

您可以使用@Cog.listener("on_message")(或以相同方式使用其他事件),然后以不同的名称调用您的函数。

    @Cog.listener("on_message")
async def greet(self,message):
Cheers= ["Hi", "hi", "Hello", "hello"]
if message.content in Cheers:
await message.channel.send('Hello again')
await self.client.process_commands(message)

@Cog.listener("on_message")
async def agree(self,message):
Agree = ["yes", "yep", "ok"]
if message.content in Agree:
await message.channel.send('good')
await self.client.process_commands(message)


@Cog.listener("on_message")
async def dAgree(self,message):
dAgree= ["no", "nope"]
if message.content in dAgree:
await message.channel.send('why')
await self.client.process_commands(message)

关于python - on_message 事件的 Discord py Cog 问题,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65062365/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com