From bc3cffa04126b1bde5d25faaf6cd01bbd3a1cecf Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Mon, 2 Jan 2023 11:05:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=87=8D=E8=BD=BD=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=96=B0=E7=9A=84bot=E7=BA=BF=E7=A8=8B=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=8E=9F=E7=BA=BF=E7=A8=8B=E4=B8=AD=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 5 +++-- pkg/qqbot/manager.py | 26 ++++++++++++-------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/main.py b/main.py index d99f420a..79f0c07c 100644 --- a/main.py +++ b/main.py @@ -77,8 +77,9 @@ def main(first_time_init=False): timeout=config.process_message_timeout, retry=config.retry_times, first_time_init=first_time_init) - qq_bot_thread = threading.Thread(target=qqbot.bot.run, args=(), daemon=True) - qq_bot_thread.start() + if first_time_init: # 不是热重载之后的启动,则不启动新的bot线程 + qq_bot_thread = threading.Thread(target=qqbot.bot.run, args=(), daemon=True) + qq_bot_thread.start() logging.info('程序启动完成') diff --git a/pkg/qqbot/manager.py b/pkg/qqbot/manager.py index dcd1321d..594c5c28 100644 --- a/pkg/qqbot/manager.py +++ b/pkg/qqbot/manager.py @@ -70,7 +70,6 @@ class QQBotManager: else: self.reply_filter = pkg.qqbot.filter.ReplyFilter([]) - if first_time_init: self.first_time_init(mirai_http_api_config) else: @@ -78,18 +77,6 @@ class QQBotManager: pkg.utils.context.set_qqbot_manager(self) - @self.bot.on(FriendMessage) - async def on_friend_message(event: FriendMessage): - go(self.on_person_message, (event,)) - - @self.bot.on(StrangerMessage) - async def on_stranger_message(event: StrangerMessage): - go(self.on_person_message, (event,)) - - @self.bot.on(GroupMessage) - async def on_group_message(event: GroupMessage): - go(self.on_group_message, (event,)) - def first_time_init(self, mirai_http_api_config: dict): if 'adapter' not in mirai_http_api_config or mirai_http_api_config['adapter'] == "WebSocketAdapter": @@ -114,9 +101,20 @@ class QQBotManager: else: raise Exception("未知的适配器类型") - self.bot = bot + @self.bot.on(FriendMessage) + async def on_friend_message(event: FriendMessage): + go(self.on_person_message, (event,)) + + @self.bot.on(StrangerMessage) + async def on_stranger_message(event: StrangerMessage): + go(self.on_person_message, (event,)) + + @self.bot.on(GroupMessage) + async def on_group_message(event: GroupMessage): + go(self.on_group_message, (event,)) + def send(self, event, msg, check_quote=True): asyncio.run( self.bot.send(event, msg, quote=True if hasattr(config,