Commit Graph

40 Commits

Author SHA1 Message Date
minecraft1024a
2e1ca1ac78 ruff ci 2025-11-19 23:23:02 +08:00
Windpicker-owo
963bcd19e1 feat(action): 重构 Action 激活机制并添加 go_activate() 方法
引入新的 Action 激活机制,允许通过重写 go_activate() 方法来自定义激活逻辑。提供了三个工具函数:
- _random_activation(): 随机概率激活
- _keyword_match(): 关键词匹配激活
- _llm_judge_activation(): LLM 智能判断激活

主要变更:
- 在 BaseAction 中添加 go_activate() 抽象方法和相关工具函数
- 更新 ActionModifier 使用新的激活判断逻辑
- 在 hello_world_plugin 中添加新的激活方式示例
- 更新文档说明新的激活机制
- 保持向后兼容,旧的激活类型配置仍然可用

BREAKING CHANGE: Action 激活判断现在通过 go_activate() 方法进行,旧的激活类型字段已标记为废弃但仍然兼容
2025-11-19 23:22:46 +08:00
雅诺狐
635a39fa5a refactor: 清理项目结构并修复类型注解问题
修复 SQLAlchemy 模型的类型注解,使用 Mapped 类型避免类型检查器错误
- 修正异步数据库操作中缺少 await 的问题
- 优化反注入统计系统的数值字段处理逻辑
- 添加缺失的导入语句修复模块依赖问题
2025-11-19 23:20:11 +08:00
minecraft1024a
cd84373828 style: 统一代码风格并进行现代化改进
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:

- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。

这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-11-19 23:18:16 +08:00
minecraft1024a
9175207e79 refactor(plugin_system): 引入 PluginMetadata 替代 manifest.json
将插件元数据定义从外部 `_manifest.json` 文件迁移到插件 `__init__.py` 文件中的 `__plugin_meta__` 变量。此举简化了插件加载流程,减少了文件I/O,并使元数据与插件代码更紧密地耦合。

主要变更:
- 引入 `PluginMetadata` 数据类来标准化插件元数据。
- 插件基类 `PluginBase` 现在直接接收 `PluginMetadata` 对象,不再负责解析 JSON 文件。
- 插件管理器 `PluginManager` 调整加载逻辑,从插件模块的 `__plugin_meta__` 属性获取元数据。
- 删除了 `manifest_utils.py` 及其相关的验证和版本比较逻辑,简化了依赖关系。
- 更新了所有内置插件,以采用新的元数据定义方式,并删除了它们各自的 `_manifest.json` 文件。

BREAKING CHANGE: 插件加载机制已改变。所有插件必须在其 `__init__.py` 中定义一个 `__plugin_meta__` 变量,该变量是 `PluginMetadata` 类的实例,并移除旧的 `_manifest.json` 文件。
2025-11-19 23:17:29 +08:00
John Richard
a79253c714 re-style: 格式化代码 2025-11-19 23:13:20 +08:00
Windpicker-owo
fe472dff60 修复代码格式和文件名大小写问题 2025-11-19 22:55:55 +08:00
minecraft1024a
01e06ae95b ruff ci 2025-11-19 22:51:31 +08:00
minecraft1024a
b3206f5e7e feat:重写了hello_world 2025-11-19 22:50:06 +08:00
tt-P607
f989d674bf 小修复,还有就是炸掉hello world! 2025-11-19 22:50:00 +08:00
雅诺狐
bb4592846c Refactor config system to use Pydantic validation
Refactored configuration classes to inherit from a new ValidatedConfigBase using Pydantic for robust validation and error reporting. Updated api_ada_configs.py, config.py, config_base.py, and official_configs.py to replace dataclasses with Pydantic models, add field validation, and improve error messages. This change enhances configuration reliability and developer feedback for misconfigurations. Also includes minor code cleanups and removal of unused variables in other modules.
2025-11-19 22:44:45 +08:00
minecraft1024a
38fed9b4cc 添加聊天类型限制功能,支持根据聊天类型过滤命令和动作,新增私聊和群聊专用命令及动作,优化相关日志记录。 2025-11-19 22:40:01 +08:00
雅诺狐
2e6ae2419b 优化项目结构,格式化代码 2025-11-19 22:35:40 +08:00
雅诺狐
b966a2f09c 小修复 2025-11-19 22:35:34 +08:00
雅诺狐
4a1a1510c5 更新插件示例,及信息类型问题 2025-11-19 22:35:31 +08:00
雅诺狐
23ee3767ef 初始化 2025-11-19 22:34:56 +08:00
UnCLAS-Prommer
44f53213af fix typing 2025-08-03 13:08:28 +08:00
UnCLAS-Prommer
52acfe5958 knowledge系统对应修改 2025-07-31 13:38:56 +08:00
UnCLAS-Prommer
16c644a666 转换原来的tools到新的(虽然没转) 2025-07-29 00:15:29 +08:00
UnCLAS-Prommer
af27d0dbf0 tools整合彻底完成 2025-07-28 23:57:55 +08:00
Windpicker-owo
8aa8f0e6b7 修改了hello_world_plugin 2025-07-26 22:29:44 +08:00
Windpicker-owo
44d86c8847 尝试整合工具和插件系统 2025-07-26 18:37:29 +08:00
UnCLAS-Prommer
229d45083d command简化,修复unregister的bug 2025-07-25 13:39:27 +08:00
UnCLAS-Prommer
bbb112d803 动态控制命令后续处理 2025-07-25 11:01:14 +08:00
UnCLAS-Prommer
e15183a422 管理插件,但是只有一半 2025-07-23 15:53:59 +08:00
UnCLAS-Prommer
484fc20983 typing and plugins 2025-07-21 01:23:23 +08:00
UnCLAS-Prommer
8d20134cbb 合并BaseEventPlugin到BasePlugin,重写了components_registry,修正了统计输出 2025-07-19 19:16:42 +08:00
UnCLAS-Prommer
400ffd0b53 增加样例插件,修复统计数据(部分),修复一个bug 2025-07-19 00:46:04 +08:00
UnCLAS-Prommer
f890722c3d Merge branch 'dev' into plugin 2025-07-13 01:28:48 +08:00
SengokuCola
b74376387a feat;现在只需要activation_type字段 2025-07-12 23:34:52 +08:00
UnCLAS-Prommer
ab61b1bb22 插件系统info修复,见changes.md 2025-07-10 16:46:37 +08:00
UnCLAS-Prommer
8e2b7523e6 修复typing,但是保留疑问 2025-06-23 13:47:11 +08:00
SengokuCola
79bcb5b783 fix:更新插件属性 2025-06-20 00:02:19 +08:00
github-actions[bot]
2bc0451f62 🤖 自动格式化代码 [skip ci] 2025-06-19 15:24:29 +00:00
SengokuCola
d153887b8a Merge branch 'dev' of https://github.com/MaiM-with-u/MaiBot into dev 2025-06-19 23:23:18 +08:00
SengokuCola
43425b3c1f doc:完善doc 2025-06-19 23:21:31 +08:00
墨梓柒
05dbc46f7f fix: 将所有插件的manifest版本从3更改为1 2025-06-19 23:15:35 +08:00
墨梓柒
1fab6dc710 feat: 添加新的插件和清单管理工具
- 引入了“hello_world_plugin”和“take_picture_plugin”及其各自的清单文件。
- 实现了“manifest_tool.py”,用于创建、验证和管理插件清单。
- 添加了“test_version_compatibility.py”,用于测试版本规范化、比较和兼容性检查。
- 增强了“manifest_utils.py”,增加了版本比较和验证功能。
2025-06-19 23:13:06 +08:00
github-actions[bot]
264561144d 🤖 自动格式化代码 [skip ci] 2025-06-19 12:23:47 +00:00
SengokuCola
bbf6233744 update:示例插件 2025-06-19 20:23:03 +08:00