feat: 支持同时运行多个平台适配器

This commit is contained in:
RockChinQ
2024-02-11 23:07:38 +08:00
parent f951625025
commit 9cad94e961
22 changed files with 148 additions and 74 deletions
+3 -3
View File
@@ -362,14 +362,14 @@ class OfficialAdapter(adapter_model.MessageSourceAdapter):
def register_listener(
self,
event_type: typing.Type[mirai.Event],
callback: typing.Callable[[mirai.Event], None]
callback: typing.Callable[[mirai.Event, adapter_model.MessageSourceAdapter], None]
):
try:
async def wrapper(message: typing.Union[botpy_message.Message, botpy_message.DirectMessage, botpy_message.GroupMessage]):
self.cached_official_messages[str(message.id)] = message
await callback(OfficialEventConverter.target2yiri(message))
await callback(OfficialEventConverter.target2yiri(message), self)
for event_handler in event_handler_mapping[event_type]:
setattr(self.bot, event_handler, wrapper)
@@ -380,7 +380,7 @@ class OfficialAdapter(adapter_model.MessageSourceAdapter):
def unregister_listener(
self,
event_type: typing.Type[mirai.Event],
callback: typing.Callable[[mirai.Event], None]
callback: typing.Callable[[mirai.Event, adapter_model.MessageSourceAdapter], None]
):
delattr(self.bot, event_handler_mapping[event_type])