Xinc Bot - 基于 NapCat 的轻量级 QQ 机器人框架
Xinc 是一个基于 NapCat 和 node-napcat-ts 的轻量级 QQ 机器人框架,专注于易用性和可扩展性。通过简单的插件系统,你可以快速构建自己的 QQ 机器人功能。
✨ 功能特点
- 🚀 开箱即用:简单的命令行工具,一键初始化和启动
- 🔌 插件系统:强大且灵活的插件机制,轻松扩展功能
- 🛠️ 丰富的 API:为插件开发提供完整的类型定义和友好的接口
- 📱 多平台支持:支持 Windows、Linux 和 macOS
- 🔄 热重载:支持插件热重载,无需重启框架
- 📊 状态监控:内置状态查看和管理命令
- 🔒 权限系统:完善的权限控制机制
📦 安装
前提条件
- Node.js 16.x 或更高版本
- NapCat 服务端
安装步骤
- 创建新项目文件夹并初始化
mkdir my-xinc-bot cd my-xinc-bot npm install xinc npx xinc init
- 启动框架
# 直接启动 npx xinc start # 或者使用 PM2 在后台运行 npx xinc start --pm2
🚀 快速开始
初始化项目后,框架会自动创建一个示例插件。 你可以通过以下命令创建自己的插件:
npx xinc new 插件名称
启动框架后,你可以在 QQ 中发送命令与机器人交互:
帮助 - 显示帮助信息
状态 - 查看框架状态
插件 列表 - 查看插件列表
🔌 插件开发
Xinc 提供了简单直观的插件 API,以下是一个基本插件示例:
import { definePlugin, Structs } from 'xinc'
export default definePlugin({
name: '你好世界',
version: '1.0.0',
desc: '一个简单的示例插件',
setup(ctx) {
// 处理消息
ctx.handle('message', async e => {
if (e.raw_message === '你好') {
e.reply('世界,你好!')
}
})
// 记录插件加载信息
ctx.logger.info('插件已加载')
}
})
插件上下文
API插件上下文 ctx 提供了丰富的 API:
- 消息处理:handle, reply, sendPrivateMsg, sendGroupMsg
- 信息获取:getText, getImageURL, getAtUserID, getGroupList
- 权限控制:isRoot, isAdmin, isGroupAdmin
- 群管理:setGroupBan, setGroupKick, setGroupCard
📋 命令列表
基础命令
状态 - 查看框架状态
帮助 - 显示帮助信息
退出 - 关闭框架(仅限主人)
插件管理
插件 列表 - 查看插件列表
插件 启用 <插件名> - 启用指定插件
插件 禁用 <插件名> - 禁用指定插件
插件 重载 <插件名> - 重载指定插件
设置命令(仅限主人)
设置 加管理 <QQ> - 添加框架管理员
设置 删管理 <QQ> - 删除框架管理员
设置 加主人 <QQ> - 添加框架主人
设置 删主人 <QQ> - 删除框架主人
设置 前缀 <前缀> - 修改命令前缀
设置 日志 <级别> - 修改日志级别
📄 配置文件配置文件
xinc.config.toml 包含以下内容:
host = "127.0.0.1"
port = 5700
prefix = "#"
root = [12345678]
admins = []
plugins = ["你好世界"]
logger = "info"
🤝 贡献指南
欢迎贡献代码、提交 issue 或改进文档。 请遵循以下步骤:
- Fork 项目
- 创建功能分支 (git checkout -b feature/amazing-feature)
- 提交更改 (git commit -m 'Add some amazing feature')
- 推送到分支 (git push origin feature/amazing-feature)
- 创建 Pull Request
📃 许可证本项目采用 GPL-3.0 许可证。
详情请参阅 LICENSE 文件。
致谢
- NapCat
- 底层通信框架- node-napcat-ts
- kivibot
- Node.js
API 实现---Made with ❤️ by 勿忘初心