Files
Mofox-Core/plugins/example_plugin
2025-06-15 22:44:40 +08:00
..
2025-06-15 22:44:40 +08:00
2025-06-15 22:44:40 +08:00
2025-06-15 22:44:40 +08:00

综合示例插件

概述

这是一个展示新插件系统完整功能的综合示例插件,整合了所有旧示例插件的功能,并使用新的架构重写。

功能特性

🎯 Action组件

SmartGreetingAction - 智能问候

  • 触发方式: 关键词触发 (你好、hello、hi、嗨等)
  • 支持模式: 所有聊天模式
  • 功能: 智能问候支持LLM个性化生成
  • 配置: 可自定义问候模板、启用表情、LLM生成

📝 Command组件

1. ComprehensiveHelpCommand - 综合帮助系统

/help [命令名]
  • 功能: 显示所有命令帮助或特定命令详情
  • 拦截: 拦截消息处理
  • 示例: /help, /help send

2. MessageSendCommand - 消息发送

/send <group|user> <ID> <消息内容>
  • 功能: 向指定群聊或私聊发送消息
  • 拦截: 拦截消息处理
  • 示例: /send group 123456 大家好

3. SystemStatusCommand - 系统状态查询

/status [类型]
  • 功能: 查询系统、插件、内存等状态
  • 拦截: 拦截消息处理
  • 示例: /status, /status 插件

4. EchoCommand - 回声命令

/echo <消息内容>
  • 功能: 重复用户输入的消息
  • 拦截: 拦截消息处理
  • 示例: /echo Hello World

5. MessageInfoCommand - 消息信息查询

/info
  • 功能: 显示当前消息的详细信息
  • 拦截: 拦截消息处理
  • 示例: /info

6. CustomPrefixCommand - 自定义前缀

/prefix <前缀> <内容>
  • 功能: 为消息添加自定义前缀
  • 拦截: 拦截消息处理
  • 示例: /prefix [公告] 系统维护

7. LogMonitorCommand - 日志监控

/log [级别]
  • 功能: 记录消息到日志但不拦截后续处理
  • 拦截: 不拦截,继续处理消息
  • 示例: /log, /log debug

🔧 拦截控制演示

此插件完美演示了新插件系统的拦截控制功能

拦截型命令 (intercept_message = True)

  • /help - 显示帮助后停止处理
  • /send - 发送消息后停止处理
  • /status - 查询状态后停止处理
  • /echo - 回声后停止处理
  • /info - 显示信息后停止处理
  • /prefix - 添加前缀后停止处理

非拦截型命令 (intercept_message = False)

  • /log - 记录日志但继续处理,可能触发其他功能

⚙️ 配置说明

插件支持通过 config.toml 进行详细配置:

组件控制

[components]
enable_greeting = true  # 启用智能问候
enable_help = true      # 启用帮助系统
enable_send = true      # 启用消息发送
# ... 其他组件开关

功能配置

[greeting]
template = "你好,{username}"  # 问候模板
enable_emoji = true              # 启用表情
enable_llm = false              # 启用LLM生成

[send]
max_message_length = 500        # 最大消息长度

[echo]
max_length = 200               # 回声最大长度
enable_formatting = true       # 启用格式化

🚀 使用示例

智能问候

用户: 你好
机器人: 你好朋友欢迎使用MaiBot综合插件系统😊

帮助查询

用户: /help
机器人: [显示完整命令帮助列表]

用户: /help send
机器人: [显示send命令的详细帮助]

消息发送

用户: /send group 123456 大家好!
机器人: ✅ 消息已成功发送到 群聊 123456

日志监控(不拦截)

用户: /log info 这是一条测试消息
[日志记录但消息继续处理,可能触发智能问候等其他功能]

📁 文件结构

src/plugins/built_in/example_comprehensive/
├── plugin.py           # 主插件文件
├── config.toml         # 配置文件
└── README.md          # 说明文档

🔄 架构升级

此插件展示了从旧插件系统到新插件系统的完整升级:

新系统特征

  • 使用统一的组件注册机制
  • 新的 BaseActionBaseCommand 基类
  • 拦截控制功能 - 灵活的消息处理流程
  • 强大的配置驱动架构
  • 统一的API接口
  • 完整的错误处理和日志

💡 开发指南

此插件可作为开发新插件的完整参考:

  1. Action开发: 参考 SmartGreetingAction
  2. Command开发: 参考各种Command实现
  3. 拦截控制: 根据需要设置 intercept_message
  4. 配置使用: 通过 self.api.get_config() 读取配置
  5. 错误处理: 完整的异常捕获和用户反馈
  6. 日志记录: 结构化的日志输出

🎉 总结

这个综合示例插件完美展示了新插件系统的强大功能,特别是拦截控制机制,让开发者可以精确控制消息处理流程,实现更灵活的插件交互模式。