gpt4 book ai didi

python - 如何使用 Python Discord 机器人 cog 读取发送的所有消息? on_message 似乎不起作用

转载 作者:行者123 更新时间:2023-12-02 03:17:02 26 4
gpt4 key购买 nike

我已经正确设置了齿轮(我知道,因为我有一个单独的齿轮来处理所有命令,因此 on_message 不会弄乱它们),但 on_message 只是不执行任何操作。

我尝试将它包含到另一个齿轮中,但我仍然没有收到任何错误,它只是不起作用。我也尝试过使用不同形式的 @bot.event 但这些都会导致错误。最后,我知道 cog 正在工作,因为主 .py 中的 on_ready 提醒我它已成功加载。

这是齿轮中的代码,应该读取所​​有消息(减去所有导入内容):

class autoresponse(commands.Cog):
def __init__(self, bot):
self.bot = bot
async def on_message(self, message):
print(message.content)

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

这是加载它的代码


@bot.event
async def on_ready():
print('bot is up')
await bot.change_presence(status=discord.Status.online, activity=discord.Game("bl help"))
for cog in [f.replace('.py', "") for f in listdir("cogs") if isfile(join("cogs", f))]:
try:
if not "__init__" in cog:
bot.load_extension("cogs." + cog)
print("Loaded cog")
except Exception as e:
print("Cog {} not loaded!".format(cog))
traceback.print_exc()

希望机器人应该将所有消息打印到控制台,因为这样我就会知道它的工作原理,并可以继续执行我希望它执行的其他操作。

最佳答案

cog 中的事件监听器需要用 commands.Cog.listener 进行装饰

@commands.Cog.listener()
async def on_message(self, message):
print(message.content)

新型齿轮的文档 can be found here

关于python - 如何使用 Python Discord 机器人 cog 读取发送的所有消息? on_message 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840817/

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