@buape/carbon 0.9.0 → 0.10.0
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/dist/package.json +4 -4
- package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
- package/dist/src/abstracts/BaseComponentInteraction.js +2 -0
- package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
- package/dist/src/abstracts/BaseInteraction.d.ts +1 -1
- package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
- package/dist/src/abstracts/BaseInteraction.js.map +1 -1
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +7 -1
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -1
- package/dist/src/abstracts/GuildThreadOnlyChannel.js +13 -0
- package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -1
- package/dist/src/classes/Client.d.ts +6 -3
- package/dist/src/classes/Client.d.ts.map +1 -1
- package/dist/src/classes/Client.js +15 -4
- package/dist/src/classes/Client.js.map +1 -1
- package/dist/src/classes/ClientWithCaching.d.ts +51 -0
- package/dist/src/classes/ClientWithCaching.d.ts.map +1 -0
- package/dist/src/classes/ClientWithCaching.js +108 -0
- package/dist/src/classes/ClientWithCaching.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internals/Cache.d.ts +76 -0
- package/dist/src/internals/Cache.d.ts.map +1 -0
- package/dist/src/internals/Cache.js +122 -0
- package/dist/src/internals/Cache.js.map +1 -0
- package/dist/src/internals/CommandHandler.d.ts +1 -0
- package/dist/src/internals/CommandHandler.d.ts.map +1 -1
- package/dist/src/internals/CommandHandler.js +19 -10
- package/dist/src/internals/CommandHandler.js.map +1 -1
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts +46 -2
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -1
- package/dist/src/plugins/gateway/GatewayPlugin.js +120 -6
- package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -1
- package/dist/src/plugins/gateway/types.d.ts +58 -0
- package/dist/src/plugins/gateway/types.d.ts.map +1 -1
- package/dist/src/plugins/gateway/types.js.map +1 -1
- package/dist/src/plugins/gateway/utils/payload.d.ts +7 -5
- package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -1
- package/dist/src/plugins/gateway/utils/payload.js +18 -0
- package/dist/src/plugins/gateway/utils/payload.js.map +1 -1
- package/dist/src/plugins/gateway/utils/rateLimit.d.ts +41 -0
- package/dist/src/plugins/gateway/utils/rateLimit.d.ts.map +1 -0
- package/dist/src/plugins/gateway/utils/rateLimit.js +61 -0
- package/dist/src/plugins/gateway/utils/rateLimit.js.map +1 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts +1 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts.map +1 -1
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js +1 -0
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js.map +1 -1
- package/dist/src/plugins/paginator/GoToPageModal.d.ts +24 -0
- package/dist/src/plugins/paginator/GoToPageModal.d.ts.map +1 -0
- package/dist/src/plugins/paginator/GoToPageModal.js +50 -0
- package/dist/src/plugins/paginator/GoToPageModal.js.map +1 -0
- package/dist/src/plugins/paginator/Paginator.d.ts +2 -0
- package/dist/src/plugins/paginator/Paginator.d.ts.map +1 -1
- package/dist/src/plugins/paginator/Paginator.js +40 -12
- package/dist/src/plugins/paginator/Paginator.js.map +1 -1
- package/dist/src/plugins/paginator/index.d.ts +2 -1
- package/dist/src/plugins/paginator/index.d.ts.map +1 -1
- package/dist/src/plugins/paginator/index.js +2 -1
- package/dist/src/plugins/paginator/index.js.map +1 -1
- package/dist/src/plugins/sharding/ShardingPlugin.d.ts +2 -1
- package/dist/src/plugins/sharding/ShardingPlugin.d.ts.map +1 -1
- package/dist/src/plugins/sharding/ShardingPlugin.js +9 -1
- package/dist/src/plugins/sharding/ShardingPlugin.js.map +1 -1
- package/dist/src/structures/Message.d.ts +3 -3
- package/dist/src/structures/Message.d.ts.map +1 -1
- package/dist/src/structures/Message.js +10 -6
- package/dist/src/structures/Message.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Client } from "../classes/Client.js";
|
|
2
|
+
import type { GuildMember } from "../structures/GuildMember.js";
|
|
3
|
+
import type { Webhook } from "../structures/Webhook.js";
|
|
4
|
+
export type CacheTypes = {
|
|
5
|
+
user: Awaited<ReturnType<typeof Client.prototype.fetchUser>>;
|
|
6
|
+
guild: Awaited<ReturnType<typeof Client.prototype.fetchGuild>>;
|
|
7
|
+
channel: Awaited<ReturnType<typeof Client.prototype.fetchChannel>>;
|
|
8
|
+
role: Awaited<ReturnType<typeof Client.prototype.fetchRole>>;
|
|
9
|
+
member: Awaited<ReturnType<typeof Client.prototype.fetchMember>>;
|
|
10
|
+
message: Awaited<ReturnType<typeof Client.prototype.fetchMessage>>;
|
|
11
|
+
voiceState: Awaited<ReturnType<typeof GuildMember.prototype.getVoiceState>>;
|
|
12
|
+
permissions: bigint[];
|
|
13
|
+
webhook: Webhook<false>;
|
|
14
|
+
};
|
|
15
|
+
export interface CacheEntry<V> {
|
|
16
|
+
value: V;
|
|
17
|
+
expiresAt?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface CacheOptions {
|
|
20
|
+
defaultExpiry?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare class Cache<K extends keyof CacheTypes | string, V = K extends keyof CacheTypes ? CacheTypes[K] : unknown> {
|
|
23
|
+
private cache;
|
|
24
|
+
private defaultExpiry;
|
|
25
|
+
constructor(options?: CacheOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Get a value from the cache
|
|
28
|
+
* @param key The key to get
|
|
29
|
+
* @returns The value if it exists and hasn't expired, undefined otherwise
|
|
30
|
+
*/
|
|
31
|
+
get(key: K): V | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Set a value in the cache
|
|
34
|
+
* @param key The key to set
|
|
35
|
+
* @param value The value to set
|
|
36
|
+
* @param expiresIn Optional time in milliseconds until the entry expires
|
|
37
|
+
*/
|
|
38
|
+
set(key: K, value: V, expiresIn?: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Delete a value from the cache
|
|
41
|
+
* @param key The key to delete
|
|
42
|
+
* @returns Whether the key was deleted
|
|
43
|
+
*/
|
|
44
|
+
delete(key: K): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Clear all values of a specific type from the cache
|
|
47
|
+
* @param type The type to clear
|
|
48
|
+
*/
|
|
49
|
+
clearType(type: K): void;
|
|
50
|
+
/**
|
|
51
|
+
* Clear all values from the cache
|
|
52
|
+
*/
|
|
53
|
+
clear(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get the size of the cache
|
|
56
|
+
*/
|
|
57
|
+
get size(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a key exists in the cache and hasn't expired
|
|
60
|
+
* @param key The key to check
|
|
61
|
+
*/
|
|
62
|
+
has(key: K): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Get all keys in the cache that haven't expired
|
|
65
|
+
*/
|
|
66
|
+
keys(): K[];
|
|
67
|
+
/**
|
|
68
|
+
* Get all values in the cache that haven't expired
|
|
69
|
+
*/
|
|
70
|
+
values(): V[];
|
|
71
|
+
/**
|
|
72
|
+
* Get all entries in the cache that haven't expired
|
|
73
|
+
*/
|
|
74
|
+
entries(): [K, V][];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=Cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/internals/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9D,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IAClE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAChE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IAClE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC3E,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB,CAAA;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAA;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,KAAK,CACjB,CAAC,SAAS,MAAM,UAAU,GAAG,MAAM,EACnC,CAAC,GAAG,CAAC,SAAS,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAExD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,GAAE,YAAiB;IAMtC;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAYjC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAI9B;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAQ/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAY3B;;OAEG;IACI,IAAI,IAAI,CAAC,EAAE;IAYlB;;OAEG;IACI,MAAM,IAAI,CAAC,EAAE;IAYpB;;OAEG;IACI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CAW1B"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export class Cache {
|
|
2
|
+
cache = new Map();
|
|
3
|
+
defaultExpiry = 1000 * 60 * 60 * 24; // 1 day
|
|
4
|
+
constructor(options = {}) {
|
|
5
|
+
if (options.defaultExpiry) {
|
|
6
|
+
this.defaultExpiry = options.defaultExpiry;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get a value from the cache
|
|
11
|
+
* @param key The key to get
|
|
12
|
+
* @returns The value if it exists and hasn't expired, undefined otherwise
|
|
13
|
+
*/
|
|
14
|
+
get(key) {
|
|
15
|
+
const entry = this.cache.get(key);
|
|
16
|
+
if (!entry)
|
|
17
|
+
return undefined;
|
|
18
|
+
if (entry.expiresAt && entry.expiresAt < Date.now()) {
|
|
19
|
+
this.delete(key);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return entry.value;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Set a value in the cache
|
|
26
|
+
* @param key The key to set
|
|
27
|
+
* @param value The value to set
|
|
28
|
+
* @param expiresIn Optional time in milliseconds until the entry expires
|
|
29
|
+
*/
|
|
30
|
+
set(key, value, expiresIn) {
|
|
31
|
+
const expiresAt = expiresIn ? Date.now() + expiresIn : this.defaultExpiry;
|
|
32
|
+
this.cache.set(key, { value, expiresAt });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Delete a value from the cache
|
|
36
|
+
* @param key The key to delete
|
|
37
|
+
* @returns Whether the key was deleted
|
|
38
|
+
*/
|
|
39
|
+
delete(key) {
|
|
40
|
+
return this.cache.delete(key);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Clear all values of a specific type from the cache
|
|
44
|
+
* @param type The type to clear
|
|
45
|
+
*/
|
|
46
|
+
clearType(type) {
|
|
47
|
+
for (const [key] of this.cache) {
|
|
48
|
+
if (key === type) {
|
|
49
|
+
this.delete(key);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Clear all values from the cache
|
|
55
|
+
*/
|
|
56
|
+
clear() {
|
|
57
|
+
this.cache.clear();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get the size of the cache
|
|
61
|
+
*/
|
|
62
|
+
get size() {
|
|
63
|
+
return this.cache.size;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if a key exists in the cache and hasn't expired
|
|
67
|
+
* @param key The key to check
|
|
68
|
+
*/
|
|
69
|
+
has(key) {
|
|
70
|
+
const entry = this.cache.get(key);
|
|
71
|
+
if (!entry)
|
|
72
|
+
return false;
|
|
73
|
+
if (entry.expiresAt && entry.expiresAt < Date.now()) {
|
|
74
|
+
this.delete(key);
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get all keys in the cache that haven't expired
|
|
81
|
+
*/
|
|
82
|
+
keys() {
|
|
83
|
+
const keys = [];
|
|
84
|
+
for (const [key, entry] of this.cache) {
|
|
85
|
+
if (entry.expiresAt && entry.expiresAt < Date.now()) {
|
|
86
|
+
this.delete(key);
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
keys.push(key);
|
|
90
|
+
}
|
|
91
|
+
return keys;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all values in the cache that haven't expired
|
|
95
|
+
*/
|
|
96
|
+
values() {
|
|
97
|
+
const values = [];
|
|
98
|
+
for (const [key, entry] of this.cache) {
|
|
99
|
+
if (entry.expiresAt && entry.expiresAt < Date.now()) {
|
|
100
|
+
this.delete(key);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
values.push(entry.value);
|
|
104
|
+
}
|
|
105
|
+
return values;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get all entries in the cache that haven't expired
|
|
109
|
+
*/
|
|
110
|
+
entries() {
|
|
111
|
+
const entries = [];
|
|
112
|
+
for (const [key, entry] of this.cache) {
|
|
113
|
+
if (entry.expiresAt && entry.expiresAt < Date.now()) {
|
|
114
|
+
this.delete(key);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
entries.push([key, entry.value]);
|
|
118
|
+
}
|
|
119
|
+
return entries;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=Cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/internals/Cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type APIApplicationCommandAutocompleteInteraction, type APIApplicationCommandInteraction } from "discord-api-types/v10";
|
|
2
2
|
import { Base } from "../abstracts/Base.js";
|
|
3
3
|
export declare class CommandHandler extends Base {
|
|
4
|
+
private getSubcommand;
|
|
4
5
|
private getCommand;
|
|
5
6
|
/**
|
|
6
7
|
* Handle a command interaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,4CAA4C,EACjD,KAAK,gCAAgC,EAIrC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAQ3C,qBAAa,cAAe,SAAQ,IAAI;IACvC,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,4CAA4C,EACjD,KAAK,gCAAgC,EAIrC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAQ3C,qBAAa,cAAe,SAAQ,IAAI;IACvC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,UAAU;IA6DlB;;;OAGG;IACG,wBAAwB,CAC7B,cAAc,EAAE,gCAAgC;IAoC3C,6BAA6B,CAClC,cAAc,EAAE,4CAA4C;CAsB7D"}
|
|
@@ -6,6 +6,16 @@ import { CommandWithSubcommands } from "../classes/CommandWithSubcommands.js";
|
|
|
6
6
|
import { AutocompleteInteraction } from "./AutocompleteInteraction.js";
|
|
7
7
|
import { CommandInteraction } from "./CommandInteraction.js";
|
|
8
8
|
export class CommandHandler extends Base {
|
|
9
|
+
getSubcommand(command, rawInteraction) {
|
|
10
|
+
if (rawInteraction.data.type !== ApplicationCommandType.ChatInput) {
|
|
11
|
+
throw new Error("Subcommands must be used with ChatInput");
|
|
12
|
+
}
|
|
13
|
+
const data = rawInteraction.data;
|
|
14
|
+
const subcommand = command.subcommands.find((x) => x.name === data.options?.[0]?.name);
|
|
15
|
+
if (!subcommand)
|
|
16
|
+
throw new Error("Subcommand not found");
|
|
17
|
+
return subcommand;
|
|
18
|
+
}
|
|
9
19
|
getCommand(rawInteraction) {
|
|
10
20
|
let command = this.client.commands.find((x) => x.name === rawInteraction.data.name);
|
|
11
21
|
if (!command)
|
|
@@ -18,8 +28,14 @@ export class CommandHandler extends Base {
|
|
|
18
28
|
}
|
|
19
29
|
const data = rawInteraction.data;
|
|
20
30
|
const subcommandGroupName = data.options?.find((x) => x.type === ApplicationCommandOptionType.SubcommandGroup)?.name;
|
|
21
|
-
if (!subcommandGroupName)
|
|
22
|
-
|
|
31
|
+
if (!subcommandGroupName) {
|
|
32
|
+
try {
|
|
33
|
+
return this.getSubcommand(command, rawInteraction);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new Error("No subcommand group name or subcommand found");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
23
39
|
const subcommandGroup = command.subcommandGroups.find((x) => x.name === subcommandGroupName);
|
|
24
40
|
if (!subcommandGroup)
|
|
25
41
|
throw new Error("Subcommand group not found");
|
|
@@ -32,14 +48,7 @@ export class CommandHandler extends Base {
|
|
|
32
48
|
return subcommand;
|
|
33
49
|
}
|
|
34
50
|
if (command instanceof CommandWithSubcommands) {
|
|
35
|
-
|
|
36
|
-
throw new Error("Subcommands must be used with ChatInput");
|
|
37
|
-
}
|
|
38
|
-
const data = rawInteraction.data;
|
|
39
|
-
const subcommand = command.subcommands.find((x) => x.name === data.options?.[0]?.name);
|
|
40
|
-
if (!subcommand)
|
|
41
|
-
throw new Error("Subcommand not found");
|
|
42
|
-
return subcommand;
|
|
51
|
+
return this.getSubcommand(command, rawInteraction);
|
|
43
52
|
}
|
|
44
53
|
if (command instanceof Command) {
|
|
45
54
|
return command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,4BAA4B,EAC5B,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,OAAO,cAAe,SAAQ,IAAI;IAC/B,UAAU,CACjB,cAEmC;QAEnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAC1C,CAAA;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;QACxE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAElD,IAAI,OAAO,YAAY,2BAA2B,EAAE,CAAC;YACpD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,SAAS,EAAE,CAAC;gBACnE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAA;YAChC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC,eAAe,CAC9D,EAAE,IAAI,CAAA;YACP,IAAI,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ import { EventEmitter } from "node:events";
|
|
|
2
2
|
import WebSocket from "ws";
|
|
3
3
|
import { Plugin } from "../../abstracts/Plugin.js";
|
|
4
4
|
import type { Client } from "../../classes/Client.js";
|
|
5
|
-
import { type APIGatewayBotInfo, type GatewayPayload, type GatewayPluginOptions, type GatewayState } from "./types.js";
|
|
5
|
+
import { type APIGatewayBotInfo, type GatewayPayload, type GatewayPluginOptions, type GatewayState, type RequestGuildMembersData, type UpdatePresenceData, type UpdateVoiceStateData } from "./types.js";
|
|
6
6
|
import { ConnectionMonitor } from "./utils/monitor.js";
|
|
7
|
+
import { GatewayRateLimit } from "./utils/rateLimit.js";
|
|
7
8
|
export declare class GatewayPlugin extends Plugin {
|
|
8
9
|
readonly id = "gateway";
|
|
9
10
|
protected client?: Client;
|
|
@@ -11,6 +12,7 @@ export declare class GatewayPlugin extends Plugin {
|
|
|
11
12
|
protected state: GatewayState;
|
|
12
13
|
protected ws: WebSocket | null;
|
|
13
14
|
protected monitor: ConnectionMonitor;
|
|
15
|
+
protected rateLimit: GatewayRateLimit;
|
|
14
16
|
heartbeatInterval?: NodeJS.Timeout;
|
|
15
17
|
sequence: number | null;
|
|
16
18
|
lastHeartbeatAck: boolean;
|
|
@@ -19,7 +21,10 @@ export declare class GatewayPlugin extends Plugin {
|
|
|
19
21
|
shardId?: number;
|
|
20
22
|
totalShards?: number;
|
|
21
23
|
protected gatewayInfo?: APIGatewayBotInfo;
|
|
24
|
+
isConnected: boolean;
|
|
25
|
+
protected pings: number[];
|
|
22
26
|
constructor(options: GatewayPluginOptions, gatewayInfo?: APIGatewayBotInfo);
|
|
27
|
+
get ping(): number | null;
|
|
23
28
|
registerClient(client: Client): Promise<void>;
|
|
24
29
|
connect(resume?: boolean): void;
|
|
25
30
|
disconnect(): void;
|
|
@@ -35,7 +40,46 @@ export declare class GatewayPlugin extends Plugin {
|
|
|
35
40
|
protected handleReconnect(): void;
|
|
36
41
|
protected canResume(): boolean;
|
|
37
42
|
protected resume(): void;
|
|
38
|
-
send(payload: GatewayPayload): void;
|
|
43
|
+
send(payload: GatewayPayload, skipRateLimit?: boolean): void;
|
|
39
44
|
protected identify(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Update the bot's presence (status, activity, etc.)
|
|
47
|
+
* @param data Presence data to update
|
|
48
|
+
*/
|
|
49
|
+
updatePresence(data: UpdatePresenceData): void;
|
|
50
|
+
/**
|
|
51
|
+
* Update the bot's voice state
|
|
52
|
+
* @param data Voice state data to update
|
|
53
|
+
*/
|
|
54
|
+
updateVoiceState(data: UpdateVoiceStateData): void;
|
|
55
|
+
/**
|
|
56
|
+
* Request guild members from Discord. The data will come in through the GUILD_MEMBERS_CHUNK event, not as a return on this function.
|
|
57
|
+
* @param data Guild members request data
|
|
58
|
+
*/
|
|
59
|
+
requestGuildMembers(data: RequestGuildMembersData): void;
|
|
60
|
+
/**
|
|
61
|
+
* Get the current rate limit status
|
|
62
|
+
*/
|
|
63
|
+
getRateLimitStatus(): {
|
|
64
|
+
remainingEvents: number;
|
|
65
|
+
resetTime: number;
|
|
66
|
+
currentEventCount: number;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Get information about configured intents
|
|
70
|
+
*/
|
|
71
|
+
getIntentsInfo(): {
|
|
72
|
+
intents: number;
|
|
73
|
+
hasGuilds: boolean;
|
|
74
|
+
hasGuildMembers: boolean;
|
|
75
|
+
hasGuildPresences: boolean;
|
|
76
|
+
hasGuildMessages: boolean;
|
|
77
|
+
hasMessageContent: boolean;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Check if a specific intent is enabled
|
|
81
|
+
* @param intent The intent to check
|
|
82
|
+
*/
|
|
83
|
+
hasIntent(intent: number): boolean;
|
|
40
84
|
}
|
|
41
85
|
//# sourceMappingURL=GatewayPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatewayPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EACN,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"GatewayPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EACN,KAAK,iBAAiB,EAItB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAA0B,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAS9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMvD,qBAAa,aAAc,SAAQ,MAAM;IACxC,QAAQ,CAAC,EAAE,aAAY;IACvB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACtC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAA;IAC7B,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAO;IACrC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACpC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,gBAAgB,UAAO;IAC9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,OAAO,CAAC,iBAAiB,CAAI;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAClC,WAAW,UAAQ;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAK;gBAElB,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA4B1E,IAAI,IAAI,kBAIP;IAEY,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnD,OAAO,CAAC,MAAM,UAAQ,GAAG,IAAI;IAa7B,UAAU,IAAI,IAAI;IASzB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAOjD,SAAS,CAAC,cAAc,IAAI,IAAI;IA8IhC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE;QAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;KACvB,GAAG,IAAI;IAoER,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAIxC,SAAS,CAAC,eAAe,IAAI,IAAI;IAIjC,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,MAAM,IAAI,IAAI;IAWjB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,UAAQ,GAAG,IAAI;IA2BjE,SAAS,CAAC,QAAQ,IAAI,IAAI;IAe1B;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAQrD;;;OAGG;IACI,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IASzD;;;OAGG;IACI,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI;IAiC/D;;OAEG;IACI,kBAAkB;;;;;IAQzB;;OAEG;IACI,cAAc;;;;;;;;IAerB;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGzC"}
|
|
@@ -2,10 +2,11 @@ import { EventEmitter } from "node:events";
|
|
|
2
2
|
import WebSocket from "ws";
|
|
3
3
|
import { Plugin } from "../../abstracts/Plugin.js";
|
|
4
4
|
import { ListenerEvent } from "../../types/index.js";
|
|
5
|
-
import { GatewayCloseCodes, GatewayOpcodes } from "./types.js";
|
|
5
|
+
import { GatewayCloseCodes, GatewayIntents, GatewayOpcodes } from "./types.js";
|
|
6
6
|
import { startHeartbeat, stopHeartbeat } from "./utils/heartbeat.js";
|
|
7
7
|
import { ConnectionMonitor } from "./utils/monitor.js";
|
|
8
|
-
import { createIdentifyPayload, createResumePayload, validatePayload } from "./utils/payload.js";
|
|
8
|
+
import { createIdentifyPayload, createRequestGuildMembersPayload, createResumePayload, createUpdatePresencePayload, createUpdateVoiceStatePayload, validatePayload } from "./utils/payload.js";
|
|
9
|
+
import { GatewayRateLimit } from "./utils/rateLimit.js";
|
|
9
10
|
export class GatewayPlugin extends Plugin {
|
|
10
11
|
id = "gateway";
|
|
11
12
|
client;
|
|
@@ -13,6 +14,7 @@ export class GatewayPlugin extends Plugin {
|
|
|
13
14
|
state;
|
|
14
15
|
ws = null;
|
|
15
16
|
monitor;
|
|
17
|
+
rateLimit;
|
|
16
18
|
heartbeatInterval;
|
|
17
19
|
sequence = null;
|
|
18
20
|
lastHeartbeatAck = true;
|
|
@@ -21,6 +23,8 @@ export class GatewayPlugin extends Plugin {
|
|
|
21
23
|
shardId;
|
|
22
24
|
totalShards;
|
|
23
25
|
gatewayInfo;
|
|
26
|
+
isConnected = false;
|
|
27
|
+
pings = [];
|
|
24
28
|
constructor(options, gatewayInfo) {
|
|
25
29
|
super();
|
|
26
30
|
this.config = {
|
|
@@ -37,11 +41,17 @@ export class GatewayPlugin extends Plugin {
|
|
|
37
41
|
resumeGatewayUrl: null
|
|
38
42
|
};
|
|
39
43
|
this.monitor = new ConnectionMonitor();
|
|
44
|
+
this.rateLimit = new GatewayRateLimit();
|
|
40
45
|
this.emitter = new EventEmitter();
|
|
41
46
|
this.gatewayInfo = gatewayInfo;
|
|
42
47
|
this.monitor.on("metrics", (metrics) => this.emitter.emit("metrics", metrics));
|
|
43
48
|
this.monitor.on("warning", (warning) => this.emitter.emit("warning", warning));
|
|
44
49
|
}
|
|
50
|
+
get ping() {
|
|
51
|
+
return this.pings.length
|
|
52
|
+
? this.pings.reduce((a, b) => a + b, 0) / this.pings.length
|
|
53
|
+
: null;
|
|
54
|
+
}
|
|
45
55
|
async registerClient(client) {
|
|
46
56
|
this.client = client;
|
|
47
57
|
if (!this.gatewayInfo) {
|
|
@@ -79,6 +89,8 @@ export class GatewayPlugin extends Plugin {
|
|
|
79
89
|
this.monitor.resetUptime();
|
|
80
90
|
this.ws?.close();
|
|
81
91
|
this.ws = null;
|
|
92
|
+
this.isConnected = false;
|
|
93
|
+
this.pings = [];
|
|
82
94
|
}
|
|
83
95
|
createWebSocket(url) {
|
|
84
96
|
if (!url) {
|
|
@@ -125,12 +137,23 @@ export class GatewayPlugin extends Plugin {
|
|
|
125
137
|
else {
|
|
126
138
|
this.identify();
|
|
127
139
|
}
|
|
140
|
+
this.isConnected = true;
|
|
128
141
|
break;
|
|
129
142
|
}
|
|
130
|
-
case GatewayOpcodes.HeartbeatAck:
|
|
143
|
+
case GatewayOpcodes.HeartbeatAck: {
|
|
131
144
|
this.lastHeartbeatAck = true;
|
|
132
145
|
this.monitor.recordHeartbeatAck();
|
|
146
|
+
// Record the latency for ping averaging
|
|
147
|
+
const latency = this.monitor.getMetrics().latency;
|
|
148
|
+
if (latency > 0) {
|
|
149
|
+
this.pings.push(latency);
|
|
150
|
+
// Keep only the last 10 pings to prevent unbounded growth
|
|
151
|
+
if (this.pings.length > 10) {
|
|
152
|
+
this.pings.shift();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
133
155
|
break;
|
|
156
|
+
}
|
|
134
157
|
case GatewayOpcodes.Dispatch: {
|
|
135
158
|
const payload1 = payload;
|
|
136
159
|
const t1 = payload1.t;
|
|
@@ -166,6 +189,7 @@ export class GatewayPlugin extends Plugin {
|
|
|
166
189
|
this.state.resumeGatewayUrl = null;
|
|
167
190
|
this.state.sequence = null;
|
|
168
191
|
this.sequence = null;
|
|
192
|
+
this.pings = [];
|
|
169
193
|
this.connect(false);
|
|
170
194
|
}
|
|
171
195
|
}, 5000);
|
|
@@ -182,7 +206,7 @@ export class GatewayPlugin extends Plugin {
|
|
|
182
206
|
break;
|
|
183
207
|
}
|
|
184
208
|
});
|
|
185
|
-
this.ws.on("close", (code) => {
|
|
209
|
+
this.ws.on("close", (code, _reason) => {
|
|
186
210
|
this.emitter.emit("debug", `WebSocket connection closed with code ${code}`);
|
|
187
211
|
this.monitor.recordReconnect();
|
|
188
212
|
if (closed)
|
|
@@ -221,6 +245,7 @@ export class GatewayPlugin extends Plugin {
|
|
|
221
245
|
this.state.resumeGatewayUrl = null;
|
|
222
246
|
this.state.sequence = null;
|
|
223
247
|
this.sequence = null;
|
|
248
|
+
this.pings = [];
|
|
224
249
|
options.forceNoResume = true;
|
|
225
250
|
break;
|
|
226
251
|
}
|
|
@@ -255,12 +280,25 @@ export class GatewayPlugin extends Plugin {
|
|
|
255
280
|
sessionId: this.state.sessionId,
|
|
256
281
|
sequence: this.state.sequence
|
|
257
282
|
});
|
|
258
|
-
this.send(payload);
|
|
283
|
+
this.send(payload, true);
|
|
259
284
|
}
|
|
260
|
-
send(payload) {
|
|
285
|
+
send(payload, skipRateLimit = false) {
|
|
261
286
|
if (this.ws && this.ws.readyState === 1) {
|
|
287
|
+
// Skip rate limiting for essential connection events
|
|
288
|
+
const isEssentialEvent = payload.op === GatewayOpcodes.Heartbeat ||
|
|
289
|
+
payload.op === GatewayOpcodes.Identify ||
|
|
290
|
+
payload.op === GatewayOpcodes.Resume;
|
|
291
|
+
if (!skipRateLimit && !isEssentialEvent && !this.rateLimit.canSend()) {
|
|
292
|
+
throw new Error(`Gateway rate limit exceeded. ${this.rateLimit.getRemainingEvents()} events remaining. Reset in ${this.rateLimit.getResetTime()}ms`);
|
|
293
|
+
}
|
|
262
294
|
this.ws.send(JSON.stringify(payload));
|
|
263
295
|
this.monitor.recordMessageSent();
|
|
296
|
+
if (!isEssentialEvent) {
|
|
297
|
+
this.rateLimit.recordEvent();
|
|
298
|
+
}
|
|
299
|
+
if (payload.op === GatewayOpcodes.Heartbeat) {
|
|
300
|
+
this.monitor.recordHeartbeat();
|
|
301
|
+
}
|
|
264
302
|
}
|
|
265
303
|
}
|
|
266
304
|
identify() {
|
|
@@ -276,7 +314,83 @@ export class GatewayPlugin extends Plugin {
|
|
|
276
314
|
},
|
|
277
315
|
...(this.config.shard ? { shard: this.config.shard } : {})
|
|
278
316
|
});
|
|
317
|
+
this.send(payload, true);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Update the bot's presence (status, activity, etc.)
|
|
321
|
+
* @param data Presence data to update
|
|
322
|
+
*/
|
|
323
|
+
updatePresence(data) {
|
|
324
|
+
if (!this.isConnected) {
|
|
325
|
+
throw new Error("Gateway is not connected");
|
|
326
|
+
}
|
|
327
|
+
const payload = createUpdatePresencePayload(data);
|
|
328
|
+
this.send(payload);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Update the bot's voice state
|
|
332
|
+
* @param data Voice state data to update
|
|
333
|
+
*/
|
|
334
|
+
updateVoiceState(data) {
|
|
335
|
+
if (!this.isConnected) {
|
|
336
|
+
throw new Error("Gateway is not connected");
|
|
337
|
+
}
|
|
338
|
+
const payload = createUpdateVoiceStatePayload(data);
|
|
279
339
|
this.send(payload);
|
|
280
340
|
}
|
|
341
|
+
/**
|
|
342
|
+
* Request guild members from Discord. The data will come in through the GUILD_MEMBERS_CHUNK event, not as a return on this function.
|
|
343
|
+
* @param data Guild members request data
|
|
344
|
+
*/
|
|
345
|
+
requestGuildMembers(data) {
|
|
346
|
+
if (!this.isConnected) {
|
|
347
|
+
throw new Error("Gateway is not connected");
|
|
348
|
+
}
|
|
349
|
+
const hasGuildMembersIntent = (this.config.intents & GatewayIntents.GuildMembers) !== 0;
|
|
350
|
+
if (!hasGuildMembersIntent) {
|
|
351
|
+
throw new Error("GUILD_MEMBERS intent is required for requestGuildMembers operation");
|
|
352
|
+
}
|
|
353
|
+
if (data.presences) {
|
|
354
|
+
const hasPresencesIntent = (this.config.intents & GatewayIntents.GuildPresences) !== 0;
|
|
355
|
+
if (!hasPresencesIntent) {
|
|
356
|
+
throw new Error("GUILD_PRESENCES intent is required when requesting presences");
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (!data.query && data.query !== "" && !data.user_ids) {
|
|
360
|
+
throw new Error("Either 'query' or 'user_ids' field is required for requestGuildMembers");
|
|
361
|
+
}
|
|
362
|
+
const payload = createRequestGuildMembersPayload(data);
|
|
363
|
+
this.send(payload);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Get the current rate limit status
|
|
367
|
+
*/
|
|
368
|
+
getRateLimitStatus() {
|
|
369
|
+
return {
|
|
370
|
+
remainingEvents: this.rateLimit.getRemainingEvents(),
|
|
371
|
+
resetTime: this.rateLimit.getResetTime(),
|
|
372
|
+
currentEventCount: this.rateLimit.getCurrentEventCount()
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Get information about configured intents
|
|
377
|
+
*/
|
|
378
|
+
getIntentsInfo() {
|
|
379
|
+
return {
|
|
380
|
+
intents: this.config.intents,
|
|
381
|
+
hasGuilds: (this.config.intents & GatewayIntents.Guilds) !== 0,
|
|
382
|
+
hasGuildMembers: (this.config.intents & GatewayIntents.GuildMembers) !== 0,
|
|
383
|
+
hasGuildPresences: (this.config.intents & GatewayIntents.GuildPresences) !== 0,
|
|
384
|
+
hasGuildMessages: (this.config.intents & GatewayIntents.GuildMessages) !== 0,
|
|
385
|
+
hasMessageContent: (this.config.intents & GatewayIntents.MessageContent) !== 0
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Check if a specific intent is enabled
|
|
390
|
+
* @param intent The intent to check
|
|
391
|
+
*/
|
|
392
|
+
hasIntent(intent) {
|
|
393
|
+
return (this.config.intents & intent) !== 0;
|
|
394
|
+
}
|
|
281
395
|
}
|
|
282
396
|
//# sourceMappingURL=GatewayPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatewayPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GatewayPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"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"}
|