xernerx 4.5.6 → 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.
Files changed (73) hide show
  1. package/dist/build/XernerxContextCommand.d.ts +46 -44
  2. package/dist/build/XernerxContextCommand.js +64 -62
  3. package/dist/build/XernerxEvent.d.ts +16 -14
  4. package/dist/build/XernerxEvent.js +21 -19
  5. package/dist/build/XernerxInhibitor.d.ts +19 -17
  6. package/dist/build/XernerxInhibitor.js +13 -11
  7. package/dist/build/XernerxMessageCommand.d.ts +44 -42
  8. package/dist/build/XernerxMessageCommand.js +58 -56
  9. package/dist/build/XernerxSlashCommand.d.ts +56 -54
  10. package/dist/build/XernerxSlashCommand.js +110 -108
  11. package/dist/client/XernerxClient.d.ts +46 -44
  12. package/dist/client/XernerxClient.js +75 -73
  13. package/dist/client/XernerxShardClient.d.ts +12 -10
  14. package/dist/client/XernerxShardClient.js +50 -48
  15. package/dist/functions/deploy.d.ts +2 -0
  16. package/dist/functions/deploy.js +32 -30
  17. package/dist/functions/load.d.ts +2 -0
  18. package/dist/functions/load.js +29 -27
  19. package/dist/functions/reload.d.ts +2 -0
  20. package/dist/functions/reload.js +36 -34
  21. package/dist/functions/sendWebhook.d.ts +2 -0
  22. package/dist/functions/sendWebhook.js +12 -10
  23. package/dist/functions/setPresence.d.ts +2 -0
  24. package/dist/functions/setPresence.js +19 -17
  25. package/dist/functions/xernerxUser.d.ts +2 -0
  26. package/dist/functions/xernerxUser.js +10 -8
  27. package/dist/handlers/CommandHandler.d.ts +10 -8
  28. package/dist/handlers/CommandHandler.js +241 -239
  29. package/dist/handlers/EventHandler.d.ts +4 -2
  30. package/dist/handlers/EventHandler.js +20 -18
  31. package/dist/handlers/ExtensionHandler.d.ts +4 -2
  32. package/dist/handlers/ExtensionHandler.js +19 -17
  33. package/dist/handlers/Handler.d.ts +9 -7
  34. package/dist/handlers/Handler.js +33 -31
  35. package/dist/handlers/InhibitorHandler.d.ts +4 -2
  36. package/dist/handlers/InhibitorHandler.js +20 -18
  37. package/dist/handlers/WebhookHandler.d.ts +5 -3
  38. package/dist/handlers/WebhookHandler.js +48 -46
  39. package/dist/main.d.ts +28 -26
  40. package/dist/main.js +28 -26
  41. package/dist/models/Arguments.d.ts +4 -2
  42. package/dist/models/Arguments.js +136 -134
  43. package/dist/tools/XernerxError.d.ts +6 -4
  44. package/dist/tools/XernerxError.js +10 -8
  45. package/dist/tools/XernerxLog.d.ts +14 -12
  46. package/dist/tools/XernerxLog.js +77 -80
  47. package/dist/types/extenders.d.ts +13 -11
  48. package/dist/types/extenders.js +2 -0
  49. package/dist/types/interfaces.d.ts +184 -172
  50. package/dist/types/interfaces.d.ts.map +1 -1
  51. package/dist/types/interfaces.js +2 -0
  52. package/dist/types/interfaces.js.map +1 -1
  53. package/dist/types/types.d.ts +173 -171
  54. package/dist/types/types.js +2 -0
  55. package/dist/utils/ClientUtil.d.ts +8 -5
  56. package/dist/utils/ClientUtil.d.ts.map +1 -1
  57. package/dist/utils/ClientUtil.js +45 -26
  58. package/dist/utils/ClientUtil.js.map +1 -1
  59. package/dist/utils/InteractionUtil.d.ts +11 -5
  60. package/dist/utils/InteractionUtil.d.ts.map +1 -1
  61. package/dist/utils/InteractionUtil.js +98 -8
  62. package/dist/utils/InteractionUtil.js.map +1 -1
  63. package/dist/utils/MessageUtil.d.ts +14 -9
  64. package/dist/utils/MessageUtil.d.ts.map +1 -1
  65. package/dist/utils/MessageUtil.js +131 -37
  66. package/dist/utils/MessageUtil.js.map +1 -1
  67. package/dist/utils/Util.d.ts +5 -3
  68. package/dist/utils/Util.js +9 -7
  69. package/dist/validators/commandValidation.d.ts +4 -2
  70. package/dist/validators/commandValidation.js +44 -42
  71. package/dist/validators/inhibitorValidations.d.ts +16 -14
  72. package/dist/validators/inhibitorValidations.js +32 -30
  73. package/package.json +1 -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
- import { MessageEditOptions, MessagePayload, MessageReplyOptions, User } from 'discord.js';
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
- private readonly message;
7
- parsed: {
8
- alias: null | string;
9
- prefix: null | string;
10
- };
11
- constructor(client: XernerxClient, message: XernerxMessage);
12
- reply(content: string | MessagePayload | MessageReplyOptions | MessageEditOptions): Promise<import('discord.js').Message<boolean> | null>;
13
- webhookReply(content: MessagePayload, url?: URL, user?: User): Promise<void>;
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,EAA6B,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,EAA4B,IAAI,EAAE,MAAM,YAAY,CAAC;AAEhJ,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,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,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;CAsB5E"}
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
- import { ChannelType } from 'discord.js';
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
- message;
7
- constructor(client, message) {
8
- super(client);
9
- this.message = message;
10
- this.parsed = {
11
- alias: null,
12
- prefix: null,
13
- };
14
- }
15
- async reply(content) {
16
- if (this.client.cache.messages.has(this.message.id)) {
17
- const id = this.client.cache.messages.get(this.message.id);
18
- if (!id) return null;
19
- const msg = await this.message.channel.messages.fetch(id);
20
- msg.edit(content);
21
- return msg;
22
- }
23
- const msg = await this.message.reply(content);
24
- this.client.cache.messages.set(this.message.id, msg.id);
25
- return msg;
26
- }
27
- async webhookReply(content, url, user) {
28
- if (this.message.channel.type === ChannelType.DM) throw new XernerxError(`Can't use this method in DM Channels`);
29
- const channel = this.message.channel;
30
- let webhook;
31
- if (!url) {
32
- webhook = await channel.createWebhook({
33
- name: user?.username || this.client.user?.username,
34
- avatar: user?.avatarURL() || this.client.user?.avatarURL(),
35
- });
36
- }
37
- if (!webhook) webhook = { url };
38
- await sendWebhook(webhook.url, content);
39
- if (!url) webhook.delete();
40
- return;
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":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,WAAW,EAOX,uBAAuB,GAG1B,MAAM,YAAY,CAAC;AAIpB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAGpD,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,IAAI,CAAC,OAAY;QAC1B,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,OAAO,CAAC,IAAI,CAAC,OAA8B,CAAC,CAAC;QAE5E,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,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;IAEM,KAAK,CAAC,SAAS,CAAC,MAA2B,EAAE,UAA4B,EAAE;QAC9E,IAAI,SAAS,EAAE,OAAO,CAAC;QAEvB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,uCAAuC,CAAC,CAAC;QAExF,OAAO,GAAG;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;YACxD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;YACzC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa;YACjD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACtC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM;SAC/B,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,MAAM,IAAI,YAAY,CAAC,qDAAqD,CAAC,CAAC;YAEpG,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC5C,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CACnJ,CAAC;SACL;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,aAAa,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,EAAE;YAC7D,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1C,IAAI,uBAAuB,EAAE;iBACxB,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;iBAC7C,cAAc,CAAC,OAAO,CAAC,WAAqB,CAAC;iBAC7C,UAAU,CACP,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAChL,CACR,CAAC;SACL;QAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAE/B,OAAO,OAAO,CAAC,IAAI;YACf,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CACxK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACX;aACK,CAAC;YACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI;iBAClB,KAAK,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CACxK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACX;aACK,CAAC;iBACV,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;oBAClC,EAAE,+BAA+B,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;qBAExD,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAAE,OAAO;oBAE1D,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;wBAC1C,KAAK,GAAG,MAAM,CAAE,OAAoD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEhF,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC/C;yBAAM;wBACH,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAEtD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAE1B,IAAI,MAAM,IAAI,CAAC,EAAE;4BACb,KAAK,GAAG,CAAC,CAAC;4BACV,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBACvC;wBACD,IAAI,MAAM,IAAI,CAAC,EAAE;4BACb,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACnE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBACvC;wBACD,IAAI,MAAM,IAAI,CAAC,EAAE;4BACb,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;4BACnC,SAAS,EAAE,IAAI,EAAE,CAAC;yBACrB;wBACD,IAAI,MAAM,IAAI,CAAC,EAAE;4BACb,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;4BAClG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBACvC;wBACD,IAAI,MAAM,IAAI,CAAC,EAAE;4BACb,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;4BAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BACtB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBACvC;qBACJ;gBACL,CAAC,CAAC;qBACD,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,GAAG,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;IACjB,CAAC;CACJ","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"]}
@@ -1,7 +1,9 @@
1
+ /** @format */
2
+
1
3
  import XernerxClient from '../client/XernerxClient.js';
2
4
  export default class Util {
3
- client: XernerxClient<unknown>;
4
- constructor(client: XernerxClient);
5
- delay(time: number): Promise<unknown>;
5
+ client: XernerxClient<unknown>;
6
+ constructor(client: XernerxClient);
7
+ delay(time: number): Promise<unknown>;
6
8
  }
7
9
  //# sourceMappingURL=Util.d.ts.map
@@ -1,10 +1,12 @@
1
+ /** @format */
2
+
1
3
  export default class Util {
2
- client;
3
- constructor(client) {
4
- this.client = client;
5
- }
6
- async delay(time) {
7
- return await new Promise((resolve) => setTimeout(resolve, time));
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
- event: XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxUserContextInteraction> | XernerxMessage,
8
- command: MessageCommandBuilder | XernerxSlashCommand | XernerxContextCommand
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
- const client = event.client;
4
- if (command.ignore?.owner && client.settings.ownerId.includes(event.user.id)) return false;
5
- if (!client.cache.cooldowns.has(`${event.user.id}-${command.name}`)) {
6
- client.cache.cooldowns.set(`${event.user.id}-${command.name}`, {
7
- id: event.user.id,
8
- command: command.name,
9
- createdTimestamp: Number(Date.now()) + (command.cooldown || 0),
10
- });
11
- setTimeout(() => {
12
- client.cache.cooldowns.delete(`${event.user.id}-${command.name}`);
13
- }, command.cooldown || 0);
14
- } else {
15
- const user = client.cache.cooldowns.get(`${event.user.id}-${command.name}`);
16
- const time = (user?.createdTimestamp || 0) - Number(Date.now());
17
- return emit(event, `Command on cooldown, ${time}`);
18
- }
19
- if ((command.ignore?.channels?.length || 0) > 0 && command.ignore?.channels?.includes(event.channel?.id)) return true;
20
- if ((command.ignore?.guilds?.length || 0) > 0 && command.ignore?.guilds?.includes(event.guild?.id)) return true;
21
- if ((command.ignore?.users?.length || 0) > 0 && command.ignore?.users?.includes(event.user.id)) return true;
22
- if (command.strict?.owner && !client.settings.ownerId.includes(event.user.id)) return await emit(event, 'Command is a developer command');
23
- 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');
24
- 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');
25
- if ((command.strict?.users?.length || 0) > 0 && !command.strict?.users?.includes(event.user.id)) return await emit(event, 'Command cannot be ran by you');
26
- if (command.permissions?.dm == false && event.channel?.type === ChannelType.DM) return await emit(event, "Can't use in a DM Channel");
27
- if (command.permissions?.user) {
28
- if (!(event.member?.permissions).has(toBigInt(command.permissions.user))) return await emit(event, 'Missing User Permissions');
29
- }
30
- return false;
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
- event.client.emit('commandBlock', event, reason);
34
- return true;
35
+ event.client.emit('commandBlock', event, reason);
36
+ return true;
35
37
  }
36
38
  function toBigInt(permissions) {
37
- let bigIntPermissions = 0n;
38
- permissions.map((permission) => {
39
- permission =
40
- PermissionFlagsBits[
41
- permission
42
- .split(/ +/)
43
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
44
- .join('')
45
- ];
46
- if (typeof permission === 'bigint') bigIntPermissions += permission;
47
- });
48
- return bigIntPermissions;
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
- event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
6
- cmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand
7
+ event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
8
+ cmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand
7
9
  ): Promise<boolean>;
8
10
  export declare function inhibitorArguments(
9
- event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
10
- cmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null,
11
- type: InhibitorType
11
+ event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,
12
+ cmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null,
13
+ type: InhibitorType
12
14
  ):
13
- | import('../main.js').XernerxUser
14
- | import('discord.js').Guild
15
- | import('discord.js').GuildMember
16
- | import('discord.js').TextBasedChannel
17
- | XernerxSlashCommand
18
- | XernerxContextCommand
19
- | XernerxMessageCommand
20
- | import('../main.js').APIInteractionGuildMember
21
- | null;
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
- const client = event.client;
3
- const inhibits = [];
4
- for (const [name, inhibitor] of client.inhibitors) {
5
- if (Boolean(await inhibitor.check(event, await inhibitorArguments(event, cmd || null, inhibitor.type)))) {
6
- inhibits.push(name);
7
- }
8
- }
9
- return !!inhibits.length;
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
- switch (type) {
13
- case 'channel':
14
- return event.channel || null;
15
- case 'command':
16
- return cmd;
17
- case 'contextCommand':
18
- return cmd;
19
- case 'guild':
20
- return event.guild || null;
21
- case 'interaction':
22
- return null;
23
- case 'member':
24
- return event.member || null;
25
- case 'message':
26
- return null;
27
- case 'messageCommand':
28
- return cmd;
29
- case 'slashCommand':
30
- return cmd;
31
- case 'user':
32
- return event.user;
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,6 +1,6 @@
1
1
  {
2
2
  "name": "xernerx",
3
- "version": "4.5.6",
3
+ "version": "4.5.7",
4
4
  "description": "A bot framework for discord.js.",
5
5
  "main": "dist/main.js",
6
6
  "type": "module",