@zhin.js/adapter-onebot11 1.0.2 → 1.0.3

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,14 @@
1
1
  # @zhin.js/adapter-onebot11
2
2
 
3
+ ## 1.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 89bc676: fix: 类型反射优化
8
+ - Updated dependencies [89bc676]
9
+ - @zhin.js/types@1.0.2
10
+ - zhin.js@1.0.3
11
+
3
12
  ## 1.0.2
4
13
 
5
14
  ### Patch Changes
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter } from "events";
2
2
  import { Bot, Plugin, Adapter, BotConfig, Message, SendOptions } from 'zhin.js';
3
3
  import type { Router } from '@zhin.js/http';
4
- declare module 'zhin.js' {
4
+ declare module '@zhin.js/types' {
5
5
  interface RegisteredAdapters {
6
6
  'onebot11': Adapter<OneBot11WsClient>;
7
7
  'onebot11.wss': Adapter<OneBot11WsServer>;
@@ -56,7 +56,8 @@ export declare class OneBot11WsClient extends EventEmitter implements Bot<OneBot
56
56
  $connect(): Promise<void>;
57
57
  $disconnect(): Promise<void>;
58
58
  $formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
59
- $sendMessage(options: SendOptions): Promise<void>;
59
+ $sendMessage(options: SendOptions): Promise<string>;
60
+ $recallMessage(id: string): Promise<void>;
60
61
  private callApi;
61
62
  private handleWebSocketMessage;
62
63
  private handleOneBot11Message;
@@ -76,7 +77,8 @@ export declare class OneBot11WsServer extends EventEmitter implements Bot<OneBot
76
77
  $connect(): Promise<void>;
77
78
  $disconnect(): Promise<void>;
78
79
  $formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
79
- $sendMessage(options: SendOptions): Promise<void>;
80
+ $sendMessage(options: SendOptions): Promise<string>;
81
+ $recallMessage(id: string): Promise<void>;
80
82
  private callApi;
81
83
  private handleWebSocketMessage;
82
84
  private handleMetaEvent;
@@ -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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,GAAG,EACH,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EAGP,WAAW,EAEZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAK3C,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,kBAAkB;QAC1B,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;QACrC,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAC1C;CACF;AAKD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,IAAI,CAAA;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC3B,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAaD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAYrF,MAAM,EAAE,MAAM;IAAS,OAAO,EAAE,sBAAsB;IAXzE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;gBAEc,MAAM,EAAE,MAAM,EAAS,OAAO,EAAE,sBAAsB;IAMnE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlC,cAAc,CAAC,SAAS,EAAE,eAAe;IA6BnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjC,OAAO;IAuBrB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;CAgB1B;AACD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC;;IAYrF,MAAM,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;IAAS,OAAO,EAAE,sBAAsB;IAXhG,UAAU,CAAC,EAAE,OAAO,CAAA;IAGpB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;gBAEc,MAAM,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,OAAO,EAAE,sBAAsB;IAI1F,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,cAAc,CAAC,SAAS,EAAE,eAAe;IA8BnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMjC,OAAO;IAwBrB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;CAUvB"}
package/lib/index.js CHANGED
@@ -93,7 +93,7 @@ export class OneBot11WsClient extends EventEmitter {
93
93
  $reply: async (content, quote) => {
94
94
  if (quote)
95
95
  content.unshift({ type: 'reply', data: { message_id: message.$id } });
96
- this.plugin.dispatch('message.send', {
96
+ return await this.$sendMessage({
97
97
  ...message.$channel,
98
98
  context: 'onebot11',
99
99
  bot: `${this.$config.name}`,
@@ -109,22 +109,30 @@ export class OneBot11WsClient extends EventEmitter {
109
109
  message: options.content
110
110
  };
111
111
  if (options.type === 'group') {
112
- await this.callApi('send_group_msg', {
112
+ const result = await this.callApi('send_group_msg', {
113
113
  group_id: parseInt(options.id),
114
114
  ...messageData
115
115
  });
116
116
  this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
117
+ return result.message_id.toString();
117
118
  }
118
119
  else if (options.type === 'private') {
119
- await this.callApi('send_private_msg', {
120
+ const result = await this.callApi('send_private_msg', {
120
121
  user_id: parseInt(options.id),
121
122
  ...messageData
122
123
  });
123
124
  this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
125
+ return result.message_id.toString();
124
126
  }
125
127
  else {
126
128
  throw new Error('Either group_id or user_id must be provided');
127
129
  }
130
+ return '';
131
+ }
132
+ async $recallMessage(id) {
133
+ await this.callApi('delete_msg', {
134
+ message_id: parseInt(id)
135
+ });
128
136
  }
129
137
  async callApi(action, params = {}) {
130
138
  if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
@@ -216,7 +224,8 @@ export class OneBot11WsServer extends EventEmitter {
216
224
  async $connect() {
217
225
  if (!this.$config.access_token)
218
226
  this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`);
219
- this.#wss = this.router.ws(this.$config.path, { verifyClient: (info) => {
227
+ this.#wss = this.router.ws(this.$config.path, {
228
+ verifyClient: (info) => {
220
229
  const { req: { headers }, } = info;
221
230
  const authorization = headers['authorization'] || '';
222
231
  if (this.$config.access_token && authorization !== `Bearer ${this.$config.access_token}`) {
@@ -224,7 +233,8 @@ export class OneBot11WsServer extends EventEmitter {
224
233
  return false;
225
234
  }
226
235
  return true;
227
- } });
236
+ }
237
+ });
228
238
  this.$connected = true;
229
239
  this.plugin.logger.info(`ws server start at path:${this.$config.path}`);
230
240
  this.#wss.on('connection', (client, req) => {
@@ -279,7 +289,7 @@ export class OneBot11WsServer extends EventEmitter {
279
289
  content = [content];
280
290
  if (quote)
281
291
  content.unshift({ type: 'reply', data: { message_id: message.$id } });
282
- this.plugin.dispatch('message.send', {
292
+ return await this.$sendMessage({
283
293
  ...message.$channel,
284
294
  context: 'onebot11',
285
295
  bot: `${this.$config.name}`,
@@ -296,23 +306,32 @@ export class OneBot11WsServer extends EventEmitter {
296
306
  };
297
307
  if (options.type === 'group') {
298
308
  const [self_id, id] = options.id.split(':');
299
- await this.callApi(self_id, 'send_group_msg', {
309
+ const result = await this.callApi(self_id, 'send_group_msg', {
300
310
  group_id: parseInt(id),
301
311
  ...messageData
302
312
  });
303
313
  this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`);
314
+ return result.message_id.toString();
304
315
  }
305
316
  else if (options.type === 'private') {
306
317
  const [self_id, id] = options.id.split(':');
307
- await this.callApi(self_id, 'send_private_msg', {
318
+ const result = await this.callApi(self_id, 'send_private_msg', {
308
319
  user_id: parseInt(id),
309
320
  ...messageData
310
321
  });
311
322
  this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`);
323
+ return result.message_id.toString();
312
324
  }
313
325
  else {
314
326
  throw new Error('Either group_id or user_id must be provided');
315
327
  }
328
+ return '';
329
+ }
330
+ async $recallMessage(id) {
331
+ const [self_id, message_id] = id.split(':');
332
+ await this.callApi(self_id, 'delete_msg', {
333
+ message_id: parseInt(message_id)
334
+ });
316
335
  }
317
336
  async callApi(self_id, action, params = {}) {
318
337
  const client = this.#clientMap.get(self_id);
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.2",
3
+ "version": "1.0.3",
4
4
  "description": "zhin adapter for onebot11",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -20,8 +20,8 @@
20
20
  "typescript": "^5.3.0"
21
21
  },
22
22
  "peerDependencies": {
23
- "zhin.js": "1.0.2",
24
- "@zhin.js/types": "1.0.1",
23
+ "zhin.js": "1.0.3",
24
+ "@zhin.js/types": "1.0.2",
25
25
  "@zhin.js/http": "1.0.1"
26
26
  },
27
27
  "peerDependenciesMeta": {
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
- import WebSocket, {WebSocketServer} from 'ws';
2
- import {EventEmitter} from "events";
1
+ import WebSocket, { WebSocketServer } from 'ws';
2
+ import { EventEmitter } from "events";
3
3
  import {
4
4
  Bot,
5
5
  Plugin,
@@ -7,20 +7,19 @@ import {
7
7
  BotConfig,
8
8
  Message,
9
9
  registerAdapter,
10
- User,
11
- Group,
12
10
  MessageSegment,
13
11
  SendOptions,
14
- MessageType, segment, useContext, SendContent
12
+ segment, useContext, SendContent
15
13
  } from 'zhin.js';
16
- import type {Router} from '@zhin.js/http'
17
- import {IncomingMessage} from "http";
18
- import {clearInterval} from "node:timers";
19
-
20
- declare module 'zhin.js'{
21
- interface RegisteredAdapters{
22
- 'onebot11':Adapter<OneBot11WsClient>
23
- 'onebot11.wss':Adapter<OneBot11WsServer>
14
+ import type { Router } from '@zhin.js/http'
15
+ import { IncomingMessage } from "http";
16
+ import { clearInterval } from "node:timers";
17
+
18
+ // 声明模块,注册 onebot11 适配器类型
19
+ declare module '@zhin.js/types' {
20
+ interface RegisteredAdapters {
21
+ 'onebot11': Adapter<OneBot11WsClient>
22
+ 'onebot11.wss': Adapter<OneBot11WsServer>
24
23
  }
25
24
  }
26
25
  // ============================================================================
@@ -29,29 +28,29 @@ declare module 'zhin.js'{
29
28
 
30
29
  export interface OneBot11Config extends BotConfig {
31
30
  context: 'onebot11';
32
- type:string
31
+ type: string
33
32
  access_token?: string;
34
33
  }
35
- export interface OneBot11WsClientConfig extends OneBot11Config{
36
- type:'ws'
34
+ export interface OneBot11WsClientConfig extends OneBot11Config {
35
+ type: 'ws'
37
36
  url: string;
38
37
  reconnect_interval?: number;
39
38
  heartbeat_interval?: number;
40
39
  }
41
- export interface OneBot11WsServerConfig extends OneBot11Config{
42
- type:'ws_reverse'
43
- path:string
40
+ export interface OneBot11WsServerConfig extends OneBot11Config {
41
+ type: 'ws_reverse'
42
+ path: string
44
43
  heartbeat_interval?: number;
45
44
  }
46
- export interface OneBot11HTTPConfig extends OneBot11Config{
47
- type:'http_sse'
48
- port:number
49
- path:string
45
+ export interface OneBot11HTTPConfig extends OneBot11Config {
46
+ type: 'http_sse'
47
+ port: number
48
+ path: string
50
49
  }
51
50
 
52
51
  interface OneBot11Message {
53
52
  post_type: string;
54
- self_id:string
53
+ self_id: string
55
54
  message_type?: string;
56
55
  sub_type?: string;
57
56
  message_id: number;
@@ -76,8 +75,8 @@ interface ApiResponse<T = any> {
76
75
  // OneBot11 适配器实现
77
76
  // ============================================================================
78
77
 
79
- export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Message,OneBot11WsClientConfig> {
80
- $connected?:boolean
78
+ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Message, OneBot11WsClientConfig> {
79
+ $connected?: boolean
81
80
  private ws?: WebSocket;
82
81
  private reconnectTimer?: NodeJS.Timeout;
83
82
  private heartbeatTimer?: NodeJS.Timeout;
@@ -88,9 +87,9 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
88
87
  timeout: NodeJS.Timeout;
89
88
  }>();
90
89
 
91
- constructor(public plugin:Plugin,public $config: OneBot11WsClientConfig) {
90
+ constructor(public plugin: Plugin, public $config: OneBot11WsClientConfig) {
92
91
  super();
93
- this.$connected=false
92
+ this.$connected = false
94
93
  }
95
94
 
96
95
 
@@ -102,11 +101,11 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
102
101
  if (this.$config.access_token) {
103
102
  headers['Authorization'] = `Bearer ${this.$config.access_token}`;
104
103
  }
105
- this.ws = new WebSocket(wsUrl,{headers});
104
+ this.ws = new WebSocket(wsUrl, { headers });
106
105
 
107
106
  this.ws.on('open', () => {
108
- this.$connected=true;
109
- if(!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
107
+ this.$connected = true;
108
+ if (!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
110
109
  this.startHeartbeat();
111
110
  resolve();
112
111
  });
@@ -116,13 +115,13 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
116
115
  const message = JSON.parse(data.toString());
117
116
  this.handleWebSocketMessage(message);
118
117
  } catch (error) {
119
- this.emit('error',error)
118
+ this.emit('error', error)
120
119
  }
121
120
  });
122
121
 
123
- this.ws.on('close', (code,reason) => {
124
- this.$connected=false
125
- reject({code,reason})
122
+ this.ws.on('close', (code, reason) => {
123
+ this.$connected = false
124
+ reject({ code, reason })
126
125
  this.scheduleReconnect();
127
126
  });
128
127
 
@@ -155,28 +154,28 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
155
154
  this.ws = undefined;
156
155
  }
157
156
  }
158
- $formatMessage(onebotMsg: OneBot11Message){
159
- const message=Message.from(onebotMsg,{
157
+ $formatMessage(onebotMsg: OneBot11Message) {
158
+ const message = Message.from(onebotMsg, {
160
159
  $id: onebotMsg.message_id.toString(),
161
- $adapter:'onebot11',
162
- $bot:`${this.$config.name}`,
163
- $sender:{
164
- id:onebotMsg.user_id.toString(),
165
- name:onebotMsg.user_id.toString()
160
+ $adapter: 'onebot11',
161
+ $bot: `${this.$config.name}`,
162
+ $sender: {
163
+ id: onebotMsg.user_id.toString(),
164
+ name: onebotMsg.user_id.toString()
166
165
  },
167
- $channel:{
166
+ $channel: {
168
167
  id: (onebotMsg.group_id || onebotMsg.user_id).toString(),
169
- type:onebotMsg.group_id?'group':'private'
168
+ type: onebotMsg.group_id ? 'group' : 'private'
170
169
  },
171
170
  $content: onebotMsg.message,
172
171
  $raw: onebotMsg.raw_message,
173
172
  $timestamp: onebotMsg.time,
174
- $reply:async (content: MessageSegment[], quote?: boolean|string):Promise<void>=> {
175
- if(quote) content.unshift({type:'reply',data:{message_id:message.$id}})
176
- this.plugin.dispatch('message.send',{
173
+ $reply: async (content: MessageSegment[], quote?: boolean | string): Promise<string> => {
174
+ if (quote) content.unshift({ type: 'reply', data: { message_id: message.$id } })
175
+ return await this.$sendMessage({
177
176
  ...message.$channel,
178
- context:'onebot11',
179
- bot:`${this.$config.name}`,
177
+ context: 'onebot11',
178
+ bot: `${this.$config.name}`,
180
179
  content
181
180
  })
182
181
  }
@@ -184,26 +183,34 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
184
183
  return message
185
184
  }
186
185
 
187
- async $sendMessage(options: SendOptions): Promise<void> {
188
- options=await this.plugin.app.handleBeforeSend(options)
186
+ async $sendMessage(options: SendOptions): Promise<string> {
187
+ options = await this.plugin.app.handleBeforeSend(options)
189
188
  const messageData: any = {
190
189
  message: options.content
191
190
  };
192
- if (options.type==='group') {
193
- await this.callApi('send_group_msg', {
191
+ if (options.type === 'group') {
192
+ const result = await this.callApi('send_group_msg', {
194
193
  group_id: parseInt(options.id),
195
194
  ...messageData
196
195
  });
197
196
  this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
198
- } else if (options.type==='private') {
199
- await this.callApi('send_private_msg', {
197
+ return result.message_id.toString();
198
+ } else if (options.type === 'private') {
199
+ const result = await this.callApi('send_private_msg', {
200
200
  user_id: parseInt(options.id),
201
201
  ...messageData
202
202
  });
203
203
  this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
204
+ return result.message_id.toString();
204
205
  } else {
205
206
  throw new Error('Either group_id or user_id must be provided');
206
207
  }
208
+ return '';
209
+ }
210
+ async $recallMessage(id: string): Promise<void> {
211
+ await this.callApi('delete_msg', {
212
+ message_id: parseInt(id)
213
+ });
207
214
  }
208
215
  private async callApi(action: string, params: any = {}): Promise<any> {
209
216
  if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
@@ -252,9 +259,9 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
252
259
 
253
260
  private handleOneBot11Message(onebotMsg: OneBot11Message): void {
254
261
  const message = this.$formatMessage(onebotMsg);
255
- this.plugin.dispatch('message.receive',message)
262
+ this.plugin.dispatch('message.receive', message)
256
263
  this.plugin.logger.info(`recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`)
257
- this.plugin.dispatch(`message.${message.$channel.type}.receive`,message)
264
+ this.plugin.dispatch(`message.${message.$channel.type}.receive`, message)
258
265
  }
259
266
 
260
267
  private startHeartbeat(): void {
@@ -277,16 +284,16 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
277
284
  try {
278
285
  await this.$connect();
279
286
  } catch (error) {
280
- this.emit('error',new Error(`Reconnection failed: ${error}`));
287
+ this.emit('error', new Error(`Reconnection failed: ${error}`));
281
288
  this.scheduleReconnect();
282
289
  }
283
290
  }, interval);
284
291
  }
285
292
  }
286
- export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Message,OneBot11WsServerConfig> {
287
- $connected?:boolean
288
- #wss?:WebSocketServer
289
- #clientMap:Map<string,WebSocket>=new Map<string,WebSocket>()
293
+ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Message, OneBot11WsServerConfig> {
294
+ $connected?: boolean
295
+ #wss?: WebSocketServer
296
+ #clientMap: Map<string, WebSocket> = new Map<string, WebSocket>()
290
297
  private heartbeatTimer?: NodeJS.Timeout;
291
298
  private requestId = 0;
292
299
  private pendingRequests = new Map<string, {
@@ -295,13 +302,14 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
295
302
  timeout: NodeJS.Timeout;
296
303
  }>();
297
304
 
298
- constructor(public plugin:Plugin,public router:Router,public $config: OneBot11WsServerConfig) {
305
+ constructor(public plugin: Plugin, public router: Router, public $config: OneBot11WsServerConfig) {
299
306
  super();
300
- this.$connected=false
307
+ this.$connected = false
301
308
  }
302
309
  async $connect(): Promise<void> {
303
- if(!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
304
- this.#wss=this.router.ws(this.$config.path,{verifyClient:(info:{ origin: string; secure: boolean; req: IncomingMessage })=>{
310
+ if (!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
311
+ this.#wss = this.router.ws(this.$config.path, {
312
+ verifyClient: (info: { origin: string; secure: boolean; req: IncomingMessage }) => {
305
313
  const {
306
314
  req: { headers },
307
315
  } = info;
@@ -311,10 +319,11 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
311
319
  return false;
312
320
  }
313
321
  return true;
314
- }})
315
- this.$connected=true;
322
+ }
323
+ })
324
+ this.$connected = true;
316
325
  this.plugin.logger.info(`ws server start at path:${this.$config.path}`)
317
- this.#wss.on('connection', (client,req) => {
326
+ this.#wss.on('connection', (client, req) => {
318
327
  this.startHeartbeat();
319
328
  this.plugin.logger.info(`已连接到协议端:${req.socket.remoteAddress}`);
320
329
  client.on('error', err => {
@@ -322,16 +331,16 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
322
331
  });
323
332
  client.on('close', code => {
324
333
  this.plugin.logger.error(`与连接端(${req.socket.remoteAddress})断开,错误码:${code}`);
325
- for(const [key,value] of this.#clientMap){
326
- if(client===value) this.#clientMap.delete(key)
334
+ for (const [key, value] of this.#clientMap) {
335
+ if (client === value) this.#clientMap.delete(key)
327
336
  }
328
337
  });
329
- client.on('message',(data) => {
338
+ client.on('message', (data) => {
330
339
  try {
331
340
  const message = JSON.parse(data.toString());
332
- this.handleWebSocketMessage(client,message);
341
+ this.handleWebSocketMessage(client, message);
333
342
  } catch (error) {
334
- this.emit('error',error)
343
+ this.emit('error', error)
335
344
  }
336
345
  })
337
346
  });
@@ -339,66 +348,75 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
339
348
 
340
349
  async $disconnect(): Promise<void> {
341
350
  this.#wss?.close();
342
- if(this.heartbeatTimer){
351
+ if (this.heartbeatTimer) {
343
352
  clearInterval(this.heartbeatTimer)
344
353
  delete this.heartbeatTimer;
345
354
  }
346
355
  }
347
- $formatMessage(onebotMsg: OneBot11Message){
348
- const message=Message.from(onebotMsg,{
356
+ $formatMessage(onebotMsg: OneBot11Message) {
357
+ const message = Message.from(onebotMsg, {
349
358
  $id: onebotMsg.message_id.toString(),
350
- $adapter:'onebot11',
351
- $bot:`${this.$config.name}`,
352
- $sender:{
353
- id:onebotMsg.user_id.toString(),
354
- name:onebotMsg.user_id.toString()
359
+ $adapter: 'onebot11',
360
+ $bot: `${this.$config.name}`,
361
+ $sender: {
362
+ id: onebotMsg.user_id.toString(),
363
+ name: onebotMsg.user_id.toString()
355
364
  },
356
- $channel:{
357
- id:[onebotMsg.self_id,(onebotMsg.group_id||onebotMsg.user_id)].join(':'),
358
- type:onebotMsg.group_id?'group':'private'
365
+ $channel: {
366
+ id: [onebotMsg.self_id, (onebotMsg.group_id || onebotMsg.user_id)].join(':'),
367
+ type: onebotMsg.group_id ? 'group' : 'private'
359
368
  },
360
369
  $content: onebotMsg.message,
361
370
  $raw: onebotMsg.raw_message,
362
371
  $timestamp: onebotMsg.time,
363
- $reply:async (content: SendContent, quote?: boolean|string):Promise<void>=> {
364
- if(!Array.isArray(content)) content=[content];
365
- if(quote) content.unshift({type:'reply',data:{message_id:message.$id}})
366
- this.plugin.dispatch('message.send',{
372
+ $reply: async (content: SendContent, quote?: boolean | string): Promise<string> => {
373
+ if (!Array.isArray(content)) content = [content];
374
+ if (quote) content.unshift({ type: 'reply', data: { message_id: message.$id } })
375
+ return await this.$sendMessage({
367
376
  ...message.$channel,
368
- context:'onebot11',
369
- bot:`${this.$config.name}`,
370
- content
377
+ context: 'onebot11',
378
+ bot: `${this.$config.name}`,
379
+ content
371
380
  })
372
381
  }
373
382
  })
374
383
  return message
375
384
  }
376
385
 
377
- async $sendMessage(options: SendOptions): Promise<void> {
378
- options=await this.plugin.app.handleBeforeSend(options)
386
+ async $sendMessage(options: SendOptions): Promise<string> {
387
+ options = await this.plugin.app.handleBeforeSend(options)
379
388
  const messageData: any = {
380
389
  message: options.content
381
390
  };
382
- if (options.type==='group') {
383
- const [self_id,id]=options.id.split(':')
384
- await this.callApi(self_id,'send_group_msg', {
391
+ if (options.type === 'group') {
392
+ const [self_id, id] = options.id.split(':')
393
+ const result = await this.callApi(self_id, 'send_group_msg', {
385
394
  group_id: parseInt(id),
386
395
  ...messageData
387
396
  });
388
397
  this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`)
389
- } else if (options.type==='private') {
390
- const [self_id,id]=options.id.split(':')
391
- await this.callApi(self_id,'send_private_msg', {
398
+ return result.message_id.toString();
399
+ } else if (options.type === 'private') {
400
+ const [self_id, id] = options.id.split(':')
401
+ const result = await this.callApi(self_id, 'send_private_msg', {
392
402
  user_id: parseInt(id),
393
403
  ...messageData
394
404
  });
395
405
  this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`)
406
+ return result.message_id.toString();
396
407
  } else {
397
408
  throw new Error('Either group_id or user_id must be provided');
398
409
  }
410
+ return '';
411
+ }
412
+ async $recallMessage(id: string): Promise<void> {
413
+ const [self_id, message_id] = id.split(':')
414
+ await this.callApi(self_id, 'delete_msg', {
415
+ message_id: parseInt(message_id)
416
+ });
399
417
  }
400
- private async callApi(self_id:string,action: string, params: any = {}): Promise<any> {
401
- const client=this.#clientMap.get(self_id)
418
+ private async callApi(self_id: string, action: string, params: any = {}): Promise<any> {
419
+ const client = this.#clientMap.get(self_id)
402
420
  if (!client || client.readyState !== WebSocket.OPEN) {
403
421
  throw new Error('WebSocket is not connected');
404
422
  }
@@ -421,7 +439,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
421
439
  });
422
440
  }
423
441
 
424
- private handleWebSocketMessage(client:WebSocket,message: any): void {
442
+ private handleWebSocketMessage(client: WebSocket, message: any): void {
425
443
  // 处理API响应
426
444
  if (message.echo && this.pendingRequests.has(message.echo)) {
427
445
  const request = this.pendingRequests.get(message.echo)!;
@@ -434,11 +452,11 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
434
452
  }
435
453
  return request.reject(new Error(`API error: ${response.retcode}`));
436
454
  }
437
- switch (message.post_type){
455
+ switch (message.post_type) {
438
456
  case 'message':
439
457
  return this.handleMessage(message);
440
458
  case 'meta_event':
441
- return this.handleMetaEvent(client,message)
459
+ return this.handleMetaEvent(client, message)
442
460
  }
443
461
  // 处理事件消息
444
462
  if (message.post_type === 'message') {
@@ -446,27 +464,27 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
446
464
  // 心跳消息,暂时忽略
447
465
  }
448
466
  }
449
- private handleMetaEvent(client:WebSocket,message:any){
450
- switch (message.sub_type){
467
+ private handleMetaEvent(client: WebSocket, message: any) {
468
+ switch (message.sub_type) {
451
469
  case 'heartbeat':
452
470
  break;
453
471
  case 'connect':
454
- this.#clientMap.set(message.self_id,client);
472
+ this.#clientMap.set(message.self_id, client);
455
473
  this.plugin.logger.info(`client ${message.self_id} of ${this.$config.name} by ${this.$config.context} connected`)
456
474
  break;
457
475
  }
458
476
  }
459
477
  private handleMessage(onebotMsg: OneBot11Message): void {
460
478
  const message = this.$formatMessage(onebotMsg);
461
- this.plugin.dispatch('message.receive',message)
462
- this.plugin.logger.info(`recv ${message.$channel.type}(${onebotMsg.group_id||onebotMsg.user_id}):${segment.raw(message.$content)}`)
463
- this.plugin.dispatch(`message.${message.$channel.type}.receive`,message)
479
+ this.plugin.dispatch('message.receive', message)
480
+ this.plugin.logger.info(`recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`)
481
+ this.plugin.dispatch(`message.${message.$channel.type}.receive`, message)
464
482
  }
465
483
 
466
484
  private startHeartbeat(): void {
467
485
  const interval = this.$config.heartbeat_interval || 30000;
468
486
  this.heartbeatTimer = setInterval(() => {
469
- for(const client of this.#wss?.clients||[]){
487
+ for (const client of this.#wss?.clients || []) {
470
488
  if (client && client.readyState === WebSocket.OPEN) {
471
489
  client.ping();
472
490
  }
@@ -474,7 +492,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
474
492
  }, interval);
475
493
  }
476
494
  }
477
- registerAdapter(new Adapter('onebot11',OneBot11WsClient))
478
- useContext('router',(router)=>{
479
- registerAdapter(new Adapter('onebot11.wss',(p,c:OneBot11WsServerConfig)=>new OneBot11WsServer(p,router,c)));
495
+ registerAdapter(new Adapter('onebot11', OneBot11WsClient))
496
+ useContext('router', (router) => {
497
+ registerAdapter(new Adapter('onebot11.wss', (p, c: OneBot11WsServerConfig) => new OneBot11WsServer(p, router, c)));
480
498
  })