@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 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
- 基于 OneBot v11 协议的 Zhin 机器人适配器,通过 WebSocket 连接各种支持 OneBot 协议的机器人客户端。
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
- npm install @zhin.js/adapter-onebot11
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
- name: 'my-bot', // 机器人名称
32
- url: process.env.ONEBOT_URL || 'ws://localhost:8080', // OneBot服务器地址
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: ['adapter-onebot11']
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
- ## 支持的OneBot实现
263
+ ## 连接模式对比
43
264
 
44
- - go-cqhttp
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
- ### API调用
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
- 适配器会自动处理WebSocket连接:
71
- - 支持Bearer Token认证
72
- - 自动处理断线重连
73
- - API请求超时管理
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
- npm run build # 构建
84
- npm run clean # 清理构建文件
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 '@zhin.js/types' {
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': Adapter<OneBot11WsClient>;
7
- 'onebot11.wss': Adapter<OneBot11WsServer>;
12
+ 'onebot11': OneBot11Adapter;
13
+ 'onebot11.wss': OneBot11WssAdapter;
8
14
  }
9
15
  }
10
- export interface OneBot11Config extends Bot.Config {
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<OneBot11Message, OneBot11WsClientConfig> {
53
+ export declare class OneBot11WsClient extends EventEmitter implements Bot<OneBot11WsClientConfig, OneBot11Message> {
54
+ adapter: OneBot11Adapter;
47
55
  $config: OneBot11WsClientConfig;
48
- $connected?: boolean;
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<OneBot11Message, OneBot11WsServerConfig> {
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?: boolean;
80
+ $connected: boolean;
71
81
  private heartbeatTimer?;
72
82
  private requestId;
73
83
  private pendingRequests;
74
- constructor(router: Router, $config: OneBot11WsServerConfig);
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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, registerAdapter, segment, useContext } from 'zhin.js';
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.info(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
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.info(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
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
- plugin.dispatch('message.receive', message);
181
- plugin.logger.info(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
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
- constructor(router, $config) {
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.info(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
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.info(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`);
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
- plugin.dispatch('message.receive', message);
397
- plugin.logger.info(`${this.$config.name} recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`);
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
- registerAdapter(new Adapter('onebot11', OneBot11WsClient));
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
- registerAdapter(new Adapter('onebot11.wss', (c) => new OneBot11WsServer(router, c)));
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.18",
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.16",
42
- "@zhin.js/types": "1.0.5",
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, useContext, SendContent
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
- // 声明模块,注册 onebot11 适配器类型
19
- declare module '@zhin.js/types' {
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': Adapter<OneBot11WsClient>
22
- 'onebot11.wss': Adapter<OneBot11WsServer>
28
+ 'onebot11': OneBot11Adapter;
29
+ 'onebot11.wss': OneBot11WssAdapter;
23
30
  }
24
31
  }
25
32
  // ============================================================================
26
33
  // OneBot11 配置和类型
27
34
  // ============================================================================
28
35
 
29
- export interface OneBot11Config extends Bot.Config {
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<OneBot11Message, OneBot11WsClientConfig> {
79
- $connected?: boolean
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.info(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`)
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.info(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`)
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
- plugin.dispatch('message.receive', message)
267
- plugin.logger.info(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`)
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<OneBot11Message, OneBot11WsServerConfig> {
298
- $connected?: boolean
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
- constructor(public router: Router, public $config: OneBot11WsServerConfig) {
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.info(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`)
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.info(`${this.$config.name} send ${options.type}(${id}):${segment.raw(options.content)}`)
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
- plugin.dispatch('message.receive', message)
487
- plugin.logger.info(`${this.$config.name} recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`)
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
- registerAdapter(new Adapter('onebot11', OneBot11WsClient))
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
- registerAdapter(new Adapter('onebot11.wss', (c: OneBot11WsServerConfig) => new OneBot11WsServer(router, c)));
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
+ });