mirai-js 2.8.3 → 2.8.5

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.
Files changed (83) hide show
  1. package/1.mp3 +0 -0
  2. package/README.md +2 -0
  3. package/demo.ts +3 -6
  4. package/dist/browser/mirai-js.js +1 -1
  5. package/dist/node/borwserEntry.js +21 -0
  6. package/dist/node/core/uploadVoice.js +1 -1
  7. package/dist/node/lib/index.ts +0 -0
  8. package/index.ts +36 -3
  9. package/package.json +1 -1
  10. package/src/borwserEntry.js +11 -0
  11. package/src/core/uploadVoice.js +1 -1
  12. package/src/lib/index.ts +0 -0
  13. package/srcold/BaseType.d.ts +419 -0
  14. package/srcold/Bot.d.ts +567 -0
  15. package/srcold/Bot.js +1208 -0
  16. package/srcold/FileManager.js +270 -0
  17. package/srcold/Message.d.ts +66 -0
  18. package/srcold/Message.js +314 -0
  19. package/srcold/Middleware.d.ts +170 -0
  20. package/srcold/Middleware.js +657 -0
  21. package/srcold/Waiter.d.ts +13 -0
  22. package/srcold/Waiter.js +24 -0
  23. package/srcold/core/anno/deleteAnno.js +43 -0
  24. package/srcold/core/anno/getAnno.js +44 -0
  25. package/srcold/core/anno/publishAnno.js +44 -0
  26. package/srcold/core/auth.js +40 -0
  27. package/srcold/core/fs/deleteGroupFile.js +45 -0
  28. package/srcold/core/fs/getGroupFileInfo.js +46 -0
  29. package/srcold/core/fs/getGroupFileList.js +47 -0
  30. package/srcold/core/fs/makeGroupDir.js +45 -0
  31. package/srcold/core/fs/moveGroupFile.js +47 -0
  32. package/srcold/core/fs/renameGroupFile.js +44 -0
  33. package/srcold/core/fs/uploadGroupFIle.js +58 -0
  34. package/srcold/core/getFriendList.js +37 -0
  35. package/srcold/core/getGroupConfig.js +37 -0
  36. package/srcold/core/getGroupList.js +37 -0
  37. package/srcold/core/getMemberInfo.js +41 -0
  38. package/srcold/core/getMemberList.js +49 -0
  39. package/srcold/core/getSessionConfig.js +39 -0
  40. package/srcold/core/getUserProfile.js +40 -0
  41. package/srcold/core/messageFromId.js +40 -0
  42. package/srcold/core/mute.js +41 -0
  43. package/srcold/core/muteAll.js +39 -0
  44. package/srcold/core/quitGroup.js +40 -0
  45. package/srcold/core/recall.js +39 -0
  46. package/srcold/core/releaseSession.js +41 -0
  47. package/srcold/core/removeFriend.js +40 -0
  48. package/srcold/core/removeMember.js +42 -0
  49. package/srcold/core/responseBotInvitedJoinGroupRequest.js +46 -0
  50. package/srcold/core/responseFirendRequest.js +45 -0
  51. package/srcold/core/responseMemberJoinRequest.js +47 -0
  52. package/srcold/core/sendCommand.js +41 -0
  53. package/srcold/core/sendFriendMessage.js +43 -0
  54. package/srcold/core/sendGroupMessage.js +43 -0
  55. package/srcold/core/sendImageMessage.js +4 -0
  56. package/srcold/core/sendNudge.js +43 -0
  57. package/srcold/core/sendTempMessage.js +55 -0
  58. package/srcold/core/setEssence.js +44 -0
  59. package/srcold/core/setGroupConfig.js +58 -0
  60. package/srcold/core/setMemberAdmin.js +44 -0
  61. package/srcold/core/setMemberInfo.js +48 -0
  62. package/srcold/core/setSessionConfig.js +41 -0
  63. package/srcold/core/startListeningBrowser.js +62 -0
  64. package/srcold/core/startListeningNode.js +74 -0
  65. package/srcold/core/stopListeningBrowser.js +34 -0
  66. package/srcold/core/stopListeningNode.js +34 -0
  67. package/srcold/core/unmute.js +40 -0
  68. package/srcold/core/unmuteAll.js +39 -0
  69. package/srcold/core/uploadImage.js +55 -0
  70. package/srcold/core/uploadVoice.js +54 -0
  71. package/srcold/core/verify.js +41 -0
  72. package/srcold/index.d.ts +10 -0
  73. package/srcold/index.js +21 -0
  74. package/srcold/interface.js +20 -0
  75. package/srcold/polyfill/URL.js +5 -0
  76. package/srcold/polyfill/wsListener.js +6 -0
  77. package/srcold/typeHelpers.d.ts +2 -0
  78. package/srcold/util/errCode.js +23 -0
  79. package/srcold/util/errorHandler.js +24 -0
  80. package/srcold/util/getInvalidParamsString.js +12 -0
  81. package/srcold/util/isBrowserEnv.js +3 -0
  82. package/srcold/util/random.js +6 -0
  83. package/webpack.config.js +3 -2
@@ -0,0 +1,567 @@
1
+ import {
2
+ // 图片 id 语音 id 消息 id
3
+ ImageId, VoiceId, MessageId,
4
+
5
+ // 事件类型 群成员权限 性别
6
+ EventType, EventEntityMap, GroupPermission, SEX,
7
+
8
+ // 接口 原始消息类型 事件处理器类型
9
+ MessageChainGetable, BotConfigGetable, MessageType,
10
+
11
+ Awaitable,
12
+ Processor,
13
+
14
+ } from './BaseType';
15
+
16
+ // 等待器
17
+ import { Waiter } from './Waiter';
18
+
19
+
20
+ export class Bot implements BotConfigGetable {
21
+ // 成员属性
22
+ public waiter: Waiter;
23
+
24
+ // 类属性
25
+ public static groupPermission: {
26
+ [k in GroupPermission]: k
27
+ };
28
+
29
+ // 一些私有的实例属性
30
+ private config: Bot.BotConfig;
31
+ private eventProcessorMap: Bot.EventProcessorMap;
32
+ private wsConnection: WebSocket;
33
+
34
+ // 普通成员方法
35
+ // implements BotConfigGetable
36
+ getBaseUrl(): string;
37
+ getQQ(): number;
38
+ getVerifyKey(): string;
39
+ getSessionKey(): string;
40
+
41
+ /**
42
+ * @description 连接到 mirai-api-http,并开启一个会话,重复调用意为重建会话
43
+ * open 方法 1. 建立会话 2. 绑定 qq 3. 与服务端建立 WebSocket 连接
44
+ * @param baseUrl 必选,mirai-api-http server 的地址
45
+ * @param verifyKey 必选,mirai-api-http server 设置的 verifyKey
46
+ * @param qq 必选,欲绑定的 qq 号,需要确保该 qq 号已在 mirai-console 登陆
47
+ */
48
+ open({ baseUrl, verifyKey, qq, singleMode }: Bot.OpenOptions): Promise<void>;
49
+
50
+ /**
51
+ * @description 监听 ws 消息
52
+ */
53
+ private __wsListen(): Promise<void>;
54
+
55
+ /**
56
+ * @description 关闭会话
57
+ * @param keepProcessor 可选,是否保留事件处理器,默认值为 false,不保留
58
+ * @param keepConfig 可选,是否保留 session baseUrl qq averifyKey,默认值为 false,不保留
59
+ */
60
+ close({ keepProcessor, keepConfig }?: Bot.CloseOptions): Promise<void>;
61
+
62
+ /**
63
+ * ! messageChain 将在未来被移除
64
+ * @description 向 qq 好友 或 qq 群发送消息,若同时提供,则优先向好友发送消息
65
+ * @param temp 可选,是否是临时会话,默认为 false
66
+ * @param friend 二选一,好友 qq 号
67
+ * @param group 二选一,群号
68
+ * @param quote 可选,消息引用,使用发送时返回的 messageId
69
+ * @param message 必选,Message 实例或 MessageType 数组
70
+ * @returns messageId 可用于撤回该消息
71
+ */
72
+ sendMessage({ temp, friend, group, quote, message }: Bot.SendMessageOptions): Promise<MessageId>;
73
+
74
+ /**
75
+ * @description 向好友或群成员发送戳一戳
76
+ * 如果提供了 group 参数则忽略 friend
77
+ * mirai-api-http-v1.10.1 feature
78
+ * @param friend 二选一,好友 qq 号
79
+ * @param group 二选一,群成员所在群
80
+ * @param target 必选,目标 qq 号
81
+ */
82
+ sendNudge({ friend, group, target }: Bot.SendNudgeOptions): Promise<void>;
83
+
84
+ /**
85
+ * @description 添加一个事件处理器
86
+ * 框架维护的 WebSocket 实例会在 ws 的事件 message 下分发 Mirai http server 的消息
87
+ * 回调函数 (data) => any,data 的结构取决于消息类型,详见 mirai-api-http 的文档
88
+ * 而对于 ws 的其他事件 error, close, unexpectedResponse,其回调函数分别为
89
+ * - 'error': (err: Error) => void
90
+ * - 'close': (code: number, message: string) => void
91
+ * - 'unexpected-response': (request: http.ClientRequest, response: http.IncomingMessage) => void
92
+ * @param eventType 必选,事件类型
93
+ * @param callback 必选,回调函数
94
+ * @returns handle 事件处理器的标识,用于移除该处理器
95
+ */
96
+ on<U extends EventType, E>(eventType: U, callback: Processor<[U], E>): number;
97
+ on<U extends EventType[], E>(eventType: U, callback: Processor<U, E>): number[];
98
+
99
+ /**
100
+ * @description 添加一个一次性事件处理器,回调一次后自动移除
101
+ * @param eventType 必选,事件类型
102
+ * @param callback 必选,回调函数
103
+ * @param strict 可选,是否严格检测调用,由于消息可能会被中间件拦截
104
+ * 当为 true 时,只有开发者的处理器结束后才会移除该处理器
105
+ * 当为 false 时,即使消息被拦截,也会移除该处理器
106
+ */
107
+ one<U extends EventType>(eventType: U, callback: Processor<[U]>, strict: boolean): void;
108
+ one<U extends EventType[]>(eventType: U, callback: Processor<U>, strict: boolean): void;
109
+
110
+ /**
111
+ * @description 移除一个事件处理器
112
+ * @param eventType 必选,事件类型
113
+ * @param handle 可选,事件处理器标识(或数组),由 on 方法
114
+ * 返回,未提供时将移除该事件下的所有处理器
115
+ */
116
+ off(eventType: EventType, handle?: number | number[]): void;
117
+
118
+ /**
119
+ * @description 移除所有事件处理器
120
+ * @param eventType 可选,事件类型(或数组)
121
+ */
122
+ offAll(eventType?: EventType | EventType[]): void;
123
+
124
+ /**
125
+ * @description 获取 config
126
+ */
127
+ getSessionConfig(): Promise<Bot.SessionConfig>;
128
+
129
+ /**
130
+ * @description 设置 config
131
+ * @param cacheSize 可选,插件缓存大小
132
+ * @param enableWebsocket 可选,websocket 状态
133
+ */
134
+ setSessionConfig({ cacheSize, enableWebsocket }: Bot.SessionConfig): Promise<void>;
135
+
136
+ /**
137
+ * @description 撤回由 messageId 确定的消息
138
+ * @param messageId 欲撤回消息的 messageId
139
+ */
140
+ recall({ messageId }: Bot.RecallOptions): Promise<void>;
141
+
142
+ /**
143
+ * @description 上传图片至服务器,返回指定 type 的 imageId,url,及 path
144
+ * @param type 可选,"friend" 或 "group" 或 "temp",默认为 "group"
145
+ * @param img 二选一,图片二进制数据
146
+ * @param filename 二选一,图片文件路径
147
+ */
148
+ uploadImage({ type, img, filename }: Bot.UploadImageOptions): Promise<Bot.ImageInfo>;
149
+
150
+
151
+ /**
152
+ * @description 上传语音至服务器,返回 voiceId, url 及 path
153
+ * @param type 目前仅支持 "group",请忽略该参数
154
+ * @param voice 二选一,语音二进制数据
155
+ * @param filename 二选一,语音文件路径
156
+ */
157
+ uploadVoice({ type, voice, filename }: Bot.UploadVoiceOptions): Promise<Bot.VoiceInfo>;
158
+
159
+ /**
160
+ * @description 获取好友列表
161
+ */
162
+ getFriendList(): Promise<Bot.FriendInfo[]>;
163
+
164
+ /**
165
+ * @description 获取群列表
166
+ */
167
+ getGroupList(): Promise<Bot.GroupInfo[]>;
168
+
169
+ /**
170
+ * @description 获取指定群的成员列表
171
+ * @param group 必选,欲获取成员列表的群号
172
+ */
173
+ getMemberList({ group }: Bot.GetMemberListOptions): Promise<Bot.MemberInfo[]>;
174
+
175
+ /**
176
+ * @description 获取群成员信息
177
+ * @param group 必选,群成员所在群号
178
+ * @param qq 必选,群成员的 qq 号
179
+ */
180
+ getMemberInfo({ group, qq }: Bot.GetMemberInfoOptions): Promise<Bot.MemberDetails>;
181
+
182
+ /**
183
+ * @description 获取群成员信息
184
+ * @param qq 必选,用户的 qq 号
185
+ */
186
+ getUserProfile({ qq }: Bot.GetUserProfileOptions): Promise<Bot.UserProfile>;
187
+
188
+ /**
189
+ * @description 设置群成员信息
190
+ * @param group 必选,群成员所在群号
191
+ * @param qq 必选,群成员的 qq 号
192
+ * @param name 可选,要设置的群名片
193
+ * @param title 可选,要设置的群头衔
194
+ * @param permission 可选,要设置的群头衔
195
+ */
196
+ setMemberInfo({ group, qq, name, title, permission }: Bot.SetMemberInfoOptions): Promise<void>;
197
+
198
+ /**
199
+ * @description 获取群公告列表迭代器
200
+ * @param group 必选,群号
201
+ * @returns 迭代器
202
+ */
203
+ getAnnoIter({ group }: Bot.GetAnnoIterOptions): AsyncGenerator<Bot.AnnoInfo>;
204
+
205
+ /**
206
+ * @description 发布群公告
207
+ * @param group 必选,群号
208
+ * @param content 必选,公告内容
209
+ */
210
+ publishAnno({ group, content, pinned }: Bot.PublishAnnoOptions): Promise<void>;
211
+
212
+ /**
213
+ * @description 删除群公告
214
+ * @param {number} group 必选,群号
215
+ * @param {string} fid 必选,公告 id
216
+ * @reaturns {void}
217
+ */
218
+ deleteAnno({ group, fid }: Bot.DeleteAnnoOptions): Promise<void>;
219
+
220
+ /**
221
+ * @description 禁言群成员
222
+ * @param group 必选,欲禁言成员所在群号
223
+ * @param qq 必选,欲禁言成员 qq 号
224
+ * @param time 必选,禁言时长,单位: s (秒)
225
+ */
226
+ mute({ group, qq, time }: Bot.MuteOptions): Promise<void>;
227
+
228
+ /**
229
+ * @description 全员禁言
230
+ * @param group 必选,欲全员禁言的群号
231
+ */
232
+ muteAll({ group }: Bot.MuteAllOptions): Promise<void>;
233
+
234
+ /**
235
+ * @description 解除禁言
236
+ * @param group 必选,欲解除禁言的成员所在群号
237
+ * @param qq 必选,欲解除禁言的成员 qq 号
238
+ */
239
+ unmute({ group, qq }: Bot.UnmuteOptions): Promise<void>;
240
+
241
+ /**
242
+ * @description 解除全员禁言
243
+ * @param group 必选,欲解除全员禁言的群号
244
+ */
245
+ unmuteAll({ group }: Bot.UnmuteAllOptions): Promise<void>;
246
+
247
+ /**
248
+ * @description 移除群成员
249
+ * @param group 必选,欲移除的成员所在群号
250
+ * @param qq 必选,欲移除的成员 qq 号
251
+ * @param message 可选,默认为空串 "",信息
252
+ */
253
+ removeMember({ group, qq, message }: Bot.RemoveMemberOptions): Promise<void>;
254
+
255
+ /**
256
+ * @description 删除好友
257
+ * @param qq 欲删除的好友 qq 号
258
+ */
259
+ removeFriend({ qq }: Bot.RemoveFriendOptions): Promise<void>;
260
+
261
+ /**
262
+ * @description 移除群成员
263
+ * @param group 必选,欲移除的成员所在群号
264
+ */
265
+ quitGroup({ group }: Bot.QuitGroupOptions): Promise<void>;
266
+
267
+ /**
268
+ * @description 获取群配置
269
+ * @param group 必选,群号
270
+ */
271
+ getGroupConfig({ group }: Bot.GetGroupOptions): Promise<Bot.GroupConfig>;
272
+
273
+ /**
274
+ * @description 设置群配置
275
+ * @param target 必选,群号
276
+ * @param name 可选,群名
277
+ * @param announcement 可选,群公告
278
+ * @param confessTalk 可选,是否开启坦白说
279
+ * @param allowMemberInvite 可选,是否允许群员邀请
280
+ * @param autoApprove 可选,是否开启自动审批入群
281
+ * @param anonymousChat 可选,是否允许匿名聊天
282
+ */
283
+ setGroupConfig({
284
+ group: number,
285
+ name, announcement, confessTalk,
286
+ allowMemberInvite, autoApprove, anonymousChat,
287
+ }: Bot.SetGroupConfigOptions): Promise<void>;
288
+
289
+ /**
290
+ * @description 设置群精华消息
291
+ * @param messageId 必选,消息 id
292
+ */
293
+ setEssence({ messageId }: Bot.SetEssenceOptions): Promise<void>;
294
+
295
+ /**
296
+ * @description 向 mirai-console 发送指令
297
+ * @param command 必选,指令名
298
+ */
299
+ sendCommand({ command }: Bot.SendCommandOptions): Promise<Bot.MiraiConsoleMessage>;
300
+
301
+ /**
302
+ * @description 通过 messageId 获取消息
303
+ * @param {number} target 可选, 目标 qq 号/群号, mah v2.6.0+ 新增该参数
304
+ * @param {number} messageId 必选, 消息 id
305
+ * @returns
306
+ */
307
+ getMessageById({ messageId, target }: Bot.GetMessageByIdOptions): Promise<Bot.MessageFromMessageId>
308
+
309
+ // 类方法
310
+ /**
311
+ * @description 检测该账号是否已经在 mirai-console 登录
312
+ * @param baseUrl 必选,mirai-api-http server 的地址
313
+ * @param verifyKey 必选,mirai-api-http server 设置的 verifyKey
314
+ * @param qq 必选,qq 号
315
+ */
316
+ static isBotLoggedIn({ baseUrl, verifyKey, qq }: Bot.IsBotLoggedInOptions): Promise<boolean>;
317
+
318
+ }
319
+
320
+ // 类型
321
+ declare namespace Bot {
322
+
323
+ interface BotConfig {
324
+ baseUrl: string;
325
+ qq: number;
326
+ verifyKey: string;
327
+ sessionKey: string;
328
+ }
329
+
330
+ // An index signature parameter type cannot be a union type. Consider using a mapped object type instead.
331
+ type EventProcessorMap = {
332
+ // 索引不能使用联合类型
333
+ [eventType in EventType]: {
334
+ [handler: number]: (data: EventEntityMap[eventType]) => Awaitable<void | any>;
335
+ };
336
+ }
337
+
338
+ interface OpenOptions {
339
+ baseUrl?: string;
340
+ verifyKey?: string;
341
+ qq?: number;
342
+ singleMode?: boolean;
343
+ }
344
+
345
+ interface CloseOptions {
346
+ keepProcessor?: boolean;
347
+ keepConfig?: boolean;
348
+ }
349
+
350
+ interface SendMessageOptions {
351
+ temp?: boolean;
352
+ friend?: number;
353
+ group?: number;
354
+ quote?: MessageId;
355
+ message?: MessageChainGetable | MessageType[];
356
+ }
357
+
358
+ interface SendNudgeOptions {
359
+ friend?: number;
360
+ group?: number;
361
+ target: number;
362
+ }
363
+
364
+ interface SessionConfig {
365
+ cacheSize?: number;
366
+ enableWebsocket?: boolean;
367
+ }
368
+
369
+ interface RecallOptions {
370
+ messageId: MessageId;
371
+ }
372
+
373
+ interface UploadImageOptions {
374
+ type?: 'friend' | 'group' | 'temp';
375
+ img?: Buffer;
376
+ filename?: string;
377
+ }
378
+
379
+ interface UploadVoiceOptions {
380
+ type?: 'friend' | 'group' | 'temp';
381
+ voice?: Buffer;
382
+ filename?: string;
383
+ }
384
+
385
+ interface ImageInfo {
386
+ imageId: ImageId;
387
+ url: string;
388
+ path: string;
389
+ }
390
+
391
+ interface VoiceInfo {
392
+ voiceId: VoiceId;
393
+ url: string;
394
+ path: string;
395
+ }
396
+
397
+ interface FriendInfo {
398
+ id: number;
399
+ name: string;
400
+ remark: string;
401
+ }
402
+
403
+ interface GroupInfo {
404
+ id: number;
405
+ name: string;
406
+ permission: GroupPermission;
407
+ }
408
+
409
+ interface MemberInfo {
410
+ id: number;
411
+ name: string;
412
+ permission: GroupPermission;
413
+ }
414
+
415
+ interface GetMemberInfoOptions {
416
+ group: number;
417
+ qq: number;
418
+ }
419
+
420
+ interface MemberDetails {
421
+ id: number;
422
+ joinTimestamp: number;
423
+ lastSpeakTimestamp: number;
424
+ memberName: string;
425
+ nuteTimeRemaining: number;
426
+ permission: GroupPermission;
427
+ title: string;
428
+ }
429
+
430
+ interface GetMemberListOptions {
431
+ group: number;
432
+ }
433
+
434
+ interface GetUserProfileOptions {
435
+ qq: number;
436
+ }
437
+
438
+ interface UserProfile {
439
+ nickname: string;
440
+ email: string;
441
+ age: number;
442
+ level: number;
443
+ sign: string;
444
+ sex: SEX;
445
+ }
446
+
447
+ interface SetMemberInfoOptions {
448
+ group: number;
449
+ qq: number;
450
+ name?: string;
451
+ title?: string;
452
+ permission?: GroupPermission
453
+ }
454
+
455
+ interface GetAnnoIterOptions {
456
+ group: number;
457
+ }
458
+
459
+ interface PublishAnnoOptions {
460
+ group: number;
461
+ content: string;
462
+ pinned: boolean;
463
+ }
464
+
465
+ interface DeleteAnnoOptions {
466
+ group: number;
467
+ fid: string;
468
+ }
469
+ interface AnnoInfo {
470
+ group: { id: number; name: string; permission: GroupPermission; };
471
+ content: string;
472
+ senderId: number;
473
+ fid: string;
474
+ allConfirmed: boolean;
475
+ confirmedMembersCount: number;
476
+ publicationTime: number;
477
+ }
478
+
479
+ interface MuteOptions {
480
+ group: number;
481
+ qq: number;
482
+ time: number;
483
+ }
484
+
485
+ interface MuteAllOptions {
486
+ group: number;
487
+ }
488
+
489
+ interface UnmuteOptions {
490
+ group: number;
491
+ qq: number;
492
+ }
493
+
494
+ interface UnmuteAllOptions {
495
+ group: number;
496
+ }
497
+
498
+ interface RemoveMemberOptions {
499
+ group: number;
500
+ qq: number;
501
+ message?: string;
502
+ }
503
+
504
+ interface RemoveFriendOptions {
505
+ qq: number;
506
+ }
507
+
508
+ interface QuitGroupOptions {
509
+ group: number;
510
+ }
511
+
512
+ interface GetGroupOptions {
513
+ group: number;
514
+ }
515
+
516
+ interface GroupConfig {
517
+ name: string;
518
+ announcement: string;
519
+ confessTalk: boolean;
520
+ allowMemberInvite: boolean;
521
+ autoApprove: boolean;
522
+ anonymousChat: boolean;
523
+ }
524
+
525
+ interface SetGroupConfigOptions {
526
+ group: number;
527
+ name?: string;
528
+ announcement?: string;
529
+ confessTalk?: boolean;
530
+ allowMemberInvite?: boolean;
531
+ autoApprove?: boolean;
532
+ anonymousChat?: boolean;
533
+ }
534
+
535
+ interface SetEssenceOptions {
536
+ messageId: number;
537
+ }
538
+
539
+ interface SendCommandOptions {
540
+ command: string[];
541
+ }
542
+
543
+ interface GetMessageByIdOptions {
544
+ messageId: number;
545
+ target?: number;
546
+ }
547
+
548
+ interface MessageFromMessageId {
549
+ type: 'FriendMessage' | 'GroupMessage' | 'TempMessage';
550
+ messageChain: MessageType[];
551
+ sender: {
552
+ id?: number;
553
+ nickname?: string;
554
+ remark?: string;
555
+ }
556
+ }
557
+
558
+ interface IsBotLoggedInOptions {
559
+ baseUrl: string;
560
+ verifyKey: string;
561
+ qq: number;
562
+ }
563
+
564
+ interface MiraiConsoleMessage {
565
+ message: string
566
+ }
567
+ }