feat(chat): 引入睡眠系统,在睡眠状态下拦截消息

在消息处理的最前端 (`MessageManager`) 增加了对睡眠状态的检查。当系统处于 `SLEEPING` 状态时,将直接拦截所有新消息,不再进行后续处理。

同时,为了配合睡眠系统的正常运作:
- 将睡眠系统的定时任务初始化移至 `main.py`,确保其在应用启动时正确加载。
- 在主动思维插件 (`proactive_thinker`) 的定时任务(冷启动和日常唤醒)中增加了睡眠状态检查,避免在睡眠期间触发主动行为。
This commit is contained in:
minecraft1024a
2025-10-17 19:55:11 +08:00
committed by Windpicker-owo
parent 1cee641a8f
commit 73a40ad830
6 changed files with 456 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ from src.plugin_system.core.event_manager import event_manager
from src.plugin_system.core.plugin_manager import plugin_manager
from src.schedule.monthly_plan_manager import monthly_plan_manager
from src.schedule.schedule_manager import schedule_manager
from src.chat.message_manager.sleep_system.tasks import start_sleep_system_tasks
# 插件系统现在使用统一的插件加载器
install(extra_lines=3)
@@ -519,6 +520,14 @@ MoFox_Bot(第三方修改版)
except Exception as e:
logger.error(f"日程表管理器初始化失败: {e}")
# 初始化睡眠系统
if global_config.sleep_system.enable:
try:
await start_sleep_system_tasks()
logger.info("睡眠系统初始化成功")
except Exception as e:
logger.error(f"睡眠系统初始化失败: {e}")
def _safe_init(self, component_name: str, init_func) -> callable:
"""安全初始化组件,捕获异常"""