Package Exports
- cyberbot-next
- cyberbot-next/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cyberbot-next) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
CyberBot - 基于 node-napcat-ts 的 QQ 机器人框架
CyberBot 是一个使用 TypeScript 开发的 QQ 机器人框架,基于 node-napcat-ts 库,提供了丰富的插件系统和消息处理功能。
.oooooo. .o8 oooooooooo. .
d8P' `Y8b "888 `888' `Y8b .o8
888 oooo ooo 888oooo. .ooooo. oooo d8b 888 888 .ooooo. .o888oo
888 `88. .8' d88' `88b d88' `88b `888""8P 888oooo888' d88' `88b 888
888 `88..8' 888 888 888ooo888 888 888 `88b 888 888 888
`88b ooo `888' 888 888 888 .o 888 888 .88P 888 888 888 .
`Y8bood8P' .8' `Y8bod8P' `Y8bod8P' d888b o888bood8P' `Y8bod8P' "888"
.o..P'
`Y8P' 功能特点
- 基于 WebSocket 的高效通信
- 完善的插件系统,支持动态加载和卸载
- 自动重连和错误处理机制
- 丰富的消息处理接口
- 支持定时任务
- 日志系统
- 权限管理系统
系统要求
- Node.js 18.x 或更高版本
- npm 或 pnpm 包管理器
安装
# 使用
npx cyberbot-next然后根据人机交互命令创建配置文件,然后根据指示运行项目。
配置
项目使用 config.json 文件进行配置,主要配置项包括:
{
"bot": 机器人QQ号,
"master": 主人QQ号,
"admins": [管理员QQ号],
"baseUrl": "ws://127.0.0.1:3001",
"accessToken": "napcatqq连接密钥",
"throwPromise": true,
"reconnection": {
"enable": true,
"attempts": 10,
"delay": 5000
},
"debug": true,
"plugins": {
"system": ["系统插件名称"],
"user": ["用户插件名称"]
},
"logger": {
"level": "info",
"maxSize": "10m",
"maxDays": 7
}
}使用方法
启动机器人
# 开发环境启动
npm start创建插件
插件是 CyberBot 的核心功能扩展方式。每个插件都需要实现 Plugin 接口,包括以下主要方法:
initialize(client): 插件初始化方法cleanup(): 插件清理方法
可以通过继承 CybePlugin 基类来快速创建插件。示例:
import { CybePlugin, AllHandlers } from 'cyberbot-next';
export class UserPlugin extends CybePlugin<AllHandlers['message']> {
name = '插件名称';
version = '1.0.0';
description = '插件描述';
setup() {
// 注册消息处理器
this.registerMessageHandler('message', async(e) => {
if (e.raw_message === '关键词') {
await this.reply('回复内容');
}
});
// 处理私聊消息
this.registerMessageHandler('message.private', async (e) => {
// 处理逻辑
});
// 处理群聊消息
this.registerMessageHandler('message.group', async (e) => {
// 处理逻辑
});
}
// 定义定时任务
cron = [
[
'*/5 * * * * *', // cron表达式
() => {
// 定时执行的代码
},
],
];
}插件目录结构
plugins/
├── cmds/ # 命令处理插件
├── demo/ # 示例插件
├── deepseek/ # DeepSeek API相关插件
├── fabing/ # 发病模拟插件
├── keyword/ # 关键词响应插件
├── like/ # 点赞相关插件
├── manager/ # 管理员插件
├── scraper/ # 网页爬虫插件
└── screenshoot/ # 截图功能插件API 参考
客户端核心方法
sendPrivateMessage(userId, content): 发送私聊消息sendGroupMessage(groupId, content): 发送群聊消息deleteMessage(messageId): 撤回消息kickMember(groupId, userId): 踢出群成员banMember(groupId, userId, duration): 禁言群成员isMaster(userId): 检查是否为主人isAdmin(userId): 检查是否为管理员getGroupAvatarLink(groupId): 获取群头像链接getQQAvatarLink(userId): 获取用户头像链接
参考与致谢
本项目参考了以下项目的设计:
- napcatqq 项目
- node-napcat-ts 项目
许可证
ISC License