cyberbot-next
Version:
cyberbot, 基于napcat-ts, nodejs,轻量qq机器人框架。
165 lines (131 loc) • 4.48 kB
Markdown
# 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 包管理器
## 安装
```bash
# 使用
npx cyberbot-next
```
然后根据人机交互命令创建配置文件,然后根据指示运行项目。
## 配置
项目使用 `config.json` 文件进行配置,主要配置项包括:
```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
}
}
```
## 使用方法
### 启动机器人
```bash
# 开发环境启动
npm start
```
### 创建插件
插件是 CyberBot 的核心功能扩展方式。每个插件都需要实现 `Plugin` 接口,包括以下主要方法:
- `initialize(client)`: 插件初始化方法
- `cleanup()`: 插件清理方法
可以通过继承 `CybePlugin` 基类来快速创建插件。示例:
```typescript
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