首页 >后端开发 >Python教程 >为什么自定义 on_message 后我的 Discord.py 机器人命令不起作用?

为什么自定义 on_message 后我的 Discord.py 机器人命令不起作用?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-17 18:56:101047浏览

Why Aren't My Discord.py Bot Commands Working After Customizing on_message?

了解问题:命令无法运行

使用 Discord.py 库时,某些用户会遇到意外行为,甚至命令无法执行尽管机器人似乎很活跃。此问题可归因于 on_message 事件处理程序。

修复问题:添加 bot.process_commands(message)

根据 Discord.py 文档,覆盖默认 on_message 事件处理程序会阻止执行其他命令。要解决此问题,需要在自定义 on_message 函数的末尾包含 bot.process_commands(message) 行。

参考文档以获取指导:

Overriding the default provided on_message forbids any extra commands from running. To fix this, add a bot.process_commands(message) line at the end of your on_message.

示例实现:

import discord
import asyncio
from discord.ext import commands

bot = commands.Bot(command_prefix = '-')
@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')

@bot.event
async def on_message(message):
    # do some extra stuff here

    await bot.process_commands(message)

按照此操作准则,您可以保留自定义 on_message 事件处理程序的功能,同时确保命令继续无缝运行。

以上是为什么自定义 on_message 后我的 Discord.py 机器人命令不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn