开发相关
插件开发指南
很多小可爱觉得插件不够用?那就自己写一个吧!就算没有编程基础,现在有AI帮忙也能轻松搞定~
开发简要流程
- 创建插件目录:在
plugins/下新建文件夹,如MyPlugin/ - 编写插件文件:
__init__.py:定义插件元数据MyPlugin.py:实现插件功能
必须的七个参数
插件核心处理函数需包含以下七个参数,框架会自动传入:
def plugin_handler(plugin_manager, send_msg, data, sender_id, chat_type, permission, logger):
# 你的插件逻辑在这里
pass
参数说明
plugin_manager
插件管理器实例,可用于调用其他插件或框架功能
send_msg
消息发送函数,用于回复用户消息(参数:接收者ID、消息内容、聊天类型)
data
原始消息数据,包含消息内容、时间戳等完整信息
sender_id
发送者QQ号(私聊场景)或群号(群聊场景)
chat_type
聊天类型(
private 私聊 / group 群聊)
permission
权限级别(
master 主人 / user 普通用户)
logger
日志记录器,用于输出插件运行日志(便于调试)
插件模板示例
1. __init__.py(元数据定义)
# __init__.py
PLUGIN_META = {
"name": "示例插件",
"commands": ["/测试", "/hello"], # 插件触发指令
"handler": "plugin_handler", # 必须与.py文件中的函数名一致
"chat_type": ["private", "group"], # 支持的聊天类型
"permission": "all", # 权限要求(all/master/user)
"is_at_required": False # 群聊是否需要@机器人(True/False)
}
2. MyPlugin.py(功能实现)
# MyPlugin.py
def plugin_handler(plugin_manager, send_msg, data, sender_id, chat_type, permission, logger):
# 获取原始消息内容
raw_msg = data.get("raw_message", "").strip()
# 匹配"/测试"指令
if "/测试" in raw_msg:
send_msg(sender_id, "测试成功!🎉", chat_type) # 发送回复
logger.info(f"用户{sender_id}在{chat_type}场景执行了测试命令") # 记录日志
# 匹配"/hello"指令
elif "/hello" in raw_msg:
send_msg(sender_id, "Hello World! 👋", chat_type)
logger.info(f"用户{sender_id}触发了hello指令")
开发优势
完全独立
插件运行失败不会影响其他插件和主程序
无需修改框架
直接在plugins目录开发即可,无需改动核心代码
热加载支持
修改代码后重启Bot即可生效,调试高效
灵活自由
可以调用任何Python库,实现任意自定义功能
调试技巧
- 使用logger记录运行信息,便于定位问题:
logger.info("这是一条信息日志(正常运行)") logger.warning("这是一条警告日志(潜在问题)") logger.error("这是一条错误日志(功能异常)")
- 查看bot.log文件监控插件运行状态:
# 实时查看日志 tail -f /root/GracyBot/bot.log # 搜索插件相关日志 grep "示例插件" /root/GracyBot/bot.log
现在就开始你的第一个插件吧!有AI助手帮忙,编程其实很简单~ 开发完成后可参与 招募萌新 活动,分享你的插件给更多人使用!