@zhin.js/adapter-onebot11 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +345 -41
- package/lib/index.d.ts +31 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +66 -17
- package/lib/index.js.map +1 -1
- package/package.json +3 -7
- package/src/index.ts +92 -29
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @zhin.js/adapter-onebot11
|
|
2
2
|
|
|
3
|
+
## 1.0.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d16a69c: fix: test trust publish
|
|
8
|
+
- Updated dependencies [d16a69c]
|
|
9
|
+
- zhin.js@1.0.18
|
|
10
|
+
- @zhin.js/http@1.0.9
|
|
11
|
+
|
|
12
|
+
## 1.0.19
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- zhin.js@1.0.17
|
|
17
|
+
|
|
3
18
|
## 1.0.18
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
# @zhin.js/adapter-onebot11
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Zhin.js OneBot v11 协议适配器,通过 WebSocket 连接各种支持 OneBot 协议的 QQ 机器人实现(如 go-cqhttp、Shamrock、LagrangeGo 等)。
|
|
4
4
|
|
|
5
5
|
## 功能特性
|
|
6
6
|
|
|
7
|
-
- 🔌 OneBot v11 协议兼容
|
|
8
|
-
- 🌐 WebSocket
|
|
9
|
-
- 🔐 Token 认证支持
|
|
7
|
+
- 🔌 完整 OneBot v11 协议兼容
|
|
8
|
+
- 🌐 WebSocket 客户端和服务器模式
|
|
9
|
+
- 🔐 Access Token 认证支持
|
|
10
10
|
- 🔄 自动重连机制
|
|
11
11
|
- 💓 心跳检测
|
|
12
12
|
- 📨 群聊和私聊消息处理
|
|
13
|
-
- 🛠️ 完整的API调用支持
|
|
13
|
+
- 🛠️ 完整的 API 调用支持
|
|
14
|
+
- 📝 消息段(Message Segment)完整支持
|
|
14
15
|
|
|
15
16
|
## 安装
|
|
16
17
|
|
|
17
18
|
```bash
|
|
18
|
-
|
|
19
|
+
pnpm add @zhin.js/adapter-onebot11 ws
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
## 配置
|
|
22
23
|
|
|
24
|
+
### WebSocket 客户端模式(正向 WS)
|
|
25
|
+
|
|
23
26
|
```typescript
|
|
24
27
|
// zhin.config.ts
|
|
25
28
|
import { defineConfig } from 'zhin.js'
|
|
@@ -28,58 +31,359 @@ export default defineConfig({
|
|
|
28
31
|
bots: [
|
|
29
32
|
{
|
|
30
33
|
context: 'onebot11',
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
type: 'ws', // WebSocket 客户端
|
|
35
|
+
name: 'my-bot',
|
|
36
|
+
url: 'ws://localhost:8080', // OneBot 服务地址
|
|
33
37
|
access_token: process.env.ONEBOT_TOKEN, // 访问令牌(可选)
|
|
34
|
-
reconnect_interval: 5000,
|
|
35
|
-
heartbeat_interval: 30000
|
|
38
|
+
reconnect_interval: 5000, // 重连间隔(毫秒)
|
|
39
|
+
heartbeat_interval: 30000 // 心跳间隔(毫秒)
|
|
36
40
|
}
|
|
37
41
|
],
|
|
38
|
-
plugins: [
|
|
42
|
+
plugins: [
|
|
43
|
+
'adapter-onebot11'
|
|
44
|
+
]
|
|
45
|
+
})
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### WebSocket 服务器模式(反向 WS)
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
export default defineConfig({
|
|
52
|
+
bots: [
|
|
53
|
+
{
|
|
54
|
+
context: 'onebot11.wss', // WebSocket 服务器
|
|
55
|
+
type: 'ws_reverse',
|
|
56
|
+
name: 'my-bot',
|
|
57
|
+
path: '/onebot/ws', // WebSocket 路径
|
|
58
|
+
access_token: process.env.ONEBOT_TOKEN, // 访问令牌(可选)
|
|
59
|
+
heartbeat_interval: 30000
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
plugins: [
|
|
63
|
+
'http', // 需要 HTTP 服务
|
|
64
|
+
'adapter-onebot11'
|
|
65
|
+
]
|
|
66
|
+
})
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 支持的 OneBot 实现
|
|
70
|
+
|
|
71
|
+
### 推荐实现
|
|
72
|
+
|
|
73
|
+
| 实现 | 协议支持 | 稳定性 | 推荐度 |
|
|
74
|
+
|------|---------|--------|--------|
|
|
75
|
+
| [go-cqhttp](https://github.com/Mrs4s/go-cqhttp) | ✅ 完整 | ⭐⭐⭐⭐⭐ | 高 |
|
|
76
|
+
| [LagrangeGo](https://github.com/LagrangeDev/Lagrange.Core) | ✅ 完整 | ⭐⭐⭐⭐ | 高 |
|
|
77
|
+
| [Shamrock](https://github.com/whitechi73/OpenShamrock) | ✅ 完整 | ⭐⭐⭐⭐ | 中 |
|
|
78
|
+
| [NapCat](https://github.com/NapNeko/NapCatQQ) | ✅ 完整 | ⭐⭐⭐⭐ | 中 |
|
|
79
|
+
|
|
80
|
+
### 配置示例
|
|
81
|
+
|
|
82
|
+
#### go-cqhttp
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
# config.yml
|
|
86
|
+
servers:
|
|
87
|
+
- ws:
|
|
88
|
+
host: 0.0.0.0
|
|
89
|
+
port: 8080
|
|
90
|
+
access-token: "your_token_here"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### Shamrock
|
|
94
|
+
|
|
95
|
+
在 Shamrock 设置中:
|
|
96
|
+
1. 启用 WebSocket 服务
|
|
97
|
+
2. 设置端口(默认 5800)
|
|
98
|
+
3. 配置 Access Token(可选)
|
|
99
|
+
|
|
100
|
+
## 使用示例
|
|
101
|
+
|
|
102
|
+
### 基础消息处理
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
import { addCommand, MessageCommand } from 'zhin.js'
|
|
106
|
+
|
|
107
|
+
addCommand(new MessageCommand('hello <name:text>')
|
|
108
|
+
.action(async (message, result) => {
|
|
109
|
+
return `你好,${result.params.name}!`
|
|
110
|
+
})
|
|
111
|
+
)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 群聊消息
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
import { onGroupMessage } from 'zhin.js'
|
|
118
|
+
|
|
119
|
+
onGroupMessage(async (message) => {
|
|
120
|
+
console.log(`群 ${message.$channel.id} 收到消息`)
|
|
121
|
+
await message.$reply('收到了!')
|
|
122
|
+
})
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 私聊消息
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
import { onPrivateMessage } from 'zhin.js'
|
|
129
|
+
|
|
130
|
+
onPrivateMessage(async (message) => {
|
|
131
|
+
await message.$reply('你好!')
|
|
132
|
+
})
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 发送图片
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
addCommand(new MessageCommand('pic <url:text>')
|
|
139
|
+
.action(async (message, result) => {
|
|
140
|
+
return [
|
|
141
|
+
{ type: 'image', data: { file: result.params.url } }
|
|
142
|
+
]
|
|
143
|
+
})
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 使用 CQ 码
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
addCommand(new MessageCommand('cq')
|
|
151
|
+
.action(async (message) => {
|
|
152
|
+
return [
|
|
153
|
+
{ type: 'face', data: { id: '123' } },
|
|
154
|
+
{ type: 'text', data: { text: '表情' } }
|
|
155
|
+
]
|
|
156
|
+
})
|
|
157
|
+
)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 消息类型支持
|
|
161
|
+
|
|
162
|
+
### 接收消息类型
|
|
163
|
+
|
|
164
|
+
- ✅ 文本消息(text)
|
|
165
|
+
- ✅ 图片消息(image)
|
|
166
|
+
- ✅ 语音消息(record)
|
|
167
|
+
- ✅ 视频消息(video)
|
|
168
|
+
- ✅ @ 提及(at)
|
|
169
|
+
- ✅ 表情(face)
|
|
170
|
+
- ✅ 引用回复(reply)
|
|
171
|
+
- ✅ 戳一戳(poke)
|
|
172
|
+
- ✅ 分享(share)
|
|
173
|
+
- ✅ 位置(location)
|
|
174
|
+
- ✅ 音乐分享(music)
|
|
175
|
+
- ✅ JSON 卡片(json)
|
|
176
|
+
- ✅ XML 卡片(xml)
|
|
177
|
+
|
|
178
|
+
### 发送消息类型
|
|
179
|
+
|
|
180
|
+
- ✅ 文本消息
|
|
181
|
+
- ✅ 图片消息(支持 URL、Base64、本地文件)
|
|
182
|
+
- ✅ 语音消息
|
|
183
|
+
- ✅ 视频消息
|
|
184
|
+
- ✅ @ 提及
|
|
185
|
+
- ✅ 表情
|
|
186
|
+
- ✅ 引用回复
|
|
187
|
+
- ✅ 戳一戳
|
|
188
|
+
- ✅ 分享卡片
|
|
189
|
+
- ✅ 音乐分享
|
|
190
|
+
- ✅ JSON/XML 卡片
|
|
191
|
+
|
|
192
|
+
## API 方法
|
|
193
|
+
|
|
194
|
+
### 消息相关
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
const bot = app.adapters.get('onebot11')?.bots.get('my-bot')
|
|
198
|
+
|
|
199
|
+
// 发送群消息
|
|
200
|
+
await bot.callApi('send_group_msg', {
|
|
201
|
+
group_id: 123456,
|
|
202
|
+
message: '消息内容'
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
// 发送私聊消息
|
|
206
|
+
await bot.callApi('send_private_msg', {
|
|
207
|
+
user_id: 123456,
|
|
208
|
+
message: '消息内容'
|
|
209
|
+
})
|
|
210
|
+
|
|
211
|
+
// 撤回消息
|
|
212
|
+
await bot.callApi('delete_msg', {
|
|
213
|
+
message_id: 123456
|
|
214
|
+
})
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 信息获取
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
// 获取登录信息
|
|
221
|
+
const loginInfo = await bot.callApi('get_login_info')
|
|
222
|
+
|
|
223
|
+
// 获取用户信息
|
|
224
|
+
const userInfo = await bot.callApi('get_stranger_info', {
|
|
225
|
+
user_id: 123456
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
// 获取群信息
|
|
229
|
+
const groupInfo = await bot.callApi('get_group_info', {
|
|
230
|
+
group_id: 123456
|
|
231
|
+
})
|
|
232
|
+
|
|
233
|
+
// 获取群成员列表
|
|
234
|
+
const memberList = await bot.callApi('get_group_member_list', {
|
|
235
|
+
group_id: 123456
|
|
236
|
+
})
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 群管理
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
// 踢出群成员
|
|
243
|
+
await bot.callApi('set_group_kick', {
|
|
244
|
+
group_id: 123456,
|
|
245
|
+
user_id: 654321
|
|
246
|
+
})
|
|
247
|
+
|
|
248
|
+
// 禁言群成员
|
|
249
|
+
await bot.callApi('set_group_ban', {
|
|
250
|
+
group_id: 123456,
|
|
251
|
+
user_id: 654321,
|
|
252
|
+
duration: 600 // 秒
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
// 设置群名片
|
|
256
|
+
await bot.callApi('set_group_card', {
|
|
257
|
+
group_id: 123456,
|
|
258
|
+
user_id: 654321,
|
|
259
|
+
card: '新名片'
|
|
39
260
|
})
|
|
40
261
|
```
|
|
41
262
|
|
|
42
|
-
##
|
|
263
|
+
## 连接模式对比
|
|
43
264
|
|
|
44
|
-
|
|
45
|
-
- Mirai + mirai-api-http
|
|
46
|
-
- Shamrock
|
|
47
|
-
- LagrangeGo
|
|
48
|
-
- 其他兼容OneBot v11协议的实现
|
|
265
|
+
### 正向 WebSocket(客户端模式)
|
|
49
266
|
|
|
50
|
-
|
|
267
|
+
**优点:**
|
|
268
|
+
- ✅ 配置简单
|
|
269
|
+
- ✅ 主动连接,无需开放端口
|
|
270
|
+
- ✅ 适合本地开发
|
|
51
271
|
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
- 发送文本、图片等消息
|
|
55
|
-
- 消息回复功能
|
|
272
|
+
**缺点:**
|
|
273
|
+
- ❌ 需要 OneBot 实现提供 WebSocket 服务
|
|
56
274
|
|
|
57
|
-
###
|
|
58
|
-
- `get_stranger_info` - 获取用户信息
|
|
59
|
-
- `get_group_info` - 获取群组信息
|
|
60
|
-
- `send_group_msg` - 发送群消息
|
|
61
|
-
- `send_private_msg` - 发送私聊消息
|
|
275
|
+
### 反向 WebSocket(服务器模式)
|
|
62
276
|
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
277
|
+
**优点:**
|
|
278
|
+
- ✅ OneBot 实现主动连接
|
|
279
|
+
- ✅ 支持多个客户端连接
|
|
280
|
+
- ✅ 适合生产环境
|
|
67
281
|
|
|
68
|
-
|
|
282
|
+
**缺点:**
|
|
283
|
+
- ❌ 需要开放端口或使用内网穿透
|
|
284
|
+
- ❌ 配置相对复杂
|
|
69
285
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
286
|
+
## 消息 ID 格式
|
|
287
|
+
|
|
288
|
+
OneBot11 适配器的消息 ID 格式:`{message_id}`
|
|
289
|
+
|
|
290
|
+
撤回消息时直接使用数字 ID。
|
|
291
|
+
|
|
292
|
+
## 注意事项
|
|
293
|
+
|
|
294
|
+
### Access Token
|
|
295
|
+
|
|
296
|
+
建议配置 Access Token 增强安全性:
|
|
297
|
+
```typescript
|
|
298
|
+
{
|
|
299
|
+
access_token: process.env.ONEBOT_TOKEN
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
OneBot 实现需要配置相同的 Token。
|
|
304
|
+
|
|
305
|
+
### 重连机制
|
|
306
|
+
|
|
307
|
+
适配器会自动重连,可配置重连间隔:
|
|
308
|
+
```typescript
|
|
309
|
+
{
|
|
310
|
+
reconnect_interval: 5000 // 5秒后重连
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### 心跳检测
|
|
315
|
+
|
|
316
|
+
心跳机制确保连接活跃:
|
|
317
|
+
```typescript
|
|
318
|
+
{
|
|
319
|
+
heartbeat_interval: 30000 // 30秒发送一次心跳
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### API 超时
|
|
324
|
+
|
|
325
|
+
API 调用默认 30 秒超时,可在代码中调整。
|
|
326
|
+
|
|
327
|
+
## 常见问题
|
|
328
|
+
|
|
329
|
+
### Q: 连接不上 OneBot 服务?
|
|
330
|
+
|
|
331
|
+
A: 检查:
|
|
332
|
+
1. OneBot 服务是否启动
|
|
333
|
+
2. WebSocket 地址是否正确
|
|
334
|
+
3. Access Token 是否匹配
|
|
335
|
+
4. 防火墙是否阻止连接
|
|
336
|
+
|
|
337
|
+
### Q: 消息发送失败?
|
|
338
|
+
|
|
339
|
+
A: 可能原因:
|
|
340
|
+
1. 未登录或登录失败
|
|
341
|
+
2. 被风控限制
|
|
342
|
+
3. 群/好友不存在
|
|
343
|
+
4. 消息格式错误
|
|
344
|
+
|
|
345
|
+
### Q: 反向 WS 无法连接?
|
|
346
|
+
|
|
347
|
+
A: 确认:
|
|
348
|
+
1. HTTP 服务已启动
|
|
349
|
+
2. WebSocket 路径配置正确
|
|
350
|
+
3. OneBot 配置的反向 WS 地址正确
|
|
351
|
+
4. 端口已开放
|
|
352
|
+
|
|
353
|
+
### Q: 如何处理 CQ 码?
|
|
354
|
+
|
|
355
|
+
A: OneBot11 适配器自动处理 CQ 码转换,使用消息段格式即可:
|
|
356
|
+
```typescript
|
|
357
|
+
[
|
|
358
|
+
{ type: 'text', data: { text: '文本' } },
|
|
359
|
+
{ type: 'image', data: { file: 'url' } }
|
|
360
|
+
]
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## 相关链接
|
|
364
|
+
|
|
365
|
+
- [OneBot 标准](https://github.com/botuniverse/onebot-11)
|
|
366
|
+
- [go-cqhttp](https://github.com/Mrs4s/go-cqhttp)
|
|
367
|
+
- [LagrangeGo](https://github.com/LagrangeDev/Lagrange.Core)
|
|
368
|
+
- [Shamrock](https://github.com/whitechi73/OpenShamrock)
|
|
369
|
+
- [Zhin.js 官方文档](https://github.com/zhinjs/zhin)
|
|
74
370
|
|
|
75
371
|
## 依赖项
|
|
76
372
|
|
|
77
|
-
- `ws` - WebSocket
|
|
78
|
-
- `zhin.js` - Zhin核心框架
|
|
373
|
+
- `ws` - WebSocket 客户端/服务器库
|
|
374
|
+
- `zhin.js` - Zhin 核心框架
|
|
79
375
|
|
|
80
376
|
## 开发
|
|
81
377
|
|
|
82
378
|
```bash
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```
|
|
379
|
+
pnpm build # 构建
|
|
380
|
+
pnpm clean # 清理构建文件
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## 许可证
|
|
384
|
+
|
|
385
|
+
MIT License
|
|
386
|
+
|
|
387
|
+
## 贡献
|
|
388
|
+
|
|
389
|
+
欢迎提交 Issue 和 Pull Request!
|
package/lib/index.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
|
-
import { Bot, Adapter, Message, SendOptions } from 'zhin.js';
|
|
2
|
+
import { Bot, Plugin, Adapter, Message, SendOptions } from 'zhin.js';
|
|
3
3
|
import type { Router } from '@zhin.js/http';
|
|
4
|
-
declare module '
|
|
4
|
+
declare module 'zhin.js' {
|
|
5
|
+
namespace Plugin {
|
|
6
|
+
interface Contexts {
|
|
7
|
+
'onebot11': OneBot11Adapter;
|
|
8
|
+
'onebot11.wss': OneBot11WssAdapter;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
5
11
|
interface RegisteredAdapters {
|
|
6
|
-
'onebot11':
|
|
7
|
-
'onebot11.wss':
|
|
12
|
+
'onebot11': OneBot11Adapter;
|
|
13
|
+
'onebot11.wss': OneBot11WssAdapter;
|
|
8
14
|
}
|
|
9
15
|
}
|
|
10
|
-
export interface OneBot11Config
|
|
16
|
+
export interface OneBot11Config {
|
|
11
17
|
context: 'onebot11';
|
|
18
|
+
name: string;
|
|
12
19
|
type: string;
|
|
13
20
|
access_token?: string;
|
|
14
21
|
}
|
|
@@ -43,15 +50,17 @@ interface OneBot11Message {
|
|
|
43
50
|
raw_message: string;
|
|
44
51
|
time: number;
|
|
45
52
|
}
|
|
46
|
-
export declare class OneBot11WsClient extends EventEmitter implements Bot<
|
|
53
|
+
export declare class OneBot11WsClient extends EventEmitter implements Bot<OneBot11WsClientConfig, OneBot11Message> {
|
|
54
|
+
adapter: OneBot11Adapter;
|
|
47
55
|
$config: OneBot11WsClientConfig;
|
|
48
|
-
$connected
|
|
56
|
+
$connected: boolean;
|
|
49
57
|
private ws?;
|
|
50
58
|
private reconnectTimer?;
|
|
51
59
|
private heartbeatTimer?;
|
|
52
60
|
private requestId;
|
|
53
61
|
private pendingRequests;
|
|
54
|
-
constructor($config: OneBot11WsClientConfig);
|
|
62
|
+
constructor(adapter: OneBot11Adapter, $config: OneBot11WsClientConfig);
|
|
63
|
+
get $id(): string;
|
|
55
64
|
$connect(): Promise<void>;
|
|
56
65
|
$disconnect(): Promise<void>;
|
|
57
66
|
$formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
|
|
@@ -63,15 +72,17 @@ export declare class OneBot11WsClient extends EventEmitter implements Bot<OneBot
|
|
|
63
72
|
private startHeartbeat;
|
|
64
73
|
private scheduleReconnect;
|
|
65
74
|
}
|
|
66
|
-
export declare class OneBot11WsServer extends EventEmitter implements Bot<
|
|
75
|
+
export declare class OneBot11WsServer extends EventEmitter implements Bot<OneBot11WsServerConfig, OneBot11Message> {
|
|
67
76
|
#private;
|
|
77
|
+
adapter: OneBot11WssAdapter;
|
|
68
78
|
router: Router;
|
|
69
79
|
$config: OneBot11WsServerConfig;
|
|
70
|
-
$connected
|
|
80
|
+
$connected: boolean;
|
|
71
81
|
private heartbeatTimer?;
|
|
72
82
|
private requestId;
|
|
73
83
|
private pendingRequests;
|
|
74
|
-
|
|
84
|
+
get $id(): string;
|
|
85
|
+
constructor(adapter: OneBot11WssAdapter, router: Router, $config: OneBot11WsServerConfig);
|
|
75
86
|
$connect(): Promise<void>;
|
|
76
87
|
$disconnect(): Promise<void>;
|
|
77
88
|
$formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
|
|
@@ -83,5 +94,14 @@ export declare class OneBot11WsServer extends EventEmitter implements Bot<OneBot
|
|
|
83
94
|
private handleMessage;
|
|
84
95
|
private startHeartbeat;
|
|
85
96
|
}
|
|
97
|
+
declare class OneBot11Adapter extends Adapter<OneBot11WsClient> {
|
|
98
|
+
constructor(plugin: Plugin);
|
|
99
|
+
createBot(config: OneBot11WsClientConfig): OneBot11WsClient;
|
|
100
|
+
}
|
|
101
|
+
declare class OneBot11WssAdapter extends Adapter<OneBot11WsServer> {
|
|
102
|
+
#private;
|
|
103
|
+
constructor(plugin: Plugin, router: Router);
|
|
104
|
+
createBot(config: OneBot11WsServerConfig): OneBot11WsServer;
|
|
105
|
+
}
|
|
86
106
|
export {};
|
|
87
107
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import WebSocket from 'ws';
|
|
2
2
|
import { EventEmitter } from "events";
|
|
3
|
-
import { Adapter, usePlugin, Message,
|
|
3
|
+
import { Adapter, usePlugin, Message, segment } from 'zhin.js';
|
|
4
4
|
import { clearInterval } from "node:timers";
|
|
5
5
|
const plugin = usePlugin();
|
|
6
|
+
const { provide, useContext } = plugin;
|
|
6
7
|
// ============================================================================
|
|
7
8
|
// OneBot11 适配器实现
|
|
8
9
|
// ============================================================================
|
|
9
10
|
export class OneBot11WsClient extends EventEmitter {
|
|
11
|
+
adapter;
|
|
10
12
|
$config;
|
|
11
13
|
$connected;
|
|
12
14
|
ws;
|
|
@@ -14,11 +16,15 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
14
16
|
heartbeatTimer;
|
|
15
17
|
requestId = 0;
|
|
16
18
|
pendingRequests = new Map();
|
|
17
|
-
constructor($config) {
|
|
19
|
+
constructor(adapter, $config) {
|
|
18
20
|
super();
|
|
21
|
+
this.adapter = adapter;
|
|
19
22
|
this.$config = $config;
|
|
20
23
|
this.$connected = false;
|
|
21
24
|
}
|
|
25
|
+
get $id() {
|
|
26
|
+
return this.$config.name;
|
|
27
|
+
}
|
|
22
28
|
async $connect() {
|
|
23
29
|
return new Promise((resolve, reject) => {
|
|
24
30
|
let wsUrl = this.$config.url;
|
|
@@ -106,7 +112,6 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
106
112
|
return message;
|
|
107
113
|
}
|
|
108
114
|
async $sendMessage(options) {
|
|
109
|
-
options = await plugin.app.handleBeforeSend(options);
|
|
110
115
|
const messageData = {
|
|
111
116
|
message: options.content
|
|
112
117
|
};
|
|
@@ -115,7 +120,7 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
115
120
|
group_id: parseInt(options.id),
|
|
116
121
|
...messageData
|
|
117
122
|
});
|
|
118
|
-
plugin.logger.
|
|
123
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
119
124
|
return result.message_id.toString();
|
|
120
125
|
}
|
|
121
126
|
else if (options.type === 'private') {
|
|
@@ -123,7 +128,7 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
123
128
|
user_id: parseInt(options.id),
|
|
124
129
|
...messageData
|
|
125
130
|
});
|
|
126
|
-
plugin.logger.
|
|
131
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
127
132
|
return result.message_id.toString();
|
|
128
133
|
}
|
|
129
134
|
else {
|
|
@@ -177,9 +182,8 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
177
182
|
}
|
|
178
183
|
handleOneBot11Message(onebotMsg) {
|
|
179
184
|
const message = this.$formatMessage(onebotMsg);
|
|
180
|
-
|
|
181
|
-
plugin.logger.
|
|
182
|
-
plugin.dispatch(`message.${message.$channel.type}.receive`, message);
|
|
185
|
+
this.adapter.emit('message.receive', message);
|
|
186
|
+
plugin.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
|
|
183
187
|
}
|
|
184
188
|
startHeartbeat() {
|
|
185
189
|
const interval = this.$config.heartbeat_interval || 30000;
|
|
@@ -207,6 +211,7 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
207
211
|
}
|
|
208
212
|
}
|
|
209
213
|
export class OneBot11WsServer extends EventEmitter {
|
|
214
|
+
adapter;
|
|
210
215
|
router;
|
|
211
216
|
$config;
|
|
212
217
|
$connected;
|
|
@@ -215,8 +220,12 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
215
220
|
heartbeatTimer;
|
|
216
221
|
requestId = 0;
|
|
217
222
|
pendingRequests = new Map();
|
|
218
|
-
|
|
223
|
+
get $id() {
|
|
224
|
+
return this.$config.name;
|
|
225
|
+
}
|
|
226
|
+
constructor(adapter, router, $config) {
|
|
219
227
|
super();
|
|
228
|
+
this.adapter = adapter;
|
|
220
229
|
this.router = router;
|
|
221
230
|
this.$config = $config;
|
|
222
231
|
this.$connected = false;
|
|
@@ -303,7 +312,6 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
303
312
|
return message;
|
|
304
313
|
}
|
|
305
314
|
async $sendMessage(options) {
|
|
306
|
-
options = await plugin.app.handleBeforeSend(options);
|
|
307
315
|
const messageData = {
|
|
308
316
|
message: options.content
|
|
309
317
|
};
|
|
@@ -313,7 +321,7 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
313
321
|
group_id: parseInt(id),
|
|
314
322
|
...messageData
|
|
315
323
|
});
|
|
316
|
-
plugin.logger.
|
|
324
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
|
|
317
325
|
return result.message_id.toString();
|
|
318
326
|
}
|
|
319
327
|
else if (options.type === 'private') {
|
|
@@ -322,7 +330,7 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
322
330
|
user_id: parseInt(id),
|
|
323
331
|
...messageData
|
|
324
332
|
});
|
|
325
|
-
plugin.logger.
|
|
333
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
|
|
326
334
|
return result.message_id.toString();
|
|
327
335
|
}
|
|
328
336
|
else {
|
|
@@ -393,9 +401,8 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
393
401
|
}
|
|
394
402
|
handleMessage(onebotMsg) {
|
|
395
403
|
const message = this.$formatMessage(onebotMsg);
|
|
396
|
-
|
|
397
|
-
plugin.logger.
|
|
398
|
-
plugin.dispatch(`message.${message.$channel.type}.receive`, message);
|
|
404
|
+
this.adapter.emit('message.receive', message);
|
|
405
|
+
plugin.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`);
|
|
399
406
|
}
|
|
400
407
|
startHeartbeat() {
|
|
401
408
|
const interval = this.$config.heartbeat_interval || 30000;
|
|
@@ -408,8 +415,50 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
408
415
|
}, interval);
|
|
409
416
|
}
|
|
410
417
|
}
|
|
411
|
-
|
|
418
|
+
// 定义 Adapter 类
|
|
419
|
+
class OneBot11Adapter extends Adapter {
|
|
420
|
+
constructor(plugin) {
|
|
421
|
+
super(plugin, 'onebot11', []);
|
|
422
|
+
}
|
|
423
|
+
createBot(config) {
|
|
424
|
+
return new OneBot11WsClient(this, config);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
class OneBot11WssAdapter extends Adapter {
|
|
428
|
+
#router;
|
|
429
|
+
constructor(plugin, router) {
|
|
430
|
+
super(plugin, 'onebot11.wss', []);
|
|
431
|
+
this.#router = router;
|
|
432
|
+
}
|
|
433
|
+
createBot(config) {
|
|
434
|
+
return new OneBot11WsServer(this, this.#router, config);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
// 使用新的 provide() API 注册适配器
|
|
438
|
+
provide({
|
|
439
|
+
name: "onebot11",
|
|
440
|
+
description: "OneBot11 WebSocket Client Adapter",
|
|
441
|
+
mounted: async (p) => {
|
|
442
|
+
const adapter = new OneBot11Adapter(p);
|
|
443
|
+
await adapter.start();
|
|
444
|
+
return adapter;
|
|
445
|
+
},
|
|
446
|
+
dispose: async (adapter) => {
|
|
447
|
+
await adapter.stop();
|
|
448
|
+
},
|
|
449
|
+
});
|
|
412
450
|
useContext('router', (router) => {
|
|
413
|
-
|
|
451
|
+
provide({
|
|
452
|
+
name: "onebot11.wss",
|
|
453
|
+
description: "OneBot11 WebSocket Server Adapter",
|
|
454
|
+
mounted: async (p) => {
|
|
455
|
+
const adapter = new OneBot11WssAdapter(p, router);
|
|
456
|
+
await adapter.start();
|
|
457
|
+
return adapter;
|
|
458
|
+
},
|
|
459
|
+
dispose: async (adapter) => {
|
|
460
|
+
await adapter.stop();
|
|
461
|
+
},
|
|
462
|
+
});
|
|
414
463
|
});
|
|
415
464
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-onebot11",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"description": "zhin adapter for onebot11",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -38,14 +38,10 @@
|
|
|
38
38
|
"typescript": "^5.3.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"zhin.js": "1.0.
|
|
42
|
-
"@zhin.js/
|
|
43
|
-
"@zhin.js/http": "1.0.7"
|
|
41
|
+
"zhin.js": "1.0.18",
|
|
42
|
+
"@zhin.js/http": "1.0.9"
|
|
44
43
|
},
|
|
45
44
|
"peerDependenciesMeta": {
|
|
46
|
-
"@zhin.js/types": {
|
|
47
|
-
"optional": true
|
|
48
|
-
},
|
|
49
45
|
"@zhin.js/http": {
|
|
50
46
|
"optional": true
|
|
51
47
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,28 +6,36 @@ import {
|
|
|
6
6
|
Adapter,
|
|
7
7
|
usePlugin,
|
|
8
8
|
Message,
|
|
9
|
-
registerAdapter,
|
|
10
9
|
MessageSegment,
|
|
11
10
|
SendOptions,
|
|
12
|
-
segment,
|
|
11
|
+
segment,
|
|
12
|
+
SendContent
|
|
13
13
|
} from 'zhin.js';
|
|
14
14
|
import type { Router } from '@zhin.js/http'
|
|
15
15
|
import { IncomingMessage } from "http";
|
|
16
16
|
import { clearInterval } from "node:timers";
|
|
17
17
|
|
|
18
|
-
//
|
|
19
|
-
declare module '
|
|
18
|
+
// 类型扩展 - 使用 zhin.js 模式
|
|
19
|
+
declare module 'zhin.js' {
|
|
20
|
+
namespace Plugin {
|
|
21
|
+
interface Contexts {
|
|
22
|
+
'onebot11': OneBot11Adapter;
|
|
23
|
+
'onebot11.wss': OneBot11WssAdapter;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
interface RegisteredAdapters {
|
|
21
|
-
'onebot11':
|
|
22
|
-
'onebot11.wss':
|
|
28
|
+
'onebot11': OneBot11Adapter;
|
|
29
|
+
'onebot11.wss': OneBot11WssAdapter;
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
32
|
// ============================================================================
|
|
26
33
|
// OneBot11 配置和类型
|
|
27
34
|
// ============================================================================
|
|
28
35
|
|
|
29
|
-
export interface OneBot11Config
|
|
36
|
+
export interface OneBot11Config {
|
|
30
37
|
context: 'onebot11';
|
|
38
|
+
name: string;
|
|
31
39
|
type: string
|
|
32
40
|
access_token?: string;
|
|
33
41
|
}
|
|
@@ -70,13 +78,15 @@ interface ApiResponse<T = any> {
|
|
|
70
78
|
data: T;
|
|
71
79
|
echo?: string;
|
|
72
80
|
}
|
|
73
|
-
const plugin =usePlugin()
|
|
81
|
+
const plugin = usePlugin();
|
|
82
|
+
const { provide, useContext } = plugin;
|
|
83
|
+
|
|
74
84
|
// ============================================================================
|
|
75
85
|
// OneBot11 适配器实现
|
|
76
86
|
// ============================================================================
|
|
77
87
|
|
|
78
|
-
export class OneBot11WsClient extends EventEmitter implements Bot<
|
|
79
|
-
$connected
|
|
88
|
+
export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11WsClientConfig, OneBot11Message> {
|
|
89
|
+
$connected: boolean
|
|
80
90
|
private ws?: WebSocket;
|
|
81
91
|
private reconnectTimer?: NodeJS.Timeout;
|
|
82
92
|
private heartbeatTimer?: NodeJS.Timeout;
|
|
@@ -87,11 +97,15 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
87
97
|
timeout: NodeJS.Timeout;
|
|
88
98
|
}>();
|
|
89
99
|
|
|
90
|
-
constructor(public $config: OneBot11WsClientConfig) {
|
|
100
|
+
constructor(public adapter: OneBot11Adapter, public $config: OneBot11WsClientConfig) {
|
|
91
101
|
super();
|
|
92
102
|
this.$connected = false
|
|
93
103
|
}
|
|
94
104
|
|
|
105
|
+
get $id() {
|
|
106
|
+
return this.$config.name;
|
|
107
|
+
}
|
|
108
|
+
|
|
95
109
|
|
|
96
110
|
async $connect(): Promise<void> {
|
|
97
111
|
return new Promise((resolve, reject) => {
|
|
@@ -188,7 +202,6 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
188
202
|
}
|
|
189
203
|
|
|
190
204
|
async $sendMessage(options: SendOptions): Promise<string> {
|
|
191
|
-
options = await plugin.app.handleBeforeSend(options)
|
|
192
205
|
const messageData: any = {
|
|
193
206
|
message: options.content
|
|
194
207
|
};
|
|
@@ -197,14 +210,14 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
197
210
|
group_id: parseInt(options.id),
|
|
198
211
|
...messageData
|
|
199
212
|
});
|
|
200
|
-
plugin.logger.
|
|
213
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
201
214
|
return result.message_id.toString();
|
|
202
215
|
} else if (options.type === 'private') {
|
|
203
216
|
const result = await this.callApi('send_private_msg', {
|
|
204
217
|
user_id: parseInt(options.id),
|
|
205
218
|
...messageData
|
|
206
219
|
});
|
|
207
|
-
plugin.logger.
|
|
220
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
208
221
|
return result.message_id.toString();
|
|
209
222
|
} else {
|
|
210
223
|
throw new Error('Either group_id or user_id must be provided');
|
|
@@ -263,9 +276,8 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
263
276
|
|
|
264
277
|
private handleOneBot11Message(onebotMsg: OneBot11Message): void {
|
|
265
278
|
const message = this.$formatMessage(onebotMsg);
|
|
266
|
-
|
|
267
|
-
plugin.logger.
|
|
268
|
-
plugin.dispatch(`message.${message.$channel.type}.receive`, message)
|
|
279
|
+
this.adapter.emit('message.receive', message);
|
|
280
|
+
plugin.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
|
|
269
281
|
}
|
|
270
282
|
|
|
271
283
|
private startHeartbeat(): void {
|
|
@@ -294,8 +306,8 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
294
306
|
}, interval);
|
|
295
307
|
}
|
|
296
308
|
}
|
|
297
|
-
export class OneBot11WsServer extends EventEmitter implements Bot<
|
|
298
|
-
$connected
|
|
309
|
+
export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11WsServerConfig, OneBot11Message> {
|
|
310
|
+
$connected: boolean
|
|
299
311
|
#wss?: WebSocketServer
|
|
300
312
|
#clientMap: Map<string, WebSocket> = new Map<string, WebSocket>()
|
|
301
313
|
private heartbeatTimer?: NodeJS.Timeout;
|
|
@@ -306,7 +318,11 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
306
318
|
timeout: NodeJS.Timeout;
|
|
307
319
|
}>();
|
|
308
320
|
|
|
309
|
-
|
|
321
|
+
get $id() {
|
|
322
|
+
return this.$config.name;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
constructor(public adapter: OneBot11WssAdapter, public router: Router, public $config: OneBot11WsServerConfig) {
|
|
310
326
|
super();
|
|
311
327
|
this.$connected = false
|
|
312
328
|
}
|
|
@@ -391,7 +407,6 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
391
407
|
}
|
|
392
408
|
|
|
393
409
|
async $sendMessage(options: SendOptions): Promise<string> {
|
|
394
|
-
options = await plugin.app.handleBeforeSend(options)
|
|
395
410
|
const messageData: any = {
|
|
396
411
|
message: options.content
|
|
397
412
|
};
|
|
@@ -401,7 +416,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
401
416
|
group_id: parseInt(id),
|
|
402
417
|
...messageData
|
|
403
418
|
});
|
|
404
|
-
plugin.logger.
|
|
419
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`)
|
|
405
420
|
return result.message_id.toString();
|
|
406
421
|
} else if (options.type === 'private') {
|
|
407
422
|
const [self_id, id] = options.id.split(':')
|
|
@@ -409,7 +424,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
409
424
|
user_id: parseInt(id),
|
|
410
425
|
...messageData
|
|
411
426
|
});
|
|
412
|
-
plugin.logger.
|
|
427
|
+
plugin.logger.debug(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`)
|
|
413
428
|
return result.message_id.toString();
|
|
414
429
|
} else {
|
|
415
430
|
throw new Error('Either group_id or user_id must be provided');
|
|
@@ -483,9 +498,8 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
483
498
|
}
|
|
484
499
|
private handleMessage(onebotMsg: OneBot11Message): void {
|
|
485
500
|
const message = this.$formatMessage(onebotMsg);
|
|
486
|
-
|
|
487
|
-
plugin.logger.
|
|
488
|
-
plugin.dispatch(`message.${message.$channel.type}.receive`, message)
|
|
501
|
+
this.adapter.emit('message.receive', message);
|
|
502
|
+
plugin.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`);
|
|
489
503
|
}
|
|
490
504
|
|
|
491
505
|
private startHeartbeat(): void {
|
|
@@ -499,7 +513,56 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
499
513
|
}, interval);
|
|
500
514
|
}
|
|
501
515
|
}
|
|
502
|
-
|
|
516
|
+
|
|
517
|
+
// 定义 Adapter 类
|
|
518
|
+
class OneBot11Adapter extends Adapter<OneBot11WsClient> {
|
|
519
|
+
constructor(plugin: Plugin) {
|
|
520
|
+
super(plugin, 'onebot11', []);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
createBot(config: OneBot11WsClientConfig): OneBot11WsClient {
|
|
524
|
+
return new OneBot11WsClient(this, config);
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
class OneBot11WssAdapter extends Adapter<OneBot11WsServer> {
|
|
529
|
+
#router: Router;
|
|
530
|
+
|
|
531
|
+
constructor(plugin: Plugin, router: Router) {
|
|
532
|
+
super(plugin, 'onebot11.wss', []);
|
|
533
|
+
this.#router = router;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
createBot(config: OneBot11WsServerConfig): OneBot11WsServer {
|
|
537
|
+
return new OneBot11WsServer(this, this.#router, config);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
// 使用新的 provide() API 注册适配器
|
|
542
|
+
provide({
|
|
543
|
+
name: "onebot11",
|
|
544
|
+
description: "OneBot11 WebSocket Client Adapter",
|
|
545
|
+
mounted: async (p) => {
|
|
546
|
+
const adapter = new OneBot11Adapter(p);
|
|
547
|
+
await adapter.start();
|
|
548
|
+
return adapter;
|
|
549
|
+
},
|
|
550
|
+
dispose: async (adapter) => {
|
|
551
|
+
await adapter.stop();
|
|
552
|
+
},
|
|
553
|
+
});
|
|
554
|
+
|
|
503
555
|
useContext('router', (router) => {
|
|
504
|
-
|
|
505
|
-
|
|
556
|
+
provide({
|
|
557
|
+
name: "onebot11.wss",
|
|
558
|
+
description: "OneBot11 WebSocket Server Adapter",
|
|
559
|
+
mounted: async (p) => {
|
|
560
|
+
const adapter = new OneBot11WssAdapter(p, router);
|
|
561
|
+
await adapter.start();
|
|
562
|
+
return adapter;
|
|
563
|
+
},
|
|
564
|
+
dispose: async (adapter) => {
|
|
565
|
+
await adapter.stop();
|
|
566
|
+
},
|
|
567
|
+
});
|
|
568
|
+
});
|