Commit Graph

177 Commits

Author SHA1 Message Date
Windpicker-owo
a1d60ab026 启用数据库预加载器,清理日志 2025-12-08 17:17:53 +08:00
Windpicker-owo
1dfa44b32b fix(config): 更新版本号至 0.13.1-alpha.1 2025-12-04 22:04:27 +08:00
Windpicker-owo
4e0012dba9 fix(config): 更新版本号为 0.13.0 2025-12-04 09:11:21 +08:00
Windpicker-owo
b46ad71d20 feat(emoji): 添加提取精炼描述的辅助函数并优化表情包发送信息 2025-12-01 18:44:31 +08:00
Windpicker-owo
18906826d4 chore(config): 更新 MMC_VERSION 至 0.13.0-alpha.5 2025-12-01 16:20:29 +08:00
拾风
28c54dbec6 Merge branch 'dev' into feature/kfc 2025-12-01 16:06:47 +08:00
ikun-11451
acafc074b1 依旧修pyright喵喵喵~ 2025-11-29 22:20:55 +08:00
tt-P607
0746a73bce feat(KFC): 🎉 Kokoro Flow Chatter 心流聊天器 - 私聊专属处理系统从零构建完成
这是一个全新的私聊聊天处理器,专为深度情感交互设计,从架构设计到代码实现全部从零完成。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏗️ 核心架构 (7个核心模块)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📁 src/plugins/built_in/kokoro_flow_chatter/
├── chatter.py           # 主处理器 - 协调所有组件的核心类
├── context_builder.py   # S4U上下文构建器 - 超融合上下文系统
├── prompt_generator.py  # V6三明治提示词生成器
├── action_executor.py   # 动作执行器 - 解析+执行LLM动作
├── response_post_processor.py  # 回复后处理器 - 分割+错别字
├── models.py            # 数据模型 - Session/情感状态/心理日志
├── session_manager.py   # 会话管理器 - 用户状态持久化
├── scheduler.py         # 调度器 - 主动思考/超时处理
├── config.py            # 配置类
└── plugin.py            # 插件注册入口

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 核心特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【V1-V3 基础框架】
- 心理状态驱动的交互模型 (KokoroSession)
- 连续时间观念和等待体验 (IDLE→RESPONDING→WAITING状态机)
- 心理日志系统 (MentalLogEntry)
- 动态情感状态 (EmotionalState)

【V4 动作系统集成】
- 动态动作发现 (复用ChatterActionManager)
- 支持所有AFC动作 (reply/emoji/poke_user/set_emoji_like等)
- LLM响应JSON解析和验证

【V5 超融合上下文】
- S4U用户中心上下文检索
- 三层记忆系统集成 (感知/短期/长期)
- 时间感知块 (时间段+日程+情境)
- 人物关系信息注入
- 跨聊天上下文共享

【V6 最终优化】
- 三明治提示词结构 (系统层→上下文层→指令层)
- ActionModifier动作筛选器集成 (三阶段预筛选)
  - 阶段0: 聊天类型过滤
  - 阶段2: 关联类型匹配
  - 阶段3: go_activate()激活判定
- 回复分割器复用AFC核心逻辑 (split_into_sentences_w_remove_punctuation)
- 修复model配置 (使用replyer而非utils)
- 修复context_builder异步问题

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 技术细节
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

提示词结构 (V6三明治):
┌─────────────────────────────────────┐
│ 🍞 系统层 (人设/身份/表达风格)        │
├─────────────────────────────────────┤
│ 🥬 上下文层                          │
│  ├─ 时间感知块                       │
│  ├─ 三层记忆 (感知+短期+长期)         │
│  ├─ 人物关系                         │
│  ├─ 对话历史                         │
│  └─ 用户最新消息                     │
├─────────────────────────────────────┤
│ 🍞 指令层 (JSON输出格式/可用动作)     │
└─────────────────────────────────────┘

动作筛选效果: 13个动作 → 约5-7个 (节省token+提升决策质量)
回复分割: 长消息自动按标点分割成多条发送

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 配置项 (bot_config.toml)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[kokoro_flow_chatter]
enable = true
max_wait_seconds_default = 300
enable_continuous_thinking = true

[kokoro_flow_chatter.proactive_thinking]
enabled = true
silence_threshold_seconds = 7200
min_affinity_for_proactive = 0.3
min_interval_between_proactive = 1800
enable_morning_greeting = true
enable_night_greeting = true

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 设计理念
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

KFC不是独立人格,而是:
- 复用全局人设、情感框架和回复模型
- 专注于"体验→决策→行动"的私聊交互模式
- 从"消息响应者"转变为"对话体验者"
- 深度情感连接和长期关系维护
2025-11-29 02:05:56 +08:00
Windpicker-owo
73aaedaca6 fix: 更新硬编码的版本号至 0.13.0-alpha.4 2025-11-27 22:09:29 +08:00
Windpicker-owo
369639a8f1 feat: 添加守护线程版本的队列监听器以避免阻塞退出,优化配置初始化逻辑,改进消息构建中的用户信息处理 2025-11-27 14:06:17 +08:00
Windpicker-owo
3f02804d9d chore(config): 更新版本号至0.13.0-alpha.3 2025-11-26 22:05:13 +08:00
Windpicker-owo
fee7611e99 feat: 实现消息编解码器和消息处理模型
- 添加编解码器,用于序列化和反序列化MessageEnvelope对象。
- 创建消息模型,包括分段(Seg)、群组信息(GroupInfo)、用户信息(UserInfo)、格式信息(FormatInfo)、模板信息(TemplateInfo)、基础消息信息(BaseMessageInfo)和消息基础(MessageBase)。
引入路由器以管理消息路由和连接。
- 实现运行时机制,通过钩子和路由来处理消息处理。
- 使用HTTP和WebSocket客户端和服务器开发传输层,以进行消息传输。
- 为消息内容和信封定义类型,以标准化消息结构。
2025-11-21 18:40:51 +08:00
Windpicker-owo
8dc754e562 fix(config): 更新 MMC_VERSION 至 0.13.0-alpha.2 2025-11-20 18:40:07 +08:00
tt-P607
5a93867417 fix(config): 临时修复 master_users 加载失败问题
问题描述:
由于未明原因,配置文件(bot_config.toml)中的 `permission.master_users` 字段在加载过程中被意外清空,导致权限系统无法正确识别 Master 用户。初步排查指向复杂的配置版本自动更新与迁移逻辑。

解决方案:
在 `config.py` 的 `load_config` 函数中,于 Pydantic 模型验证完成后,增加了一段临时修复代码。该代码会从 `tomlkit` 解析出的原始配置数据中,重新读取 `master_users` 的值,并将其强制赋给最终的 `config` 对象。

具体实现:
1.  使用 `config_data.unwrap()` 将 `tomlkit` 对象安全地转换为标准 Python 字典。
2.  从字典中提取 `permission.master_users` 的值。
3.  将提取到的值直接赋给 `config.permission.master_users`。
4.  添加了详细的日志,以便追踪此修复操作的执行情况。

影响:
-   **正面**:立即恢复了 Master 用户的识别功能,解决了权限检查失效的核心问题。
-   **注意**:这是一个临时性的解决方案(workaround),并未从根本上解决配置更新逻辑中可能存在的缺陷。后续仍需对该逻辑进行深入排查和重构。
2025-11-20 14:39:27 +08:00
Windpicker-owo
e70779347a feat: 重构记忆系统配置,移除三层记忆相关配置,优化全局记忆管理逻辑,支持批量生成文本向量 2025-11-19 23:58:51 +08:00
Windpicker-owo
e44f238e53 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-19 23:58:48 +08:00
minecraft1024a
717d4ba555 feat(plugin_system): 引入插件HTTP端点系统
引入了全新的 `BaseRouterComponent` 组件类型,允许插件开发者通过继承并实现 `register_endpoints` 方法来创建 FastAPI 路由。

- 插件系统现在可以自动发现并注册这些路由组件,并将它们挂载到主 FastAPI 应用的 `/plugins/<plugin_name>` 前缀下。
- 新增了全局配置 `[plugin_http_system]`,提供了总开关、API 速率限制和 API 密钥认证 (`X-API-Key`) 等功能,以确保端点的安全性和稳定性。
- 更新了 `hello_world_plugin` 插件,增加了一个简单的 `/greet` 端点作为实现示例。
2025-11-19 23:58:48 +08:00
minecraft1024a
80b5c3c6f8 refactor(prompt): 移除注意力优化功能
注意力优化功能(通过添加随机空白字符或语义变体)被证明效果不佳且可能引入不稳定性。

为了简化代码库、减少用户配置的复杂性并提高系统的稳定性,决定移除此实验性功能。这使得提示词构建过程更加直接和可预测。

BREAKING CHANGE: 移除了注意力优化功能及其所有相关配置。用户需要从配置文件中移除 `[attention_optimization]` 部分。
2025-11-19 23:58:46 +08:00
Windpicker-owo
40709d95de rebase 清理 2025-11-19 23:45:47 +08:00
Windpicker-owo
05205c60b3 更新版本号 2025-11-19 23:37:54 +08:00
Windpicker-owo
c0e400f423 feat(attention): 添加注意力优化器以增强提示词多样性和防止注意力退化
refactor(prompt): 使用 asyncio.gather 替代 as_completed 以提升并发性能
refactor(config): 添加注意力优化配置选项
refactor(prompt_params): 增加注意力优化开关
2025-11-19 23:37:37 +08:00
明天好像没什么
5d7d19625e 创建了新的反注入 2025-11-19 23:36:36 +08:00
明天好像没什么
26d22e5dd8 ruff 2025-11-19 23:36:06 +08:00
Windpicker-owo
b6a693895b feat: 重构聊天系统的内存处理与格式化功能
- 更新了DefaultReplyer,采用新的内存格式化工具以提供更优质的内存描述。
- 已移除 Config 类中已弃用的内存配置。
- 在主系统中增强内存系统初始化检查,确保配置正确。
- 优化了MemoryManager,使其可直接使用全局配置进行内存设置。
- 新增了一个内存格式化工具,用于将内存对象转换为自然语言描述。
- 更新了内存工具,提供了更清晰的内存创建与管理指南。
- 精炼插件工具与使用提示,提升用户交互体验与记忆准确性。
- 根据内存系统结构的变化调整了机器人配置模板。
2025-11-19 23:32:11 +08:00
Windpicker-owo
5439e3bd82 fix(memory-graph): 修复集成测试问题
- 修复Config类memory字段验证问题 (改为Optional)
- 为Memory模型添加activation属性
- 修复CreateMemoryTool返回值 (添加memory_id)
- 为GraphStore添加remove_memory方法
- 修复integration测试脚本
- 所有集成测试通过 (5/5)

Changes:
- src/config/config.py: memory字段改为Optional
- src/memory_graph/models.py: 添加activation属性
- src/memory_graph/plugin_tools/memory_plugin_tools.py: 返回memory_id
- src/memory_graph/storage/graph_store.py: 添加remove_memory方法
- tests/test_memory_graph_integration.py: 修复工具返回值检查

Tests:
 基本记忆操作 (CRUD + 检索)
 LLM工具集成 (创建记忆)
 记忆生命周期 (激活/整合/遗忘)
 维护任务 (调度+手动执行)
 配置系统 (默认/自定义/bot_config)
2025-11-19 23:32:09 +08:00
Windpicker-owo
ab8d43bb49 fix(config): 更新MMC版本号至0.12.0-alpha-1 2025-11-19 23:31:53 +08:00
Windpicker-owo
7534536e22 refactor(config): 移除普通聊天配置及相关字段,更新配置模板以反映变更 2025-11-19 23:30:18 +08:00
minecraft1024a
2ee6aa3951 refactor(core): 优化类型提示与代码风格
本次提交对项目代码进行了广泛的重构,主要集中在以下几个方面:

1.  **类型提示现代化**:
    -   将 `typing` 模块中的 `Optional[T]`、`List[T]`、`Dict[K, V]` 等旧式类型提示更新为现代的 `T | None`、`list[T]`、`dict[K, V]` 语法。
    -   这提高了代码的可读性,并与较新 Python 版本的风格保持一致。

2.  **代码风格统一**:
    -   移除了多余的空行和不必要的空格,使代码更加紧凑和规范。
    -   统一了部分日志输出的格式,增强了日志的可读性。

3.  **导入语句优化**:
    -   调整了部分模块的 `import` 语句顺序,使其符合 PEP 8 规范。

这些更改不涉及任何功能性变动,旨在提升代码库的整体质量、可维护性和开发体验。
2025-11-19 23:30:12 +08:00
minecraft1024a
bdcd50468c refactor(reaction): 重构关键词反应系统为通用反应规则系统
将原有的 `keyword_reaction` 系统重构为一个更通用、更强大的 `reaction` 系统。新系统统一了关键词和正则表达式规则,并增加了按聊天流ID(`chat_stream_id`)进行规则作用域限定的功能。

主要变更包括:
- **统一配置模型**:将 `KeywordReactionConfig` 和 `KeywordRuleConfig` 合并重构为 `ReactionConfig` 和 `ReactionRuleConfig`,提供了更清晰、统一的规则定义方式。
- **增加作用域控制**:新的 `ReactionRuleConfig` 增加了 `chat_stream_id` 字段,允许规则被限定在全局范围或特定的聊天会话中。
- **简化逻辑实现**:`DefaultReplyer` 中的实现被重构,以适应新的配置模型,能够筛选并应用适用范围内的规则。
- **更新配置文件模板**:`bot_config_template.toml` 已更新,以反映新的 `[[reaction.rules]]` 配置结构,并提供了详细的注释说明。
- **新增辅助方法**:在 `ChatStream` 中添加了 `get_raw_id()` 方法,用于获取未哈希的原始聊天流ID,以支持新系统的作用域匹配。

BREAKING CHANGE: 关键词反应功能的配置结构已完全改变。旧的 `[keyword_reaction]` 配置不再兼容。用户需要将原有的 `keyword_rules` 和 `regex_rules` 迁移到新的 `[[reaction.rules]]` 格式。
2025-11-19 23:27:04 +08:00
minecraft1024a
7a797a1de6 refactor(core): 移除睡眠系统
由于睡眠系统存在设计缺陷、实现复杂且维护成本高,并且实际使用效果不佳,常常导致非预期的行为(如错过重要消息或在不应睡眠时睡眠),现决定将其从核心代码中完全移除。

移除内容包括:
- 删除了整个 `sleep_system` 模块及其所有相关逻辑、状态管理和定时任务。
- 清理了配置文件 `config.py` 和 `official_configs.py` 中的 `SleepSystemConfig`。
- 移除了 `main.py` 中关于睡眠系统的初始化调用。
- 清理了 `message_manager` 和 `proactive_thinker` 中对睡眠状态的检查。
- 更新了 `bot_config_template.toml` 模板文件,移除了所有睡眠系统相关的配置项。

此举旨在简化项目架构,提高系统的稳定性和可预测性。未来的相关功能可能会以更健壮、更模块化的插件形式重新实现。
2025-11-19 23:24:50 +08:00
Windpicker-owo
1eda54cb8f feat(notice): 实现全局notice消息管理系统
添加全局notice管理器,将notice消息与普通消息分离处理。主要功能包括:

- 创建 GlobalNoticeManager 单例类,支持公共和特定聊天流作用域
- 在 message_manager 中集成notice检测和处理逻辑
- 扩展数据库模型和消息类,添加notice相关字段
- 在提示词生成器中添加notice信息块展示
- 配置系统支持notice相关参数设置
- 适配器插件增强notice类型识别和配置

notice消息特点:
- 默认不触发聊天流程,只记录到全局管理器
- 可在提示词中展示最近的系统通知
- 支持按类型设置不同的生存时间
- 支持公共notice(所有聊天可见)和流特定notice

BREAKING CHANGE: 数据库消息表结构变更,需要添加 is_public_notice 和 notice_type 字段
2025-11-19 23:23:55 +08:00
minecraft1024a
cca07bd16e refactor: 将项目名称从 MaiBot 重命名为 MoFox-Bot
本次更新在整个代码库范围内将项目名称 "MaiBot" 及其相关变体(如 "maibot")统一重命名为 "MoFox-Bot"。

主要变更包括:
- 修改配置文件、模板和日志输出中的项目名称。
- 更新文档、注释和用户可见的字符串,以反映新的品牌名称。
- 调整插件元数据和描述。
2025-11-19 23:21:44 +08:00
Windpicker-owo
bdf0035034 refactor(chat): 重构关系系统并优化消息打断处理机制
- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
2025-11-19 23:20:49 +08:00
雅诺狐
650b9038f2 更新版本号至0.11.1阿尔法第一版本 2025-11-19 23:20:43 +08:00
雅诺狐
b5f6ab4e01 为合并修改版本号
移除Dev分支后缀
2025-11-19 23:20:41 +08:00
minecraft1024a
2a89efe47a ruff fix但指定了--unsafe-fixes 2025-11-19 23:19:42 +08:00
John Richard
a79253c714 re-style: 格式化代码 2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1 style: 格式化代码 2025-11-19 23:12:18 +08:00
minecraft1024a
2ada48c42b feat(proactive_thinking): 实现一半并重构主动思考功能
重构了主动思考插件的底层逻辑,将其拆分为两个独立的后台任务,以实现更精细和人性化的主动交互策略。

- **`ColdStartTask` (破冰任务)**:
  - 专门处理在私聊白名单中但从未有过交互的用户。
  - 任务启动时,会扫描白名单,为新用户主动创建聊天流并发起初次问候,实现“破冰”效果。
  - 解决了之前版本无法主动与全新用户建立联系的问题。

- **`ProactiveThinkingTask` (日常唤醒任务)**:
  - 负责维护现有聊天流的活跃度。
  - 采用动态间隔机制,结合基础间隔、随机扰动和每日不同时段的活跃度因子,模拟更自然的聊天发起时机。
  - 持续监控已建立的聊天,在对话冷却后适时地重新发起话题。

- **配置结构优化**:
  - 在 `bot_config_template.toml` 中新增了 `[proactive_thinking]` 配置节,统一管理所有相关配置。
  - 提供了更清晰的选项,如总开关、冷启动开关、白名单设置等,提升了易用性和可配置性。
  - 修正了 `config.py` 中错误的字段名 (`ProactiveThinking` -> `proactive_thinking`),确保与配置文件一致。
2025-11-19 23:11:41 +08:00
minecraft1024a
111d23f608 加入了尚未完成或者说根本就没做de主动思考 2025-11-19 23:11:30 +08:00
Windpicker-owo
a67b78b551 feat(chat): 实现动态消息分发系统和消息打断机制
添加基于focus_energy的动态消息分发周期调整功能,根据聊天流兴趣度智能调整检查间隔
实现消息打断系统,允许高优先级消息打断正在处理的任务
重构ChatStream类,引入动态兴趣度计算系统,包括消息兴趣度统计和用户关系评分
扩展数据库模型和配置系统以支持新功能,增加相关配置项
更新版本号至0.11.0-alpha-1以反映重大功能更新
2025-11-19 23:09:12 +08:00
Windpicker-owo
df3c616d09 ruff,私聊视为提及了bot 2025-11-19 23:07:30 +08:00
Windpicker-owo
e62843ea58 feat(affinity-flow): 重构亲和流配置系统
将硬编码的兴趣度评分参数迁移到集中式配置管理,新增AffinityFlowConfig配置类
- 从全局配置加载评分权重、阈值和计算参数
- 统一管理匹配奖励、关系分数和提及bot相关配置
- 更新配置文件模板包含完整的亲和流参数
- 确保各模块使用一致的配置值而非硬编码常量
2025-11-19 23:07:11 +08:00
minecraft1024a
f842c43ab0 ruff 2025-11-19 23:05:47 +08:00
minecraft1024a
87cf07bf82 feat(config): 自动移除更新中已废弃的配置项
在版本更新过程中,新增一个步骤来对比用户配置与最新的模板文件。

此变更会自动删除用户配置文件中所有在模板中不再存在的键,以保持配置的整洁性,并防止因过时的配置项导致潜在的兼容性问题或混淆。
2025-11-19 23:05:38 +08:00
雅诺狐
93542cadef perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
雅诺狐
3414fea3fc refactor(config): 简化EULA验证并统一环境变量配置管理
- 重构EULA验证机制,从复杂的文件哈希验证改为简单的环境变量验证
- 统一host和port配置,优先从环境变量读取而非配置文件
- 移除ServerConfig配置类,简化配置结构
- 添加.env文件自动创建和管理功能
- 更新相关模板和文档注释
2025-11-19 23:00:52 +08:00
minecraft1024a
26e20b2cd7 refactor(config): 移除.env依赖并引入服务器配置模型
将项目配置系统从依赖.env文件和环境变量迁移到使用Pydantic模型进行集中管理。此举通过移除`python-dotenv`库简化了环境设置,并提高了配置的类型安全性和可维护性。

主要变更包括:
- 移除`bot.py`中的.env加载逻辑。
- 新增`ServerConfig`模型来管理服务器的主机和端口。
- 更新`src/common/server.py`和`src/common/message/api.py`以从全局配置对象获取服务器设置,取代了`os.environ`。
- 从配置中移除了已废弃的`MaizoneIntercomConfig`。
- 在`bot_config_template.toml`中添加了新的`[server]`配置部分。
2025-11-19 23:00:07 +08:00
minecraft1024a
2e6fc99224 feat(规划): 引入统一的规划系统并重构组件
本次提交引入了一个全新的统一规划系统,取代了独立的日程和月度计划模块。这一变更集中了配置并解耦了职责,以提高可维护性和清晰度。

核心逻辑现在被分解为专门的组件:

- PlanManager: 处理日常日程和月度目标的所有数据库交互,取代了已-删除的 monthly_plan_db.py。
- ScheduleLLMGenerator: 封装了与 LLM 交互以生成日程的逻辑,将此职责从 ScheduleManager 中移除。
- MonthlyPlanManager: 现在作为核心 PlanManager 的简化接口。
这次架构性的大修通过将数据持久化和 LLM 生成逻辑从主调度逻辑中抽象出来,简化了整体设计。

重大变更: bot_config.toml 中的配置已被迁移。移除了 [schedule] 和 [monthly_plan_system] 部分。所有相关设置现在必须在新的 [planning_system] 部分下进行配置。
2025-11-19 22:58:36 +08:00
minecraft1024a
d66e04baff chore: format code and remove redundant blank lines
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-11-19 22:57:44 +08:00