mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-11 05:20:57 +00:00
fix: nakuru热重载失败
This commit is contained in:
@@ -188,14 +188,16 @@ class QQBotManager:
|
|||||||
|
|
||||||
用于在热重载流程中卸载所有事件处理器
|
用于在热重载流程中卸载所有事件处理器
|
||||||
"""
|
"""
|
||||||
|
import config
|
||||||
self.adapter.unregister_listener(
|
self.adapter.unregister_listener(
|
||||||
FriendMessage,
|
FriendMessage,
|
||||||
on_friend_message
|
on_friend_message
|
||||||
)
|
)
|
||||||
self.adapter.unregister_listener(
|
if config.msg_source_adapter == 'yirimirai':
|
||||||
StrangerMessage,
|
self.adapter.unregister_listener(
|
||||||
on_stranger_message
|
StrangerMessage,
|
||||||
)
|
on_stranger_message
|
||||||
|
)
|
||||||
self.adapter.unregister_listener(
|
self.adapter.unregister_listener(
|
||||||
GroupMessage,
|
GroupMessage,
|
||||||
on_group_message
|
on_group_message
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ class NakuruProjectMessageConverter(MessageConverter):
|
|||||||
|
|
||||||
yiri_msg_list = []
|
yiri_msg_list = []
|
||||||
import datetime
|
import datetime
|
||||||
|
# 添加Source组件以标记message_id等信息
|
||||||
yiri_msg_list.append(mirai.models.message.Source(id=message_id, time=datetime.datetime.now()))
|
yiri_msg_list.append(mirai.models.message.Source(id=message_id, time=datetime.datetime.now()))
|
||||||
for component in message_chain:
|
for component in message_chain:
|
||||||
if type(component) is nkc.Plain:
|
if type(component) is nkc.Plain:
|
||||||
@@ -89,7 +90,7 @@ class NakuruProjectEventConverter(EventConverter):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def target2yiri(event: typing.Any) -> mirai.Event:
|
def target2yiri(event: typing.Any) -> mirai.Event:
|
||||||
yiri_chain = NakuruProjectMessageConverter.target2yiri(event.message, event.message_id)
|
yiri_chain = NakuruProjectMessageConverter.target2yiri(event.message, event.message_id)
|
||||||
if type(event) is nakuru.FriendMessage:
|
if type(event) is nakuru.FriendMessage: # 私聊消息事件
|
||||||
return mirai.FriendMessage(
|
return mirai.FriendMessage(
|
||||||
sender=mirai.models.entities.Friend(
|
sender=mirai.models.entities.Friend(
|
||||||
id=event.sender.user_id,
|
id=event.sender.user_id,
|
||||||
@@ -99,7 +100,7 @@ class NakuruProjectEventConverter(EventConverter):
|
|||||||
message_chain=yiri_chain,
|
message_chain=yiri_chain,
|
||||||
time=event.time
|
time=event.time
|
||||||
)
|
)
|
||||||
elif type(event) is nakuru.GroupMessage:
|
elif type(event) is nakuru.GroupMessage: # 群聊消息事件
|
||||||
permission = "MEMBER"
|
permission = "MEMBER"
|
||||||
|
|
||||||
if event.sender.role == "admin":
|
if event.sender.role == "admin":
|
||||||
@@ -206,6 +207,7 @@ class NakuruProjectAdapter(MessageSourceAdapter):
|
|||||||
|
|
||||||
def is_muted(self, group_id: int) -> bool:
|
def is_muted(self, group_id: int) -> bool:
|
||||||
import time
|
import time
|
||||||
|
# 检查是否被禁言
|
||||||
group_member_info = asyncio.run(self.bot.getGroupMemberInfo(group_id, self.bot_account_id))
|
group_member_info = asyncio.run(self.bot.getGroupMemberInfo(group_id, self.bot_account_id))
|
||||||
return group_member_info.shut_up_timestamp > int(time.time())
|
return group_member_info.shut_up_timestamp > int(time.time())
|
||||||
|
|
||||||
@@ -216,8 +218,12 @@ class NakuruProjectAdapter(MessageSourceAdapter):
|
|||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
logging.debug("注册监听器: " + str(event_type) + " -> " + str(callback))
|
logging.debug("注册监听器: " + str(event_type) + " -> " + str(callback))
|
||||||
|
|
||||||
|
# 包装函数
|
||||||
async def listener_wrapper(app: nakuru.CQHTTP, source: self.event_converter.yiri2target(event_type)):
|
async def listener_wrapper(app: nakuru.CQHTTP, source: self.event_converter.yiri2target(event_type)):
|
||||||
callback(self.event_converter.target2yiri(source))
|
callback(self.event_converter.target2yiri(source))
|
||||||
|
|
||||||
|
# 将包装函数和原函数的对应关系存入列表
|
||||||
self.listener_list.append(
|
self.listener_list.append(
|
||||||
{
|
{
|
||||||
"event_type": event_type,
|
"event_type": event_type,
|
||||||
@@ -225,6 +231,8 @@ class NakuruProjectAdapter(MessageSourceAdapter):
|
|||||||
"wrapper": listener_wrapper,
|
"wrapper": listener_wrapper,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 注册监听器
|
||||||
self.bot.receiver(self.event_converter.yiri2target(event_type).__name__)(listener_wrapper)
|
self.bot.receiver(self.event_converter.yiri2target(event_type).__name__)(listener_wrapper)
|
||||||
logging.debug("注册完成")
|
logging.debug("注册完成")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -236,7 +244,7 @@ class NakuruProjectAdapter(MessageSourceAdapter):
|
|||||||
event_type: typing.Type[mirai.Event],
|
event_type: typing.Type[mirai.Event],
|
||||||
callback: typing.Callable[[mirai.Event], None]
|
callback: typing.Callable[[mirai.Event], None]
|
||||||
):
|
):
|
||||||
nakuru_event_name = self.event_converter.yiri2target(event_type)
|
nakuru_event_name = self.event_converter.yiri2target(event_type).__name__
|
||||||
|
|
||||||
new_event_list = []
|
new_event_list = []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user