onebots 0.4.22 → 0.4.25

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 (84) hide show
  1. package/README.md +129 -72
  2. package/lib/adapter.d.ts +55 -0
  3. package/lib/adapter.js +60 -0
  4. package/lib/adapters/icqq/index.d.ts +36 -0
  5. package/lib/adapters/icqq/index.js +300 -0
  6. package/lib/adapters/icqq/utils.d.ts +6 -0
  7. package/lib/adapters/icqq/utils.js +26 -0
  8. package/lib/adapters/qq/bot.d.ts +24 -0
  9. package/lib/adapters/qq/bot.js +20 -0
  10. package/lib/adapters/qq/constans.d.ts +69 -0
  11. package/lib/adapters/qq/constans.js +128 -0
  12. package/lib/adapters/qq/elements.d.ts +125 -0
  13. package/lib/adapters/qq/elements.js +8 -0
  14. package/lib/adapters/qq/entries/channel.d.ts +17 -0
  15. package/lib/adapters/qq/entries/channel.js +2 -0
  16. package/lib/adapters/qq/entries/friend.d.ts +8 -0
  17. package/lib/adapters/qq/entries/friend.js +2 -0
  18. package/lib/adapters/qq/entries/group.d.ts +6 -0
  19. package/lib/adapters/qq/entries/group.js +2 -0
  20. package/lib/adapters/qq/entries/groupMember.d.ts +7 -0
  21. package/lib/adapters/qq/entries/groupMember.js +2 -0
  22. package/lib/adapters/qq/entries/guild.d.ts +21 -0
  23. package/lib/adapters/qq/entries/guild.js +2 -0
  24. package/lib/adapters/qq/entries/guildMember.d.ts +9 -0
  25. package/lib/adapters/qq/entries/guildMember.js +2 -0
  26. package/lib/adapters/qq/entries/user.d.ts +9 -0
  27. package/lib/adapters/qq/entries/user.js +2 -0
  28. package/lib/adapters/qq/event.d.ts +28 -0
  29. package/lib/adapters/qq/event.js +24 -0
  30. package/lib/adapters/qq/index.d.ts +35 -0
  31. package/lib/adapters/qq/index.js +170 -0
  32. package/lib/adapters/qq/message.d.ts +83 -0
  33. package/lib/adapters/qq/message.js +272 -0
  34. package/lib/adapters/qq/qqBot.d.ts +122 -0
  35. package/lib/adapters/qq/qqBot.js +438 -0
  36. package/lib/adapters/qq/sessionManager.d.ts +33 -0
  37. package/lib/adapters/qq/sessionManager.js +257 -0
  38. package/lib/adapters/qq/types.d.ts +45 -0
  39. package/lib/adapters/qq/types.js +2 -0
  40. package/lib/adapters/qq/utils.d.ts +12 -0
  41. package/lib/adapters/qq/utils.js +86 -0
  42. package/lib/bin.js +17 -2
  43. package/lib/config.sample.yaml +11 -5
  44. package/lib/db.js +6 -6
  45. package/lib/index.d.ts +5 -5
  46. package/lib/onebot.d.ts +30 -22
  47. package/lib/onebot.js +42 -165
  48. package/lib/server/app.d.ts +22 -12
  49. package/lib/server/app.js +97 -71
  50. package/lib/service/V11/action/common.d.ts +11 -12
  51. package/lib/service/V11/action/common.js +19 -65
  52. package/lib/service/V11/action/friend.d.ts +6 -14
  53. package/lib/service/V11/action/friend.js +6 -16
  54. package/lib/service/V11/action/group.d.ts +20 -23
  55. package/lib/service/V11/action/group.js +20 -30
  56. package/lib/service/V11/action/index.d.ts +1 -1
  57. package/lib/service/V11/db_entities.d.ts +1 -1
  58. package/lib/service/V11/db_entities.js +1 -1
  59. package/lib/service/V11/db_sqlite.d.ts +1 -1
  60. package/lib/service/V11/db_sqlite.js +5 -7
  61. package/lib/service/V11/index.d.ts +46 -14
  62. package/lib/service/V11/index.js +163 -134
  63. package/lib/service/V12/action/common.d.ts +3 -67
  64. package/lib/service/V12/action/common.js +9 -63
  65. package/lib/service/V12/action/friend.d.ts +4 -10
  66. package/lib/service/V12/action/friend.js +4 -12
  67. package/lib/service/V12/action/group.d.ts +19 -21
  68. package/lib/service/V12/action/group.js +19 -27
  69. package/lib/service/V12/action/guild.d.ts +40 -13
  70. package/lib/service/V12/action/guild.js +99 -11
  71. package/lib/service/V12/action/index.d.ts +1 -1
  72. package/lib/service/V12/index.d.ts +37 -13
  73. package/lib/service/V12/index.js +63 -94
  74. package/lib/service.d.ts +7 -2
  75. package/lib/service.js +5 -1
  76. package/lib/types.d.ts +2 -2
  77. package/lib/types.js +3 -3
  78. package/lib/utils.d.ts +7 -4
  79. package/lib/utils.js +18 -1
  80. package/package.json +74 -70
  81. package/lib/service/V11/utils.d.ts +0 -9
  82. package/lib/service/V11/utils.js +0 -31
  83. package/lib/service/V12/utils.d.ts +0 -8
  84. package/lib/service/V12/utils.js +0 -47
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _IcqqAdapter_password, _IcqqAdapter_disposes;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const adapter_1 = require("../../adapter");
19
+ const icqq_1 = require("icqq");
20
+ const process_1 = __importDefault(require("process"));
21
+ const fs_1 = require("fs");
22
+ const onebot_1 = require("../../onebot");
23
+ class IcqqAdapter extends adapter_1.Adapter {
24
+ constructor(app, config) {
25
+ super(app, 'icqq', config);
26
+ _IcqqAdapter_password.set(this, void 0);
27
+ _IcqqAdapter_disposes.set(this, new Map());
28
+ }
29
+ createOneBot(uin, protocol, versions) {
30
+ const oneBot = super.createOneBot(uin, protocol, versions);
31
+ __classPrivateFieldSet(this, _IcqqAdapter_password, this.app.config[`icqq.${uin}`].password, "f");
32
+ oneBot.internal = new icqq_1.Client(protocol);
33
+ return oneBot;
34
+ }
35
+ formatEventPayload(version, event, data) {
36
+ return {
37
+ id: data.id,
38
+ type: event,
39
+ version: version,
40
+ self: {
41
+ platform: 'icqq',
42
+ user_id: data.self_id
43
+ },
44
+ detail_type: data.message_type || data.notice_type || data.request_type,
45
+ platform: 'icqq',
46
+ ...data,
47
+ message: this.toMessageElement(data)
48
+ };
49
+ }
50
+ toMessageElement(event) {
51
+ if (!event || !event.message)
52
+ return null;
53
+ const messageArr = [].concat(event.message);
54
+ const result = [];
55
+ if (event.source) {
56
+ result.push({
57
+ type: 'quote',
58
+ data: {
59
+ id: `${event.source.rand}${event.source.seq}_${event.source.time}`,
60
+ }
61
+ });
62
+ }
63
+ for (const message of messageArr) {
64
+ if (typeof message === 'string') {
65
+ result.push({
66
+ type: 'text',
67
+ data: {
68
+ text: message
69
+ }
70
+ });
71
+ }
72
+ else {
73
+ const { type, ...data } = message;
74
+ result.push({
75
+ type,
76
+ data
77
+ });
78
+ }
79
+ }
80
+ return result;
81
+ }
82
+ sendPrivateMessage(uin, version, args) {
83
+ const [user_id, message] = args;
84
+ const result = this.oneBots.get(uin)?.internal.sendPrivateMsg(user_id, message.map(m => {
85
+ return {
86
+ type: m.type,
87
+ ...(m.data || {})
88
+ };
89
+ }));
90
+ return result;
91
+ }
92
+ sendGroupMessage(uin, version, args) {
93
+ const [group_id, message] = args;
94
+ const result = this.oneBots.get(uin)?.internal.sendGroupMsg(group_id, message.map(m => {
95
+ return {
96
+ type: m.type,
97
+ ...(m.data || {})
98
+ };
99
+ }));
100
+ return result;
101
+ }
102
+ call(uin, version, method, args = []) {
103
+ try {
104
+ if (this[method])
105
+ return this[method](uin, version, args);
106
+ return this.oneBots.get(uin)?.internal[method](...args);
107
+ }
108
+ catch {
109
+ throw onebot_1.OneBot.UnsupportedMethodError;
110
+ }
111
+ }
112
+ fromSegment(version, segment) {
113
+ return [].concat(segment).map(item => {
114
+ if (typeof item === "string")
115
+ return {
116
+ type: 'text',
117
+ data: {
118
+ text: item
119
+ }
120
+ };
121
+ return {
122
+ type: item.type,
123
+ data: item
124
+ };
125
+ });
126
+ }
127
+ toSegment(version, message) {
128
+ return [].concat(message).map(item => {
129
+ if (!item || typeof item !== "object")
130
+ return {
131
+ type: 'text',
132
+ data: {
133
+ text: item
134
+ }
135
+ };
136
+ const { type, ...data } = item;
137
+ return {
138
+ type,
139
+ data
140
+ };
141
+ });
142
+ }
143
+ fromCqcode(version, message) {
144
+ const regExpMatchArray = message.match(/\[CQ:([a-z]+),(!])+]/g);
145
+ if (!regExpMatchArray)
146
+ return [
147
+ {
148
+ type: 'text',
149
+ data: {
150
+ text: message
151
+ }
152
+ }
153
+ ];
154
+ const result = [];
155
+ for (const match of regExpMatchArray) {
156
+ const [type, ...valueArr] = match.substring(1, match.length - 1).split(',');
157
+ result.push({
158
+ type: type,
159
+ data: Object.fromEntries(valueArr.map(item => {
160
+ const [key, value] = item.split('=');
161
+ return [key, value];
162
+ }))
163
+ });
164
+ }
165
+ return result;
166
+ }
167
+ toCqcode(version, messageArr) {
168
+ return [].concat(messageArr).map(item => {
169
+ const dataStr = Object.entries(item.data).map(([key, value]) => {
170
+ // is Buffer
171
+ if (value instanceof Buffer)
172
+ return `${key}=${value.toString('base64')}`;
173
+ // is Object
174
+ if (value instanceof Object)
175
+ return `${key}=${JSON.stringify(value)}`;
176
+ // is Array
177
+ if (value instanceof Array)
178
+ return `${key}=${value.map(v => JSON.stringify(v)).join(',')}`;
179
+ // is String
180
+ return `${key}=${item.data[key]}`;
181
+ });
182
+ return `[CQ:${item.type},${dataStr.join(',')}]`;
183
+ }).join('');
184
+ }
185
+ getSelfInfo(uin, version) {
186
+ const client = this.oneBots.get(uin).internal;
187
+ return {
188
+ nickname: client.nickname,
189
+ status: this.oneBots.get(uin).status,
190
+ };
191
+ }
192
+ async startOneBot(oneBot) {
193
+ const _this = this;
194
+ const disposeArr = [];
195
+ const client = oneBot.internal;
196
+ client.trap('system.login.qrcode', function qrcodeHelper() {
197
+ _this.logger.log('扫码后回车继续');
198
+ process_1.default.stdin.once('data', () => {
199
+ this.login();
200
+ });
201
+ disposeArr.push(() => {
202
+ this.off('system.login.qrcode', qrcodeHelper);
203
+ });
204
+ });
205
+ client.trap('system.login.device', function deviceHelper(e) {
206
+ _this.logger.mark('请选择验证方式:1.短信验证 2.url验证');
207
+ process_1.default.stdin.once('data', (buf) => {
208
+ const input = buf.toString().trim();
209
+ if (input === '1') {
210
+ this.sendSmsCode();
211
+ _this.logger.mark('请输入短信验证码:');
212
+ process_1.default.stdin.once('data', buf => {
213
+ this.submitSmsCode(buf.toString().trim());
214
+ });
215
+ }
216
+ else {
217
+ _this.logger.mark(`请前往:${e.url} 完成验证后回车继续`);
218
+ process_1.default.stdin.once('data', () => {
219
+ this.login();
220
+ });
221
+ }
222
+ });
223
+ disposeArr.push(() => {
224
+ this.off('system.login.device', deviceHelper);
225
+ });
226
+ });
227
+ client.trap('system.login.slider', function sliderHelper(e) {
228
+ _this.logger.mark('请输入滑块验证返回的ticket');
229
+ process_1.default.stdin.once('data', (e) => {
230
+ this.submitSlider(e.toString().trim());
231
+ });
232
+ disposeArr.push(() => {
233
+ this.off('system.login.slider', sliderHelper);
234
+ });
235
+ });
236
+ disposeArr.push(client.on('message', (event) => {
237
+ this.emit('message.receive', oneBot.uin, event);
238
+ }));
239
+ disposeArr.push(client.on('notice', (event) => {
240
+ this.emit('notice.receive', oneBot.uin, event);
241
+ }));
242
+ disposeArr.push(client.on('request', (event) => {
243
+ this.emit('request.receive', oneBot.uin, event);
244
+ }));
245
+ await client.login(parseInt(oneBot.uin), __classPrivateFieldGet(this, _IcqqAdapter_password, "f"));
246
+ return new Promise((resolve, reject) => {
247
+ client.trap('system.login.error', function errorHandler(e) {
248
+ if (e.message.includes('密码错误')) {
249
+ process_1.default.stdin.once('data', (e) => {
250
+ this.login(e.toString().trim());
251
+ });
252
+ }
253
+ else {
254
+ _this.logger.error(e.message);
255
+ clean();
256
+ }
257
+ this.off('system.login.error', errorHandler);
258
+ });
259
+ const clean = () => {
260
+ clearTimeout(timer);
261
+ while (disposeArr.length) {
262
+ disposeArr.shift()();
263
+ }
264
+ };
265
+ client.trap('system.online', () => {
266
+ resolve(clean);
267
+ });
268
+ const timer = setTimeout(() => {
269
+ clean();
270
+ reject('登录超时');
271
+ }, this.app.config.timeout * 1000);
272
+ });
273
+ }
274
+ async start(uin) {
275
+ const startOneBots = [...this.oneBots.values()].filter(oneBot => {
276
+ return uin ? oneBot.uin === uin : true;
277
+ });
278
+ for (const oneBot of startOneBots) {
279
+ __classPrivateFieldGet(this, _IcqqAdapter_disposes, "f").set(oneBot.uin, await this.startOneBot(oneBot));
280
+ }
281
+ await super.start();
282
+ }
283
+ async stop(uin, force) {
284
+ const stopOneBots = [...this.oneBots.values()].filter(oneBot => {
285
+ return uin ? oneBot.uin === uin : true;
286
+ });
287
+ for (const oneBot of stopOneBots) {
288
+ const dispose = __classPrivateFieldGet(this, _IcqqAdapter_disposes, "f").get(oneBot.uin);
289
+ if (dispose) {
290
+ dispose();
291
+ }
292
+ if (force) {
293
+ (0, fs_1.rmSync)(oneBot.internal.dir, { force: true, recursive: true });
294
+ }
295
+ }
296
+ await super.stop();
297
+ }
298
+ }
299
+ _IcqqAdapter_password = new WeakMap(), _IcqqAdapter_disposes = new WeakMap();
300
+ exports.default = IcqqAdapter;
@@ -0,0 +1,6 @@
1
+ import { Client, MessageElem, ShareElem } from "icqq";
2
+ export declare function processMessage(this: Client, elements: MessageElem[]): Promise<{
3
+ element: MessageElem[];
4
+ music?: MessageElem;
5
+ share?: ShareElem;
6
+ }>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processMessage = void 0;
4
+ const utils_1 = require("../../utils");
5
+ async function processMessage(elements) {
6
+ let music = elements.find((e) => e.type === "music");
7
+ if (music) {
8
+ (0, utils_1.remove)(elements, music);
9
+ if (String(music.platform) === "custom") {
10
+ music.platform = music["subtype"]; // gocq 的平台数据存储在 subtype 内,兼容 icqq 时要求前端必须发送 id 字段
11
+ }
12
+ }
13
+ let share = elements.find((e) => e.type === "share");
14
+ if (share)
15
+ (0, utils_1.remove)(elements, share);
16
+ for (const element of elements) {
17
+ if (["image", "video", "audio"].includes(element.type)) {
18
+ if (element["file_id"]?.startsWith("base64://"))
19
+ element["file_id"] = Buffer.from(element["file_id"].slice(9), "base64");
20
+ if (element["file"]?.startsWith("base64://"))
21
+ element["file"] = Buffer.from(element["file"].slice(9), "base64");
22
+ }
23
+ }
24
+ return { element: elements, share, music };
25
+ }
26
+ exports.processMessage = processMessage;
@@ -0,0 +1,24 @@
1
+ import type { QQAdapter } from "../../adapters/qq";
2
+ import { AxiosInstance } from "axios";
3
+ import { WebSocket } from "ws";
4
+ import { SessionManager } from "../../adapters/qq/sessionManager";
5
+ import { OneBot } from "../../onebot";
6
+ import { QQBot } from "../../adapters/qq/qqBot";
7
+ export declare class Bot extends QQBot {
8
+ oneBot: OneBot;
9
+ appId: string;
10
+ request: AxiosInstance;
11
+ self_id: string;
12
+ nickname: string;
13
+ status: number;
14
+ ws: WebSocket;
15
+ sessionManager: SessionManager;
16
+ constructor(oneBot: OneBot, appId: string, config: QQAdapter.Config['protocol']);
17
+ init(): Promise<void>;
18
+ stop(): void;
19
+ }
20
+ export declare namespace Bot {
21
+ interface Config extends QQBot.Config {
22
+ data_dir?: string;
23
+ }
24
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bot = void 0;
4
+ const qqBot_1 = require("../../adapters/qq/qqBot");
5
+ class Bot extends qqBot_1.QQBot {
6
+ constructor(oneBot, appId, config) {
7
+ super({
8
+ appid: appId,
9
+ ...config
10
+ });
11
+ this.oneBot = oneBot;
12
+ this.appId = appId;
13
+ }
14
+ async init() {
15
+ await this.sessionManager.start();
16
+ }
17
+ stop() {
18
+ }
19
+ }
20
+ exports.Bot = Bot;
@@ -0,0 +1,69 @@
1
+ export declare enum OpCode {
2
+ DISPATCH = 0,
3
+ HEARTBEAT = 1,
4
+ IDENTIFY = 2,
5
+ RESUME = 6,
6
+ RECONNECT = 7,
7
+ INVALID_SESSION = 9,
8
+ HELLO = 10,
9
+ HEARTBEAT_ACK = 11
10
+ }
11
+ export declare const SessionEvents: {
12
+ CLOSED: string;
13
+ READY: string;
14
+ ERROR: string;
15
+ INVALID_SESSION: string;
16
+ RECONNECT: string;
17
+ DISCONNECT: string;
18
+ EVENT_WS: string;
19
+ RESUMED: string;
20
+ DEAD: string;
21
+ };
22
+ export declare const WebsocketCloseReason: ({
23
+ code: number;
24
+ reason: string;
25
+ resume?: undefined;
26
+ } | {
27
+ code: number;
28
+ reason: string;
29
+ resume: boolean;
30
+ })[];
31
+ export declare enum Intends {
32
+ GUILDS = 1,
33
+ GUILD_MEMBERS = 2,
34
+ GUILD_MESSAGES = 512,
35
+ GUILD_MESSAGE_REACTIONS = 1024,
36
+ DIRECT_MESSAGE = 4096,
37
+ OPEN_FORUMS_EVENTS = 262144,
38
+ AUDIO_OR_LIVE_CHANNEL_MEMBERS = 524288,
39
+ C2C_MESSAGE_CREATE = 33554432,
40
+ GROUP_AT_MESSAGE_CREATE = 33554432,
41
+ INTERACTION = 67108864,
42
+ MESSAGE_AUDIT = 134217728,
43
+ FORUMS_EVENTS = 268435456,
44
+ AUDIO_ACTIONS = 536870912,
45
+ PUBLIC_GUILD_MESSAGES = 1073741824
46
+ }
47
+ export declare enum ChannelType {
48
+ Content = 0,
49
+ Record = 2,
50
+ ChannelGroup = 4,
51
+ Live = 10005,
52
+ App = 10006,
53
+ Forms = 10007
54
+ }
55
+ export declare enum ChannelSubType {
56
+ Chat = 0,
57
+ Announces = 1,
58
+ Strategy = 2,
59
+ Black = 3
60
+ }
61
+ export declare enum PrivateType {
62
+ Public = 0,
63
+ Admin = 1,
64
+ Some = 2
65
+ }
66
+ export declare enum SpeakPermission {
67
+ All = 1,
68
+ Some = 2
69
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpeakPermission = exports.PrivateType = exports.ChannelSubType = exports.ChannelType = exports.Intends = exports.WebsocketCloseReason = exports.SessionEvents = exports.OpCode = void 0;
4
+ // 心跳参数
5
+ var OpCode;
6
+ (function (OpCode) {
7
+ OpCode[OpCode["DISPATCH"] = 0] = "DISPATCH";
8
+ OpCode[OpCode["HEARTBEAT"] = 1] = "HEARTBEAT";
9
+ OpCode[OpCode["IDENTIFY"] = 2] = "IDENTIFY";
10
+ OpCode[OpCode["RESUME"] = 6] = "RESUME";
11
+ OpCode[OpCode["RECONNECT"] = 7] = "RECONNECT";
12
+ OpCode[OpCode["INVALID_SESSION"] = 9] = "INVALID_SESSION";
13
+ OpCode[OpCode["HELLO"] = 10] = "HELLO";
14
+ OpCode[OpCode["HEARTBEAT_ACK"] = 11] = "HEARTBEAT_ACK";
15
+ })(OpCode || (exports.OpCode = OpCode = {}));
16
+ exports.SessionEvents = {
17
+ CLOSED: "CLOSED",
18
+ READY: "READY",
19
+ ERROR: "ERROR",
20
+ INVALID_SESSION: "INVALID_SESSION",
21
+ RECONNECT: "RECONNECT",
22
+ DISCONNECT: "DISCONNECT",
23
+ EVENT_WS: "EVENT_WS",
24
+ RESUMED: "RESUMED",
25
+ DEAD: "DEAD" // 连接已死亡,请检查网络或重启
26
+ };
27
+ // websocket错误原因
28
+ exports.WebsocketCloseReason = [
29
+ {
30
+ code: 4001,
31
+ reason: "无效的opcode"
32
+ },
33
+ {
34
+ code: 4002,
35
+ reason: "无效的payload"
36
+ },
37
+ {
38
+ code: 4007,
39
+ reason: "seq错误"
40
+ },
41
+ {
42
+ code: 4008,
43
+ reason: "发送 payload 过快,请重新连接,并遵守连接后返回的频控信息",
44
+ resume: true
45
+ },
46
+ {
47
+ code: 4009,
48
+ reason: "连接过期,请重连",
49
+ resume: true
50
+ },
51
+ {
52
+ code: 4010,
53
+ reason: "无效的shard"
54
+ },
55
+ {
56
+ code: 4011,
57
+ reason: "连接需要处理的guild过多,请进行合理分片"
58
+ },
59
+ {
60
+ code: 4012,
61
+ reason: "无效的version"
62
+ },
63
+ {
64
+ code: 4013,
65
+ reason: "无效的intent"
66
+ },
67
+ {
68
+ code: 4014,
69
+ reason: "intent无权限"
70
+ },
71
+ {
72
+ code: 4900,
73
+ reason: "内部错误,请重连"
74
+ },
75
+ {
76
+ code: 4914,
77
+ reason: "机器人已下架,只允许连接沙箱环境,请断开连接,检验当前连接环境"
78
+ },
79
+ {
80
+ code: 4915,
81
+ reason: "机器人已封禁,不允许连接,请断开连接,申请解封后再连接"
82
+ }
83
+ ];
84
+ var Intends;
85
+ (function (Intends) {
86
+ Intends[Intends["GUILDS"] = 1] = "GUILDS";
87
+ Intends[Intends["GUILD_MEMBERS"] = 2] = "GUILD_MEMBERS";
88
+ Intends[Intends["GUILD_MESSAGES"] = 512] = "GUILD_MESSAGES";
89
+ Intends[Intends["GUILD_MESSAGE_REACTIONS"] = 1024] = "GUILD_MESSAGE_REACTIONS";
90
+ Intends[Intends["DIRECT_MESSAGE"] = 4096] = "DIRECT_MESSAGE";
91
+ Intends[Intends["OPEN_FORUMS_EVENTS"] = 262144] = "OPEN_FORUMS_EVENTS";
92
+ Intends[Intends["AUDIO_OR_LIVE_CHANNEL_MEMBERS"] = 524288] = "AUDIO_OR_LIVE_CHANNEL_MEMBERS";
93
+ // GROUP_MESSAGE_CREATE = 1 << 24, // 群聊消息事件
94
+ Intends[Intends["C2C_MESSAGE_CREATE"] = 33554432] = "C2C_MESSAGE_CREATE";
95
+ Intends[Intends["GROUP_AT_MESSAGE_CREATE"] = 33554432] = "GROUP_AT_MESSAGE_CREATE";
96
+ Intends[Intends["INTERACTION"] = 67108864] = "INTERACTION";
97
+ Intends[Intends["MESSAGE_AUDIT"] = 134217728] = "MESSAGE_AUDIT";
98
+ Intends[Intends["FORUMS_EVENTS"] = 268435456] = "FORUMS_EVENTS";
99
+ Intends[Intends["AUDIO_ACTIONS"] = 536870912] = "AUDIO_ACTIONS";
100
+ Intends[Intends["PUBLIC_GUILD_MESSAGES"] = 1073741824] = "PUBLIC_GUILD_MESSAGES";
101
+ })(Intends || (exports.Intends = Intends = {}));
102
+ var ChannelType;
103
+ (function (ChannelType) {
104
+ ChannelType[ChannelType["Content"] = 0] = "Content";
105
+ ChannelType[ChannelType["Record"] = 2] = "Record";
106
+ ChannelType[ChannelType["ChannelGroup"] = 4] = "ChannelGroup";
107
+ ChannelType[ChannelType["Live"] = 10005] = "Live";
108
+ ChannelType[ChannelType["App"] = 10006] = "App";
109
+ ChannelType[ChannelType["Forms"] = 10007] = "Forms";
110
+ })(ChannelType || (exports.ChannelType = ChannelType = {}));
111
+ var ChannelSubType;
112
+ (function (ChannelSubType) {
113
+ ChannelSubType[ChannelSubType["Chat"] = 0] = "Chat";
114
+ ChannelSubType[ChannelSubType["Announces"] = 1] = "Announces";
115
+ ChannelSubType[ChannelSubType["Strategy"] = 2] = "Strategy";
116
+ ChannelSubType[ChannelSubType["Black"] = 3] = "Black";
117
+ })(ChannelSubType || (exports.ChannelSubType = ChannelSubType = {}));
118
+ var PrivateType;
119
+ (function (PrivateType) {
120
+ PrivateType[PrivateType["Public"] = 0] = "Public";
121
+ PrivateType[PrivateType["Admin"] = 1] = "Admin";
122
+ PrivateType[PrivateType["Some"] = 2] = "Some";
123
+ })(PrivateType || (exports.PrivateType = PrivateType = {}));
124
+ var SpeakPermission;
125
+ (function (SpeakPermission) {
126
+ SpeakPermission[SpeakPermission["All"] = 1] = "All";
127
+ SpeakPermission[SpeakPermission["Some"] = 2] = "Some";
128
+ })(SpeakPermission || (exports.SpeakPermission = SpeakPermission = {}));