在 discord.py 中手动触发事件

Posted

技术标签:

【中文标题】在 discord.py 中手动触发事件【英文标题】:Manually trigger an event in discord.py 【发布时间】:2021-05-07 19:28:24 【问题描述】:

有没有办法手动触发像on_messageon_command_error 这样的事件? 类似于手动引发异常

【问题讨论】:

【参考方案1】:

是的,使用Bot.dispatch 方法(这对于创建自定义事件很有用),注意您必须手动传递参数

bot.dispatch("message", message) # You need to pass an instance of `discord.Message`
bot.dispatch("command_error", ctx, error) # Remember to pass all the arguments

自定义事件示例

@bot.command()
async def dispatch_custom(ctx):
    bot.dispatch("custom_event", ctx)


@bot.event
async def on_custom_event(ctx):
    print("Custom event")

没有关于它的文档,所以我不能给你链接,如果你想了解更多,请查看source code

【讨论】:

哇,谢谢!为什么官方文档上没有? 我也不知道可以创建一个突出显示某些行的 github 链接

以上是关于在 discord.py 中手动触发事件的主要内容,如果未能解决你的问题,请参考以下文章

如何改进我的队列系统 - Discord.py

在 discord.py 中,on_message 不会为一个公会触发

Discord Py 从服务器运行命令

如何在 discord.py 中使用 sqlite3 配置欢迎事件?

Discord.py 在事件之外发送消息

{discord.py} 删除特定用户的特定信息