插件开发指南

很多小可爱觉得插件不够用?那就自己写一个吧!就算没有编程基础,现在有AI帮忙也能轻松搞定~

开发简要流程

  1. 创建插件目录:在plugins/下新建文件夹,如MyPlugin/
  2. 编写插件文件:
    • __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库,实现任意自定义功能

调试技巧

  1. 使用logger记录运行信息,便于定位问题:
    logger.info("这是一条信息日志(正常运行)") logger.warning("这是一条警告日志(潜在问题)") logger.error("这是一条错误日志(功能异常)")
  2. 查看bot.log文件监控插件运行状态:
    # 实时查看日志 tail -f /root/GracyBot/bot.log # 搜索插件相关日志 grep "示例插件" /root/GracyBot/bot.log

现在就开始你的第一个插件吧!有AI助手帮忙,编程其实很简单~ 开发完成后可参与 招募萌新 活动,分享你的插件给更多人使用!