在*任何*事件中 discord.py
On *any* event discord.py
我想 运行 特定代码块用于 每个 事件。我认为如果有 on_any_event
这样的东西可能会最简单。但是,我似乎无法在文档或网络上找到任何内容。有谁知道是否有办法做到这一点,如果有,怎么做?
其他信息:
- discord.py-重写
提前致谢。
我看到两种可能性:
据我所知,discord.py 中的大多数事件都是套接字响应的“处理程序”。
您可以尝试使用 on_socket_response(message)
事件。这对于所有基于 websocket 的事件应该足够了。
如果你确实需要任何事件,你可以尝试覆盖子class中的dispatch
函数,并使用这个class作为你的机器人的 class。
例如:
from discord.ext import commands
class MyBot(commands.Bot):
def dispatch(self, event_name, *args, **kwargs):
super().dispatch("event", event_name)
super().dispatch(event_name, *args, **kwargs)
bot = MyBot(command_prefix="!")
这将在任何事件上发送额外的事件
@bot.event
async def on_event(event_name):
print(f"{event_name} is dispatched")
我想 运行 特定代码块用于 每个 事件。我认为如果有 on_any_event
这样的东西可能会最简单。但是,我似乎无法在文档或网络上找到任何内容。有谁知道是否有办法做到这一点,如果有,怎么做?
其他信息:
- discord.py-重写
提前致谢。
我看到两种可能性:
据我所知,discord.py 中的大多数事件都是套接字响应的“处理程序”。
您可以尝试使用 on_socket_response(message)
事件。这对于所有基于 websocket 的事件应该足够了。
如果你确实需要任何事件,你可以尝试覆盖子class中的dispatch
函数,并使用这个class作为你的机器人的 class。
例如:
from discord.ext import commands
class MyBot(commands.Bot):
def dispatch(self, event_name, *args, **kwargs):
super().dispatch("event", event_name)
super().dispatch(event_name, *args, **kwargs)
bot = MyBot(command_prefix="!")
这将在任何事件上发送额外的事件
@bot.event
async def on_event(event_name):
print(f"{event_name} is dispatched")