diff --git a/src/config/config.py b/src/config/config.py index 6c1d54250..0dae02446 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -138,7 +138,7 @@ class BotConfig: MAI_VERSION: str = mai_version # 硬编码的版本信息 # bot - BOT_QQ: Optional[int] = 114514 + BOT_QQ: Optional[str] = "114514" BOT_NICKNAME: Optional[str] = None BOT_ALIAS_NAMES: List[str] = field(default_factory=list) # 别名,可以通过这个叫它 @@ -395,7 +395,7 @@ class BotConfig: # 机器人基础配置 bot_config = parent["bot"] bot_qq = bot_config.get("qq") - config.BOT_QQ = int(bot_qq) + config.BOT_QQ = str(bot_qq) config.BOT_NICKNAME = bot_config.get("nickname", config.BOT_NICKNAME) config.BOT_ALIAS_NAMES = bot_config.get("alias_names", config.BOT_ALIAS_NAMES) @@ -624,9 +624,14 @@ class BotConfig: def groups(parent: dict): groups_config = parent["groups"] - config.talk_allowed_groups = set(groups_config.get("talk_allowed", [])) - config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", [])) - config.ban_user_id = set(groups_config.get("ban_user_id", [])) + # config.talk_allowed_groups = set(groups_config.get("talk_allowed", [])) + config.talk_allowed_groups = set(str(group) for group in groups_config.get("talk_allowed", [])) + # config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", [])) + config.talk_frequency_down_groups = set( + str(group) for group in groups_config.get("talk_frequency_down", []) + ) + # config.ban_user_id = set(groups_config.get("ban_user_id", [])) + config.ban_user_id = set(str(user) for user in groups_config.get("ban_user_id", [])) def platforms(parent: dict): platforms_config = parent["platforms"] diff --git a/src/plugins/chat/bot.py b/src/plugins/chat/bot.py index 34d43e8da..0ae606204 100644 --- a/src/plugins/chat/bot.py +++ b/src/plugins/chat/bot.py @@ -77,10 +77,17 @@ class ChatBot: # 确保所有任务已启动 await self._ensure_started() + if message_data["message_info"]["group_info"] is not None: + message_data["message_info"]["group_info"]["group_id"] = str( + message_data["message_info"]["group_info"]["group_id"] + ) + message_data["message_info"]["group_info"]["group_id"] = str( + message_data["message_info"]["group_info"]["group_id"] + ) + logger.trace(f"处理消息:{str(message_data)[:120]}...") message = MessageRecv(message_data) groupinfo = message.message_info.group_info userinfo = message.message_info.user_info - logger.trace(f"处理消息:{str(message_data)[:120]}...") if userinfo.user_id in global_config.ban_user_id: logger.debug(f"用户{userinfo.user_id}被禁止回复") diff --git a/src/plugins/chat/message.py b/src/plugins/chat/message.py index 525f9da29..9f3db5720 100644 --- a/src/plugins/chat/message.py +++ b/src/plugins/chat/message.py @@ -313,17 +313,21 @@ class MessageSending(MessageProcessBase): def set_reply(self, reply: Optional["MessageRecv"] = None) -> None: """设置回复消息""" - if reply: - self.reply = reply - if self.reply: - self.reply_to_message_id = self.reply.message_info.message_id - self.message_segment = Seg( - type="seglist", - data=[ - Seg(type="reply", data=self.reply.message_info.message_id), - self.message_segment, - ], - ) + if ( + self.message_info.format_info.accept_format is not None + and "reply" in self.message_info.format_info.accept_format + ): + if reply: + self.reply = reply + if self.reply: + self.reply_to_message_id = self.reply.message_info.message_id + self.message_segment = Seg( + type="seglist", + data=[ + Seg(type="reply", data=self.reply.message_info.message_id), + self.message_segment, + ], + ) return self async def process(self) -> None: diff --git a/src/plugins/chat_module/deprecate_think_flow_chat/think_flow_chat.py b/src/plugins/chat_module/deprecate_think_flow_chat/think_flow_chat.py index b7b323157..c41f11032 100644 --- a/src/plugins/chat_module/deprecate_think_flow_chat/think_flow_chat.py +++ b/src/plugins/chat_module/deprecate_think_flow_chat/think_flow_chat.py @@ -375,17 +375,21 @@ class ThinkFlowChat: info_catcher.done_catch() # 处理表情包 - try: - with Timer("处理表情包", timing_results): - if global_config.emoji_chance == 1: - if send_emoji: - logger.info(f"麦麦决定发送表情包{send_emoji}") - await self._handle_emoji(message, chat, response_set, send_emoji) - else: - if random() < global_config.emoji_chance: - await self._handle_emoji(message, chat, response_set) - except Exception as e: - logger.error(f"心流处理表情包失败: {e}") + if ( + message.message_info.format_info.accept_format is not None + and "emoji" in message.message_info.format_info.accept_format + ): + try: + with Timer("处理表情包", timing_results): + if global_config.emoji_chance == 1: + if send_emoji: + logger.info(f"麦麦决定发送表情包{send_emoji}") + await self._handle_emoji(message, chat, response_set, send_emoji) + else: + if random() < global_config.emoji_chance: + await self._handle_emoji(message, chat, response_set) + except Exception as e: + logger.error(f"心流处理表情包失败: {e}") # 思考后脑内状态更新 # try: diff --git a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py index 5809e31da..d149f68b0 100644 --- a/src/plugins/chat_module/reasoning_chat/reasoning_chat.py +++ b/src/plugins/chat_module/reasoning_chat/reasoning_chat.py @@ -1,6 +1,6 @@ import time from random import random - +import traceback from typing import List from ...memory_system.Hippocampus import HippocampusManager from ...moods.moods import MoodManager @@ -255,7 +255,7 @@ class ReasoningChat: info_catcher.catch_after_generate_response(timing_results["生成回复"]) except Exception as e: - logger.error(f"回复生成出现错误:str{e}") + logger.error(f"回复生成出现错误:{str(e)} {traceback.format_exc()}") response_set = None if not response_set: