xernerx 4.5.5 → 4.5.7
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/build/XernerxContextCommand.d.ts +46 -44
- package/dist/build/XernerxContextCommand.js +64 -62
- package/dist/build/XernerxEvent.d.ts +16 -14
- package/dist/build/XernerxEvent.js +21 -19
- package/dist/build/XernerxInhibitor.d.ts +19 -17
- package/dist/build/XernerxInhibitor.js +13 -11
- package/dist/build/XernerxMessageCommand.d.ts +44 -42
- package/dist/build/XernerxMessageCommand.js +58 -56
- package/dist/build/XernerxSlashCommand.d.ts +56 -54
- package/dist/build/XernerxSlashCommand.js +110 -108
- package/dist/client/XernerxClient.d.ts +46 -44
- package/dist/client/XernerxClient.js +75 -73
- package/dist/client/XernerxShardClient.d.ts +12 -10
- package/dist/client/XernerxShardClient.js +50 -48
- package/dist/functions/deploy.d.ts +2 -0
- package/dist/functions/deploy.js +32 -30
- package/dist/functions/load.d.ts +2 -0
- package/dist/functions/load.js +29 -27
- package/dist/functions/reload.d.ts +2 -0
- package/dist/functions/reload.js +36 -34
- package/dist/functions/sendWebhook.d.ts +2 -0
- package/dist/functions/sendWebhook.js +12 -10
- package/dist/functions/setPresence.d.ts +2 -0
- package/dist/functions/setPresence.js +19 -17
- package/dist/functions/xernerxUser.d.ts +2 -0
- package/dist/functions/xernerxUser.js +10 -8
- package/dist/handlers/CommandHandler.d.ts +10 -8
- package/dist/handlers/CommandHandler.js +241 -239
- package/dist/handlers/EventHandler.d.ts +4 -2
- package/dist/handlers/EventHandler.js +20 -18
- package/dist/handlers/ExtensionHandler.d.ts +4 -2
- package/dist/handlers/ExtensionHandler.js +19 -17
- package/dist/handlers/Handler.d.ts +9 -7
- package/dist/handlers/Handler.js +33 -31
- package/dist/handlers/InhibitorHandler.d.ts +4 -2
- package/dist/handlers/InhibitorHandler.js +20 -18
- package/dist/handlers/WebhookHandler.d.ts +5 -3
- package/dist/handlers/WebhookHandler.js +48 -46
- package/dist/main.d.ts +28 -26
- package/dist/main.js +28 -26
- package/dist/models/Arguments.d.ts +4 -2
- package/dist/models/Arguments.js +136 -134
- package/dist/tools/XernerxError.d.ts +6 -4
- package/dist/tools/XernerxError.js +10 -8
- package/dist/tools/XernerxLog.d.ts +14 -12
- package/dist/tools/XernerxLog.js +77 -80
- package/dist/tools/XernerxLog.js.map +1 -1
- package/dist/types/extenders.d.ts +13 -11
- package/dist/types/extenders.js +2 -0
- package/dist/types/interfaces.d.ts +184 -172
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/interfaces.js +2 -0
- package/dist/types/interfaces.js.map +1 -1
- package/dist/types/types.d.ts +173 -171
- package/dist/types/types.js +2 -0
- package/dist/utils/ClientUtil.d.ts +8 -5
- package/dist/utils/ClientUtil.d.ts.map +1 -1
- package/dist/utils/ClientUtil.js +45 -26
- package/dist/utils/ClientUtil.js.map +1 -1
- package/dist/utils/InteractionUtil.d.ts +11 -5
- package/dist/utils/InteractionUtil.d.ts.map +1 -1
- package/dist/utils/InteractionUtil.js +98 -8
- package/dist/utils/InteractionUtil.js.map +1 -1
- package/dist/utils/MessageUtil.d.ts +14 -9
- package/dist/utils/MessageUtil.d.ts.map +1 -1
- package/dist/utils/MessageUtil.js +131 -37
- package/dist/utils/MessageUtil.js.map +1 -1
- package/dist/utils/Util.d.ts +5 -3
- package/dist/utils/Util.js +9 -7
- package/dist/validators/commandValidation.d.ts +4 -2
- package/dist/validators/commandValidation.js +44 -42
- package/dist/validators/inhibitorValidations.d.ts +16 -14
- package/dist/validators/inhibitorValidations.js +32 -30
- package/package.json +1 -1
- package/dist/build/ContextCommandBuilder.d.ts +0 -51
- package/dist/build/ContextCommandBuilder.d.ts.map +0 -1
- package/dist/build/ContextCommandBuilder.js +0 -68
- package/dist/build/ContextCommandBuilder.js.map +0 -1
- package/dist/build/EventBuilder.d.ts +0 -25
- package/dist/build/EventBuilder.d.ts.map +0 -1
- package/dist/build/EventBuilder.js +0 -30
- package/dist/build/EventBuilder.js.map +0 -1
- package/dist/build/InhibitorBuilder.d.ts +0 -29
- package/dist/build/InhibitorBuilder.d.ts.map +0 -1
- package/dist/build/InhibitorBuilder.js +0 -21
- package/dist/build/InhibitorBuilder.js.map +0 -1
- package/dist/build/MessageCommandBuilder.d.ts +0 -48
- package/dist/build/MessageCommandBuilder.d.ts.map +0 -1
- package/dist/build/MessageCommandBuilder.js +0 -61
- package/dist/build/MessageCommandBuilder.js.map +0 -1
- package/dist/build/SlashCommandBuilder.d.ts +0 -62
- package/dist/build/SlashCommandBuilder.d.ts.map +0 -1
- package/dist/build/SlashCommandBuilder.js +0 -114
- package/dist/build/SlashCommandBuilder.js.map +0 -1
- package/dist/functions/delay.d.ts +0 -2
- package/dist/functions/delay.d.ts.map +0 -1
- package/dist/functions/delay.js +0 -4
- package/dist/functions/delay.js.map +0 -1
- package/dist/functions/isOwner.d.ts +0 -4
- package/dist/functions/isOwner.d.ts.map +0 -1
- package/dist/functions/isOwner.js +0 -2
- package/dist/functions/isOwner.js.map +0 -1
- package/dist/functions/isVoter.d.ts +0 -4
- package/dist/functions/isVoter.d.ts.map +0 -1
- package/dist/functions/isVoter.js +0 -6
- package/dist/functions/isVoter.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionUtil.js","sourceRoot":"","sources":["../../src/utils/InteractionUtil.ts"],"names":[],"mappings":"AAIA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,IAAI;IACrC,WAAW,CAAC;IAEpB,YAAY,MAAqB,EAAE,WAA2H;QAC1J,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAwF;QACvG,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAkC,CAAC,CAAC,CAAC;IAC5K,CAAC;CACJ","sourcesContent":["import { InteractionEditReplyOptions, InteractionReplyOptions, MessagePayload } from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { XernerxInteraction } from '../types/types.js';\nimport Util from './Util.js';\nimport { XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../main.js';\n\nexport default class InteractionUtil extends Util {\n private interaction;\n\n constructor(client: XernerxClient, interaction: XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>) {\n super(client);\n\n this.interaction = interaction;\n }\n\n public async reply(content: string | MessagePayload | InteractionReplyOptions | InteractionEditReplyOptions) {\n return await (this.interaction.replied || this.interaction.deferred ? this.interaction.editReply(content) : this.interaction.reply(content as InteractionReplyOptions));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"InteractionUtil.js","sourceRoot":"","sources":["../../src/utils/InteractionUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, InteractionEditReplyOptions, InteractionReplyOptions, MessagePayload, StringSelectMenuBuilder } from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { PaginatorOptions } from '../types/interfaces.js';\nimport { XernerxInteraction } from '../types/types.js';\nimport Util from './Util.js';\nimport XernerxError from '../tools/XernerxError.js';\nimport { XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\n\nexport default class InteractionUtil extends Util {\n private interaction;\n\n constructor(client: XernerxClient, interaction: XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>) {\n super(client);\n\n this.interaction = interaction;\n }\n\n public async send(content: any) {\n if (!content) throw new XernerxError(`Can't send a message without content.`);\n\n return await this.interaction.channel?.send(content);\n }\n\n public async reply(content: string | MessagePayload | InteractionReplyOptions | InteractionEditReplyOptions) {\n if (!content) throw new XernerxError(`Can't send a message without content.`);\n\n return await (this.interaction.replied || this.interaction.deferred ? this.interaction.editReply(content) : this.interaction.reply(content as InteractionReplyOptions));\n }\n\n public commandName() {}\n\n public async paginator(embeds: Array<EmbedBuilder>, options: PaginatorOptions = {}) {\n let buttonRow, menuRow;\n\n if (embeds.length <= 0) throw new XernerxError(`Can't make a paginator without embeds`);\n\n options = {\n type: options.type ?? 'combined',\n buttons: options.buttons ?? ['⏪', '◀️', '⏹️', '▶️', '⏩'],\n description: options.description ?? false,\n placeholder: options.placeholder ?? 'Change page',\n index: options.index ?? 0,\n send: options.send ?? false,\n filter: options.filter ?? (() => true),\n time: options.time ?? 300000,\n };\n\n if (options.type == 'button' || options.type == 'combined') {\n if (!options.buttons) throw new XernerxError(`¯\\\\_(ツ)_/¯ Somehow there are no buttons? ¯\\\\_(ツ)_/¯`);\n\n buttonRow = new ActionRowBuilder().addComponents(\n ...options.buttons.map((button, i) => new ButtonBuilder().setCustomId(`${this.interaction.id}-${i}`).setEmoji(button).setStyle(ButtonStyle.Primary))\n );\n }\n\n if (options.type == 'select-menu' || options.type == 'combined') {\n menuRow = new ActionRowBuilder().addComponents(\n new StringSelectMenuBuilder()\n .setCustomId(`${this.interaction.id}-select-menu`)\n .setPlaceholder(options.placeholder as string)\n .addOptions(\n ...embeds.map((embed, i) => ({ label: embed.data.title || 'No Title', description: (options.description ? embed.data.description : undefined) || undefined, value: `${i}` }))\n )\n );\n }\n\n let index = options.index || 0;\n\n return options.send\n ? await this.interaction.util.send({\n embeds: [embeds[index]],\n components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter(\n (x) => x\n ),\n } as never)\n : await this.interaction.util\n .reply({\n embeds: [embeds[index]],\n components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter(\n (x) => x\n ),\n } as never)\n .then(async (msg) => {\n const collector = this.interaction.channel\n ?.createMessageComponentCollector({ time: options.time })\n\n .on('collect', (collect) => {\n if (!collect.customId.startsWith(this.interaction.id)) return;\n\n if (collect.customId.endsWith('select-menu')) {\n index = Number((collect as unknown as Record<string, Array<string>>).values[0]);\n\n collect.update({ embeds: [embeds[index]] });\n } else {\n const option = Number(collect.customId.split(/-/)[1]);\n\n let embed = embeds[index];\n\n if (option == 0) {\n index = 0;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 1) {\n index = embeds.indexOf(embed) >= 1 ? embeds.indexOf(embed) - 1 : 0;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 2) {\n collect.update({ components: [] });\n collector?.stop();\n }\n if (option == 3) {\n index = embeds.indexOf(embed) < embeds.length - 1 ? embeds.indexOf(embed) + 1 : embeds.length - 1;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 4) {\n index = embeds.length - 1;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n }\n })\n .on('end', async () => {\n this.interaction.editReply({ components: [] });\n });\n });\n }\n}\n"]}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
3
|
+
import { EmbedBuilder, MessageEditOptions, MessagePayload, MessageReplyOptions, User } from 'discord.js';
|
|
2
4
|
import XernerxClient from '../client/XernerxClient.js';
|
|
3
5
|
import { XernerxMessage } from '../types/extenders.js';
|
|
4
6
|
import Util from './Util.js';
|
|
7
|
+
import { PaginatorOptions } from '../main.js';
|
|
5
8
|
export default class MessageUtil extends Util {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
private readonly message;
|
|
10
|
+
parsed: {
|
|
11
|
+
alias: null | string;
|
|
12
|
+
prefix: null | string;
|
|
13
|
+
};
|
|
14
|
+
constructor(client: XernerxClient, message: XernerxMessage);
|
|
15
|
+
send(content: any): Promise<import('discord.js').Message<false> | import('discord.js').Message<true> | null>;
|
|
16
|
+
reply(content: string | MessagePayload | MessageReplyOptions | MessageEditOptions): Promise<import('discord.js').Message<boolean> | null>;
|
|
17
|
+
webhookReply(content: MessagePayload, url?: URL, user?: User): Promise<void>;
|
|
18
|
+
paginator(embeds: Array<EmbedBuilder>, options?: PaginatorOptions): Promise<void | import('discord.js').Message<false> | import('discord.js').Message<true> | null>;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=MessageUtil.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageUtil.d.ts","sourceRoot":"","sources":["../../src/utils/MessageUtil.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageUtil.d.ts","sourceRoot":"","sources":["../../src/utils/MessageUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,YAAY,EAEZ,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EAInB,IAAI,EACP,MAAM,YAAY,CAAC;AAEpB,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,IAAI;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAEV,MAAM,EAAE;QACnB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;QACrB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;KACzB,CAAC;gBAEU,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc;IAW7C,IAAI,CAAC,OAAO,EAAE,GAAG;IAoBjB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,mBAAmB,GAAG,kBAAkB;IAoBjF,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI;IAuB5D,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,GAAE,gBAAqB;CAkGrF"}
|
|
@@ -1,43 +1,137 @@
|
|
|
1
|
-
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
3
|
+
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, ChannelType, StringSelectMenuBuilder } from 'discord.js';
|
|
2
4
|
import Util from './Util.js';
|
|
3
5
|
import sendWebhook from '../functions/sendWebhook.js';
|
|
4
6
|
import XernerxError from '../tools/XernerxError.js';
|
|
5
7
|
export default class MessageUtil extends Util {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
8
|
+
message;
|
|
9
|
+
constructor(client, message) {
|
|
10
|
+
super(client);
|
|
11
|
+
this.message = message;
|
|
12
|
+
this.parsed = {
|
|
13
|
+
alias: null,
|
|
14
|
+
prefix: null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
async send(content) {
|
|
18
|
+
if (this.client.cache.messages.has(this.message.id)) {
|
|
19
|
+
const id = this.client.cache.messages.get(this.message.id);
|
|
20
|
+
if (!id) return null;
|
|
21
|
+
const msg = await this.message.channel.messages.fetch(id);
|
|
22
|
+
msg.edit(content);
|
|
23
|
+
return msg;
|
|
24
|
+
}
|
|
25
|
+
const msg = await this.message.channel.send(content);
|
|
26
|
+
this.client.cache.messages.set(this.message.id, msg.id);
|
|
27
|
+
return msg;
|
|
28
|
+
}
|
|
29
|
+
async reply(content) {
|
|
30
|
+
if (this.client.cache.messages.has(this.message.id)) {
|
|
31
|
+
const id = this.client.cache.messages.get(this.message.id);
|
|
32
|
+
if (!id) return null;
|
|
33
|
+
const msg = await this.message.channel.messages.fetch(id);
|
|
34
|
+
msg.edit(content);
|
|
35
|
+
return msg;
|
|
36
|
+
}
|
|
37
|
+
const msg = await this.message.reply(content);
|
|
38
|
+
this.client.cache.messages.set(this.message.id, msg.id);
|
|
39
|
+
return msg;
|
|
40
|
+
}
|
|
41
|
+
async webhookReply(content, url, user) {
|
|
42
|
+
if (this.message.channel.type === ChannelType.DM) throw new XernerxError(`Can't use this method in DM Channels`);
|
|
43
|
+
const channel = this.message.channel;
|
|
44
|
+
let webhook;
|
|
45
|
+
if (!url) {
|
|
46
|
+
webhook = await channel.createWebhook({
|
|
47
|
+
name: user?.username || this.client.user?.username,
|
|
48
|
+
avatar: user?.avatarURL() || this.client.user?.avatarURL(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (!webhook) webhook = { url };
|
|
52
|
+
await sendWebhook(webhook.url, content);
|
|
53
|
+
if (!url) webhook.delete();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
async paginator(embeds, options = {}) {
|
|
57
|
+
let buttonRow, menuRow;
|
|
58
|
+
if (embeds.length <= 0) throw new XernerxError(`Can't make a paginator without embeds`);
|
|
59
|
+
options = {
|
|
60
|
+
type: options.type ?? 'combined',
|
|
61
|
+
buttons: options.buttons ?? ['⏪', '◀️', '⏹️', '▶️', '⏩'],
|
|
62
|
+
description: options.description ?? false,
|
|
63
|
+
placeholder: options.placeholder ?? 'Change page',
|
|
64
|
+
index: options.index ?? 0,
|
|
65
|
+
send: options.send ?? false,
|
|
66
|
+
filter: options.filter ?? (() => true),
|
|
67
|
+
time: options.time ?? 300000,
|
|
68
|
+
};
|
|
69
|
+
if (options.type == 'button' || options.type == 'combined') {
|
|
70
|
+
if (!options.buttons) throw new XernerxError(`¯\\_(ツ)_/¯ Somehow there are no buttons? ¯\\_(ツ)_/¯`);
|
|
71
|
+
buttonRow = new ActionRowBuilder().addComponents(
|
|
72
|
+
...options.buttons.map((button, i) => new ButtonBuilder().setCustomId(`${this.message.id}-${i}`).setEmoji(button).setStyle(ButtonStyle.Primary))
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
if (options.type == 'select-menu' || options.type == 'combined') {
|
|
76
|
+
menuRow = new ActionRowBuilder().addComponents(
|
|
77
|
+
new StringSelectMenuBuilder()
|
|
78
|
+
.setCustomId(`${this.message.id}-select-menu`)
|
|
79
|
+
.setPlaceholder(options.placeholder)
|
|
80
|
+
.addOptions(...embeds.map((embed, i) => ({ label: embed.data.title || 'No Title', description: (options.description ? embed.data.description : undefined) || undefined, value: `${i}` })))
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
let index = options.index || 0;
|
|
84
|
+
return options.send
|
|
85
|
+
? await this.message.util.send({
|
|
86
|
+
embeds: [embeds[index]],
|
|
87
|
+
components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter((x) => x),
|
|
88
|
+
})
|
|
89
|
+
: await this.message.util
|
|
90
|
+
.reply({
|
|
91
|
+
embeds: [embeds[index]],
|
|
92
|
+
components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter((x) => x),
|
|
93
|
+
})
|
|
94
|
+
.then(async (msg) => {
|
|
95
|
+
const collector = this.message.channel
|
|
96
|
+
?.createMessageComponentCollector({ time: options.time })
|
|
97
|
+
.on('collect', (collect) => {
|
|
98
|
+
if (!collect.customId.startsWith(this.message.id)) return;
|
|
99
|
+
if (collect.customId.endsWith('select-menu')) {
|
|
100
|
+
index = Number(collect.values[0]);
|
|
101
|
+
collect.update({ embeds: [embeds[index]] });
|
|
102
|
+
} else {
|
|
103
|
+
const option = Number(collect.customId.split(/-/)[1]);
|
|
104
|
+
let embed = embeds[index];
|
|
105
|
+
if (option == 0) {
|
|
106
|
+
index = 0;
|
|
107
|
+
embed = embeds[index];
|
|
108
|
+
collect.update({ embeds: [embed] });
|
|
109
|
+
}
|
|
110
|
+
if (option == 1) {
|
|
111
|
+
index = embeds.indexOf(embed) >= 1 ? embeds.indexOf(embed) - 1 : 0;
|
|
112
|
+
embed = embeds[index];
|
|
113
|
+
collect.update({ embeds: [embed] });
|
|
114
|
+
}
|
|
115
|
+
if (option == 2) {
|
|
116
|
+
collect.update({ components: [] });
|
|
117
|
+
collector?.stop();
|
|
118
|
+
}
|
|
119
|
+
if (option == 3) {
|
|
120
|
+
index = embeds.indexOf(embed) < embeds.length - 1 ? embeds.indexOf(embed) + 1 : embeds.length - 1;
|
|
121
|
+
embed = embeds[index];
|
|
122
|
+
collect.update({ embeds: [embed] });
|
|
123
|
+
}
|
|
124
|
+
if (option == 4) {
|
|
125
|
+
index = embeds.length - 1;
|
|
126
|
+
embed = embeds[index];
|
|
127
|
+
collect.update({ embeds: [embed] });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
.on('end', async () => {
|
|
132
|
+
await msg?.edit({ components: [] });
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}
|
|
42
136
|
}
|
|
43
137
|
//# sourceMappingURL=MessageUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageUtil.js","sourceRoot":"","sources":["../../src/utils/MessageUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyG,MAAM,YAAY,CAAC;AAIhJ,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,IAAI;IACxB,OAAO,CAAC;IAOzB,YAAY,MAAqB,EAAE,OAAuB;QACtD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACf,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAA2E;QAC1F,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YAErB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE1D,GAAG,CAAC,IAAI,CAAC,OAA6B,CAAC,CAAC;YAExC,OAAO,GAAG,CAAC;SACd;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAA8B,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAExD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAuB,EAAE,GAAS,EAAE,IAAW;QACrE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE;YAAE,MAAM,IAAI,YAAY,CAAC,sCAAsC,CAAC,CAAC;QAEjH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAmD,CAAC;QAEjF,IAAI,OAAO,CAAC;QAEZ,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;gBAClC,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAmB;gBAC9D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE;aAC7D,CAAC,CAAC;SACN;QAED,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;QAEhC,MAAM,WAAW,CAAC,OAAO,CAAC,GAAU,EAAE,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,GAAG;YAAG,OAAsC,CAAC,MAAM,EAAE,CAAC;QAE3D,OAAO;IACX,CAAC;CACJ","sourcesContent":["import { ChannelType, ForumChannel, MessageEditOptions, MessagePayload, MessageReplyOptions, NewsChannel, TextChannel, User } from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { XernerxMessage } from '../types/extenders.js';\nimport Util from './Util.js';\nimport sendWebhook from '../functions/sendWebhook.js';\nimport XernerxError from '../tools/XernerxError.js';\n\nexport default class MessageUtil extends Util {\n private readonly message;\n\n public declare parsed: {\n alias: null | string;\n prefix: null | string;\n };\n\n constructor(client: XernerxClient, message: XernerxMessage) {\n super(client);\n\n this.message = message;\n\n this.parsed = {\n alias: null,\n prefix: null,\n };\n }\n\n public async reply(content: string | MessagePayload | MessageReplyOptions | MessageEditOptions) {\n if (this.client.cache.messages.has(this.message.id)) {\n const id = this.client.cache.messages.get(this.message.id);\n\n if (!id) return null;\n\n const msg = await this.message.channel.messages.fetch(id);\n\n msg.edit(content as MessageEditOptions);\n\n return msg;\n }\n\n const msg = await this.message.reply(content as MessageReplyOptions);\n\n this.client.cache.messages.set(this.message.id, msg.id);\n\n return msg;\n }\n\n public async webhookReply(content: MessagePayload, url?: URL, user?: User) {\n if (this.message.channel.type === ChannelType.DM) throw new XernerxError(`Can't use this method in DM Channels`);\n\n const channel = this.message.channel as TextChannel | NewsChannel | ForumChannel;\n\n let webhook;\n\n if (!url) {\n webhook = await channel.createWebhook({\n name: user?.username || (this.client.user?.username as string),\n avatar: user?.avatarURL() || this.client.user?.avatarURL(),\n });\n }\n\n if (!webhook) webhook = { url };\n\n await sendWebhook(webhook.url as URL, content);\n\n if (!url) (webhook as Record<'delete', Function>).delete();\n\n return;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MessageUtil.js","sourceRoot":"","sources":["../../src/utils/MessageUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionRowBuilder,\n ButtonBuilder,\n ButtonStyle,\n ChannelType,\n EmbedBuilder,\n ForumChannel,\n MessageEditOptions,\n MessagePayload,\n MessageReplyOptions,\n NewsChannel,\n StringSelectMenuBuilder,\n TextChannel,\n User,\n} from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { XernerxMessage } from '../types/extenders.js';\nimport Util from './Util.js';\nimport sendWebhook from '../functions/sendWebhook.js';\nimport XernerxError from '../tools/XernerxError.js';\nimport { PaginatorOptions } from '../main.js';\n\nexport default class MessageUtil extends Util {\n private readonly message;\n\n public declare parsed: {\n alias: null | string;\n prefix: null | string;\n };\n\n constructor(client: XernerxClient, message: XernerxMessage) {\n super(client);\n\n this.message = message;\n\n this.parsed = {\n alias: null,\n prefix: null,\n };\n }\n\n public async send(content: any) {\n if (this.client.cache.messages.has(this.message.id)) {\n const id = this.client.cache.messages.get(this.message.id);\n\n if (!id) return null;\n\n const msg = await this.message.channel.messages.fetch(id);\n\n msg.edit(content as MessageEditOptions);\n\n return msg;\n }\n\n const msg = await this.message.channel.send(content as MessageReplyOptions);\n\n this.client.cache.messages.set(this.message.id, msg.id);\n\n return msg;\n }\n\n public async reply(content: string | MessagePayload | MessageReplyOptions | MessageEditOptions) {\n if (this.client.cache.messages.has(this.message.id)) {\n const id = this.client.cache.messages.get(this.message.id);\n\n if (!id) return null;\n\n const msg = await this.message.channel.messages.fetch(id);\n\n msg.edit(content as MessageEditOptions);\n\n return msg;\n }\n\n const msg = await this.message.reply(content as MessageReplyOptions);\n\n this.client.cache.messages.set(this.message.id, msg.id);\n\n return msg;\n }\n\n public async webhookReply(content: MessagePayload, url?: URL, user?: User) {\n if (this.message.channel.type === ChannelType.DM) throw new XernerxError(`Can't use this method in DM Channels`);\n\n const channel = this.message.channel as TextChannel | NewsChannel | ForumChannel;\n\n let webhook;\n\n if (!url) {\n webhook = await channel.createWebhook({\n name: user?.username || (this.client.user?.username as string),\n avatar: user?.avatarURL() || this.client.user?.avatarURL(),\n });\n }\n\n if (!webhook) webhook = { url };\n\n await sendWebhook(webhook.url as URL, content);\n\n if (!url) (webhook as Record<'delete', Function>).delete();\n\n return;\n }\n\n public async paginator(embeds: Array<EmbedBuilder>, options: PaginatorOptions = {}) {\n let buttonRow, menuRow;\n\n if (embeds.length <= 0) throw new XernerxError(`Can't make a paginator without embeds`);\n\n options = {\n type: options.type ?? 'combined',\n buttons: options.buttons ?? ['⏪', '◀️', '⏹️', '▶️', '⏩'],\n description: options.description ?? false,\n placeholder: options.placeholder ?? 'Change page',\n index: options.index ?? 0,\n send: options.send ?? false,\n filter: options.filter ?? (() => true),\n time: options.time ?? 300000,\n };\n\n if (options.type == 'button' || options.type == 'combined') {\n if (!options.buttons) throw new XernerxError(`¯\\\\_(ツ)_/¯ Somehow there are no buttons? ¯\\\\_(ツ)_/¯`);\n\n buttonRow = new ActionRowBuilder().addComponents(\n ...options.buttons.map((button, i) => new ButtonBuilder().setCustomId(`${this.message.id}-${i}`).setEmoji(button).setStyle(ButtonStyle.Primary))\n );\n }\n\n if (options.type == 'select-menu' || options.type == 'combined') {\n menuRow = new ActionRowBuilder().addComponents(\n new StringSelectMenuBuilder()\n .setCustomId(`${this.message.id}-select-menu`)\n .setPlaceholder(options.placeholder as string)\n .addOptions(\n ...embeds.map((embed, i) => ({ label: embed.data.title || 'No Title', description: (options.description ? embed.data.description : undefined) || undefined, value: `${i}` }))\n )\n );\n }\n\n let index = options.index || 0;\n\n return options.send\n ? await this.message.util.send({\n embeds: [embeds[index]],\n components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter(\n (x) => x\n ),\n } as never)\n : await this.message.util\n .reply({\n embeds: [embeds[index]],\n components: [options.type == 'combined' || options.type == 'button' ? buttonRow : null, options.type == 'combined' || options.type == 'select-menu' ? menuRow : null].filter(\n (x) => x\n ),\n } as never)\n .then(async (msg) => {\n const collector = this.message.channel\n ?.createMessageComponentCollector({ time: options.time })\n\n .on('collect', (collect) => {\n if (!collect.customId.startsWith(this.message.id)) return;\n\n if (collect.customId.endsWith('select-menu')) {\n index = Number((collect as unknown as Record<string, Array<string>>).values[0]);\n\n collect.update({ embeds: [embeds[index]] });\n } else {\n const option = Number(collect.customId.split(/-/)[1]);\n\n let embed = embeds[index];\n\n if (option == 0) {\n index = 0;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 1) {\n index = embeds.indexOf(embed) >= 1 ? embeds.indexOf(embed) - 1 : 0;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 2) {\n collect.update({ components: [] });\n collector?.stop();\n }\n if (option == 3) {\n index = embeds.indexOf(embed) < embeds.length - 1 ? embeds.indexOf(embed) + 1 : embeds.length - 1;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n if (option == 4) {\n index = embeds.length - 1;\n embed = embeds[index];\n collect.update({ embeds: [embed] });\n }\n }\n })\n .on('end', async () => {\n await msg?.edit({ components: [] });\n });\n });\n }\n}\n"]}
|
package/dist/utils/Util.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
import XernerxClient from '../client/XernerxClient.js';
|
|
2
4
|
export default class Util {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
client: XernerxClient<unknown>;
|
|
6
|
+
constructor(client: XernerxClient);
|
|
7
|
+
delay(time: number): Promise<unknown>;
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=Util.d.ts.map
|
package/dist/utils/Util.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
export default class Util {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
client;
|
|
5
|
+
constructor(client) {
|
|
6
|
+
this.client = client;
|
|
7
|
+
}
|
|
8
|
+
async delay(time) {
|
|
9
|
+
return await new Promise((resolve) => setTimeout(resolve, time));
|
|
10
|
+
}
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=Util.js.map
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
import XernerxContextCommand from '../build/XernerxContextCommand.js';
|
|
2
4
|
import MessageCommandBuilder from '../build/XernerxMessageCommand.js';
|
|
3
5
|
import XernerxSlashCommand from '../build/XernerxSlashCommand.js';
|
|
4
6
|
import { XernerxMessage, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';
|
|
5
7
|
import { XernerxInteraction } from '../types/types.js';
|
|
6
8
|
export default function commandValidation(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
event: XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxUserContextInteraction> | XernerxMessage,
|
|
10
|
+
command: MessageCommandBuilder | XernerxSlashCommand | XernerxContextCommand
|
|
9
11
|
): Promise<boolean>;
|
|
10
12
|
//# sourceMappingURL=commandValidation.d.ts.map
|
|
@@ -1,50 +1,52 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
import { ChannelType, PermissionFlagsBits } from 'discord.js';
|
|
2
4
|
export default async function commandValidation(event, command) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
5
|
+
const client = event.client;
|
|
6
|
+
if (command.ignore?.owner && client.settings.ownerId.includes(event.user.id)) return false;
|
|
7
|
+
if (!client.cache.cooldowns.has(`${event.user.id}-${command.name}`)) {
|
|
8
|
+
client.cache.cooldowns.set(`${event.user.id}-${command.name}`, {
|
|
9
|
+
id: event.user.id,
|
|
10
|
+
command: command.name,
|
|
11
|
+
createdTimestamp: Number(Date.now()) + (command.cooldown || 0),
|
|
12
|
+
});
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
client.cache.cooldowns.delete(`${event.user.id}-${command.name}`);
|
|
15
|
+
}, command.cooldown || 0);
|
|
16
|
+
} else {
|
|
17
|
+
const user = client.cache.cooldowns.get(`${event.user.id}-${command.name}`);
|
|
18
|
+
const time = (user?.createdTimestamp || 0) - Number(Date.now());
|
|
19
|
+
return emit(event, `Command on cooldown, ${time}`);
|
|
20
|
+
}
|
|
21
|
+
if ((command.ignore?.channels?.length || 0) > 0 && command.ignore?.channels?.includes(event.channel?.id)) return true;
|
|
22
|
+
if ((command.ignore?.guilds?.length || 0) > 0 && command.ignore?.guilds?.includes(event.guild?.id)) return true;
|
|
23
|
+
if ((command.ignore?.users?.length || 0) > 0 && command.ignore?.users?.includes(event.user.id)) return true;
|
|
24
|
+
if (command.strict?.owner && !client.settings.ownerId.includes(event.user.id)) return await emit(event, 'Command is a developer command');
|
|
25
|
+
if ((command.strict?.channels?.length || 0) > 0 && !command.strict?.channels?.includes(event.channel?.id)) return await emit(event, 'Command cannot be ran in this channel');
|
|
26
|
+
if ((command.strict?.guilds?.length || 0) > 0 && !command.strict?.guilds?.includes(event.guild?.id)) return await emit(event, 'Command cannot be ran in this guild');
|
|
27
|
+
if ((command.strict?.users?.length || 0) > 0 && !command.strict?.users?.includes(event.user.id)) return await emit(event, 'Command cannot be ran by you');
|
|
28
|
+
if (command.permissions?.dm == false && event.channel?.type === ChannelType.DM) return await emit(event, "Can't use in a DM Channel");
|
|
29
|
+
if (command.permissions?.user) {
|
|
30
|
+
if (!(event.member?.permissions).has(toBigInt(command.permissions.user))) return await emit(event, 'Missing User Permissions');
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
31
33
|
}
|
|
32
34
|
async function emit(event, reason) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
event.client.emit('commandBlock', event, reason);
|
|
36
|
+
return true;
|
|
35
37
|
}
|
|
36
38
|
function toBigInt(permissions) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
let bigIntPermissions = 0n;
|
|
40
|
+
permissions.map((permission) => {
|
|
41
|
+
permission =
|
|
42
|
+
PermissionFlagsBits[
|
|
43
|
+
permission
|
|
44
|
+
.split(/ +/)
|
|
45
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
46
|
+
.join('')
|
|
47
|
+
];
|
|
48
|
+
if (typeof permission === 'bigint') bigIntPermissions += permission;
|
|
49
|
+
});
|
|
50
|
+
return bigIntPermissions;
|
|
49
51
|
}
|
|
50
52
|
//# sourceMappingURL=commandValidation.js.map
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
import { XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';
|
|
2
4
|
import { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';
|
|
3
5
|
import { InhibitorType, XernerxInteraction } from '../types/types.js';
|
|
4
6
|
export declare function inhibitorValidation(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
|
|
8
|
+
cmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand
|
|
7
9
|
): Promise<boolean>;
|
|
8
10
|
export declare function inhibitorArguments(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
|
|
12
|
+
cmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null,
|
|
13
|
+
type: InhibitorType
|
|
12
14
|
):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
| import('../main.js').XernerxUser
|
|
16
|
+
| import('discord.js').Guild
|
|
17
|
+
| import('discord.js').GuildMember
|
|
18
|
+
| import('discord.js').TextBasedChannel
|
|
19
|
+
| XernerxSlashCommand
|
|
20
|
+
| XernerxContextCommand
|
|
21
|
+
| XernerxMessageCommand
|
|
22
|
+
| import('../main.js').APIInteractionGuildMember
|
|
23
|
+
| null;
|
|
22
24
|
//# sourceMappingURL=inhibitorValidations.d.ts.map
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
|
|
1
3
|
export async function inhibitorValidation(event, cmd) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const client = event.client;
|
|
5
|
+
const inhibits = [];
|
|
6
|
+
for (const [name, inhibitor] of client.inhibitors) {
|
|
7
|
+
if (Boolean(await inhibitor.check(event, await inhibitorArguments(event, cmd || null, inhibitor.type)))) {
|
|
8
|
+
inhibits.push(name);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return !!inhibits.length;
|
|
10
12
|
}
|
|
11
13
|
export function inhibitorArguments(event, cmd, type) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
switch (type) {
|
|
15
|
+
case 'channel':
|
|
16
|
+
return event.channel || null;
|
|
17
|
+
case 'command':
|
|
18
|
+
return cmd;
|
|
19
|
+
case 'contextCommand':
|
|
20
|
+
return cmd;
|
|
21
|
+
case 'guild':
|
|
22
|
+
return event.guild || null;
|
|
23
|
+
case 'interaction':
|
|
24
|
+
return null;
|
|
25
|
+
case 'member':
|
|
26
|
+
return event.member || null;
|
|
27
|
+
case 'message':
|
|
28
|
+
return null;
|
|
29
|
+
case 'messageCommand':
|
|
30
|
+
return cmd;
|
|
31
|
+
case 'slashCommand':
|
|
32
|
+
return cmd;
|
|
33
|
+
case 'user':
|
|
34
|
+
return event.user;
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
//# sourceMappingURL=inhibitorValidations.js.map
|
package/package.json
CHANGED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ContextMenuCommandBuilder } from 'discord.js';
|
|
2
|
-
import XernerxClient from '../client/XernerxClient.js';
|
|
3
|
-
import { XernerxMessageContextInteraction, XernerxUserContextInteraction } from '../types/extenders.js';
|
|
4
|
-
import { ContextCommandArguments, ContextCommandOptions } from '../types/interfaces.js';
|
|
5
|
-
export default class ContextCommandBuilder {
|
|
6
|
-
readonly id: string;
|
|
7
|
-
readonly data: ContextMenuCommandBuilder;
|
|
8
|
-
readonly name: string;
|
|
9
|
-
readonly type: 'user' | 'message';
|
|
10
|
-
readonly description: string | null | undefined;
|
|
11
|
-
readonly usage: string | null | undefined;
|
|
12
|
-
readonly info: string | null | undefined;
|
|
13
|
-
readonly category: string | null | undefined;
|
|
14
|
-
readonly cooldown: number | null | undefined;
|
|
15
|
-
readonly ignore:
|
|
16
|
-
| {
|
|
17
|
-
owner?: boolean | undefined;
|
|
18
|
-
users?: string[] | undefined;
|
|
19
|
-
channels?: string[] | undefined;
|
|
20
|
-
guilds?: string[] | undefined;
|
|
21
|
-
}
|
|
22
|
-
| undefined;
|
|
23
|
-
readonly strict:
|
|
24
|
-
| {
|
|
25
|
-
owner?: boolean | undefined;
|
|
26
|
-
users?: string[] | undefined;
|
|
27
|
-
channels?: string[] | undefined;
|
|
28
|
-
guilds?: string[] | undefined;
|
|
29
|
-
}
|
|
30
|
-
| undefined;
|
|
31
|
-
readonly permissions:
|
|
32
|
-
| {
|
|
33
|
-
user?: string[] | import('../main.js').PermissionNames[] | undefined;
|
|
34
|
-
client?: string[] | import('../main.js').PermissionNames[] | undefined;
|
|
35
|
-
dm?: boolean | undefined;
|
|
36
|
-
}
|
|
37
|
-
| undefined;
|
|
38
|
-
readonly defer:
|
|
39
|
-
| {
|
|
40
|
-
reply?: boolean | undefined;
|
|
41
|
-
ephemeral?: boolean | undefined;
|
|
42
|
-
fetchReply?: boolean | undefined;
|
|
43
|
-
}
|
|
44
|
-
| undefined;
|
|
45
|
-
readonly fileType: 'ContextCommand';
|
|
46
|
-
readonly filePath: string;
|
|
47
|
-
readonly client: typeof XernerxClient;
|
|
48
|
-
constructor(id: string, options: ContextCommandOptions);
|
|
49
|
-
exec<T>(interaction: XernerxUserContextInteraction | XernerxMessageContextInteraction, args: ContextCommandArguments<'user' | 'message'>): Promise<void | any | T>;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=ContextCommandBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContextCommandBuilder.d.ts","sourceRoot":"","sources":["../../src/build/ContextCommandBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAExF,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACtC,SAAwB,EAAE,SAAC;IAC3B,SAAwB,IAAI,4BAAC;IAC7B,SAAwB,IAAI,SAAC;IAC7B,SAAwB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,SAAwB,WAAW,4BAAC;IACpC,SAAwB,KAAK,4BAAC;IAC9B,SAAwB,IAAI,4BAAC;IAC7B,SAAwB,QAAQ,4BAAC;IACjC,SAAwB,QAAQ,4BAAC;IACjC,SAAwB,MAAM;;;;;kBAAC;IAC/B,SAAwB,MAAM;;;;;kBAAC;IAC/B,SAAwB,WAAW;;;;kBAAC;IACpC,SAAwB,KAAK;;;;kBAAC;IAC9B,SAAwB,QAAQ,EAAE,gBAAgB,CAAC;IACnD,SAAwB,QAAQ,EAAE,MAAM,CAAC;IACzC,SAAwB,MAAM,uBAAC;gBAEZ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;IAgFhD,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,6BAA6B,GAAG,gCAAgC,EAAE,IAAI,EAAE,uBAAuB,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;CAClL"}
|