xernerx 4.5.26 → 4.5.28

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.
@@ -1,7 +1,8 @@
1
1
  /** @format */
2
- import { XernerxInhibitorOptions, MessageCommandArguments, SlashCommandArguments } from '../types/interfaces.js';
2
+ import { XernerxInhibitorOptions, MessageCommandArguments, SlashCommandArguments, ContextCommandArguments } from '../types/interfaces.js';
3
3
  import { InhibitorType, XernerxInteraction } from '../types/types.js';
4
4
  import { XernerxClientType, XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';
5
+ import { XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';
5
6
  /**
6
7
  * @description - The inhibitor builder for inhibitors.
7
8
  * @param {String} id - The unique ID of the inhibitor.
@@ -20,6 +21,6 @@ export default class XernerxInhibitor {
20
21
  * @param interaction - The interaction with the inhibitor, can be message and interaction
21
22
  * @param args - The arguments parsed with this command
22
23
  */
23
- check<T extends XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>>(interaction: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>, args: (T extends XernerxMessage ? MessageCommandArguments : T extends XernerxSlashInteraction ? SlashCommandArguments : T extends XernerxUserContextInteraction ? XernerxUserContextInteraction : XernerxMessageContextInteraction) | null): Promise<any>;
24
+ check<T extends XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>>(interaction: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>, args: (T extends XernerxMessage ? MessageCommandArguments : T extends XernerxSlashInteraction ? SlashCommandArguments : T extends XernerxUserContextInteraction ? ContextCommandArguments<'user' | 'message'> : never) | null, command: XernerxSlashCommand | XernerxMessageCommand | XernerxContextCommand): Promise<any>;
24
25
  }
25
26
  //# sourceMappingURL=XernerxInhibitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XernerxInhibitor.d.ts","sourceRoot":"","sources":["../../src/build/XernerxInhibitor.ts"],"names":[],"mappings":"AAAA,cAAc;AAId,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAGpK;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,SAAwB,EAAE,SAAC;IAC3B,SAAwB,IAAI,SAAC;IAC7B,SAAwB,IAAI,EAAE,aAAa,CAAC;IAC5C,SAAwB,QAAQ,EAAE,WAAW,CAAC;IAC9C,SAAwB,QAAQ,EAAE,MAAM,CAAC;IACzC,SAAwB,MAAM,EAAE,iBAAiB,CAAC;gBAE/B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAe/D;;;;OAIG;IACU,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EAC3J,WAAW,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EAC5I,IAAI,EACD,CAAC,CAAC,SAAS,cAAc,GACvB,uBAAuB,GACvB,CAAC,SAAS,uBAAuB,GACjC,qBAAqB,GACrB,CAAC,SAAS,6BAA6B,GACvC,6BAA6B,GAC7B,gCAAgC,CAAC,GACnC,IAAI,GACL,OAAO,CAAC,GAAG,CAAC;CAKf"}
1
+ {"version":3,"file":"XernerxInhibitor.d.ts","sourceRoot":"","sources":["../../src/build/XernerxInhibitor.ts"],"names":[],"mappings":"AAAA,cAAc;AAId,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1I,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACpK,OAAO,EAAE,qBAAqB,EAAc,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE3G;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACpC,SAAwB,EAAE,SAAC;IAC3B,SAAwB,IAAI,SAAC;IAC7B,SAAwB,IAAI,EAAE,aAAa,CAAC;IAC5C,SAAwB,QAAQ,EAAE,WAAW,CAAC;IAC9C,SAAwB,QAAQ,EAAE,MAAM,CAAC;IACzC,SAAwB,MAAM,EAAE,iBAAiB,CAAC;gBAE/B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB;IAe/D;;;;OAIG;IACU,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EAC3J,WAAW,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EAC5I,IAAI,EACD,CAAC,CAAC,SAAS,cAAc,GACvB,uBAAuB,GACvB,CAAC,SAAS,uBAAuB,GACjC,qBAAqB,GACrB,CAAC,SAAS,6BAA6B,GACvC,uBAAuB,CAAC,MAAM,GAAG,SAAS,CAAC,GAC3C,KAAK,CAAC,GACR,IAAI,EACP,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,qBAAqB,GAC1E,OAAO,CAAC,GAAG,CAAC;CAKf"}
@@ -22,7 +22,7 @@ export default class XernerxInhibitor {
22
22
  * @param interaction - The interaction with the inhibitor, can be message and interaction
23
23
  * @param args - The arguments parsed with this command
24
24
  */
25
- async check(interaction, args) {
25
+ async check(interaction, args, command) {
26
26
  new XernerxLog(this.client).error(`${this.id} doesn't have a check rule.`);
27
27
  return await this.client.emit('commandError', interaction, `${this.name} doesn't have a check rule.`, this, this.filetype);
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XernerxInhibitor.js","sourceRoot":"","sources":["../../src/build/XernerxInhibitor.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAQpC,YAAmB,EAAU,EAAE,OAAgC;QAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,CAAC,CAAC,MAAM,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CACjB,WAA4I,EAC5I,IAQO;QAEP,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAE3E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5H,CAAC;CACD","sourcesContent":["/** @format */\n\nimport { z } from 'zod';\n\nimport { XernerxInhibitorOptions, MessageCommandArguments, SlashCommandArguments } from '../types/interfaces.js';\nimport { InhibitorType, XernerxInteraction } from '../types/types.js';\nimport { XernerxClientType, XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport { XernerxLog } from '../main.js';\n\n/**\n * @description - The inhibitor builder for inhibitors.\n * @param {String} id - The unique ID of the inhibitor.\n * @param {InhibitorOptions} options - The inhibitor options.\n */\nexport default class XernerxInhibitor {\n\tpublic declare readonly id;\n\tpublic declare readonly name;\n\tpublic declare readonly type: InhibitorType;\n\tpublic declare readonly filetype: 'Inhibitor';\n\tpublic declare readonly filepath: string;\n\tpublic declare readonly client: XernerxClientType;\n\n\tpublic constructor(id: string, options: XernerxInhibitorOptions) {\n\t\tthis.id = id;\n\n\t\tz.object({\n\t\t\tname: z.string(),\n\t\t\ttype: z.string(),\n\t\t}).parse(options);\n\n\t\tthis.name = options.name;\n\n\t\tthis.type = options.type;\n\n\t\tthis.client = this.client;\n\t}\n\n\t/**\n\t * @description The check rule\n\t * @param interaction - The interaction with the inhibitor, can be message and interaction\n\t * @param args - The arguments parsed with this command\n\t */\n\tpublic async check<T extends XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>>(\n\t\tinteraction: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\t\targs:\n\t\t\t| (T extends XernerxMessage\n\t\t\t\t\t? MessageCommandArguments\n\t\t\t\t\t: T extends XernerxSlashInteraction\n\t\t\t\t\t? SlashCommandArguments\n\t\t\t\t\t: T extends XernerxUserContextInteraction\n\t\t\t\t\t? XernerxUserContextInteraction\n\t\t\t\t\t: XernerxMessageContextInteraction)\n\t\t\t| null\n\t): Promise<any> {\n\t\tnew XernerxLog(this.client).error(`${this.id} doesn't have a check rule.`);\n\n\t\treturn await this.client.emit('commandError', interaction, `${this.name} doesn't have a check rule.`, this, this.filetype);\n\t}\n}\n"]}
1
+ {"version":3,"file":"XernerxInhibitor.js","sourceRoot":"","sources":["../../src/build/XernerxInhibitor.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAyB,UAAU,EAA8C,MAAM,YAAY,CAAC;AAE3G;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAQpC,YAAmB,EAAU,EAAE,OAAgC;QAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,CAAC,CAAC,MAAM,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CACjB,WAA4I,EAC5I,IAQO,EACP,OAA4E;QAE5E,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAE3E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5H,CAAC;CACD","sourcesContent":["/** @format */\n\nimport { z } from 'zod';\n\nimport { XernerxInhibitorOptions, MessageCommandArguments, SlashCommandArguments, ContextCommandArguments } from '../types/interfaces.js';\nimport { InhibitorType, XernerxInteraction } from '../types/types.js';\nimport { XernerxClientType, XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport { XernerxContextCommand, XernerxLog, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';\n\n/**\n * @description - The inhibitor builder for inhibitors.\n * @param {String} id - The unique ID of the inhibitor.\n * @param {InhibitorOptions} options - The inhibitor options.\n */\nexport default class XernerxInhibitor {\n\tpublic declare readonly id;\n\tpublic declare readonly name;\n\tpublic declare readonly type: InhibitorType;\n\tpublic declare readonly filetype: 'Inhibitor';\n\tpublic declare readonly filepath: string;\n\tpublic declare readonly client: XernerxClientType;\n\n\tpublic constructor(id: string, options: XernerxInhibitorOptions) {\n\t\tthis.id = id;\n\n\t\tz.object({\n\t\t\tname: z.string(),\n\t\t\ttype: z.string(),\n\t\t}).parse(options);\n\n\t\tthis.name = options.name;\n\n\t\tthis.type = options.type;\n\n\t\tthis.client = this.client;\n\t}\n\n\t/**\n\t * @description The check rule\n\t * @param interaction - The interaction with the inhibitor, can be message and interaction\n\t * @param args - The arguments parsed with this command\n\t */\n\tpublic async check<T extends XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>>(\n\t\tinteraction: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\t\targs:\n\t\t\t| (T extends XernerxMessage\n\t\t\t\t\t? MessageCommandArguments\n\t\t\t\t\t: T extends XernerxSlashInteraction\n\t\t\t\t\t? SlashCommandArguments\n\t\t\t\t\t: T extends XernerxUserContextInteraction\n\t\t\t\t\t? ContextCommandArguments<'user' | 'message'>\n\t\t\t\t\t: never)\n\t\t\t| null,\n\t\tcommand: XernerxSlashCommand | XernerxMessageCommand | XernerxContextCommand\n\t): Promise<any> {\n\t\tnew XernerxLog(this.client).error(`${this.id} doesn't have a check rule.`);\n\n\t\treturn await this.client.emit('commandError', interaction, `${this.name} doesn't have a check rule.`, this, this.filetype);\n\t}\n}\n"]}
@@ -13,6 +13,7 @@ export default class XernerxShardClient extends ShardingManager {
13
13
  shardCount: number;
14
14
  };
15
15
  user: ClientUser | null;
16
+ spawner: Promise<import("@discordjs/collection").Collection<number, import("discord.js").Shard>>;
16
17
  constructor(file: string, discordOptions: ShardingManagerOptions, xernerxOptions?: XernerxOptions);
17
18
  }
18
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"XernerxShardClient.d.ts","sourceRoot":"","sources":["../../src/client/XernerxShardClient.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAS,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxF,UAAU,cAAc;IACvB,GAAG,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,eAAe;IAC9D,SAAwB,KAAK;;;;MAAC;IACf,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;gBAE3B,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,CAAC,EAAE,cAAc;CA4DjG"}
1
+ {"version":3,"file":"XernerxShardClient.d.ts","sourceRoot":"","sources":["../../src/client/XernerxShardClient.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAS,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxF,UAAU,cAAc;IACvB,GAAG,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,eAAe;IAC9D,SAAwB,KAAK;;;;MAAC;IACf,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,OAAO,0FAAC;gBAEX,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,CAAC,EAAE,cAAc;CA8DjG"}
@@ -26,6 +26,7 @@ export default class XernerxShardClient extends ShardingManager {
26
26
  setTimeout(() => shard.kill(), xernerxOptions.timeout);
27
27
  });
28
28
  const spawn = this.spawn();
29
+ this.spawner = spawn;
29
30
  spawn.then(async (shards) => {
30
31
  const collector = setInterval(() => {
31
32
  const index = shards.size - 1;
@@ -1 +1 @@
1
- {"version":3,"file":"XernerxShardClient.js","sourceRoot":"","sources":["../../src/client/XernerxShardClient.ts"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport { ShardingManager, ShardingManagerOptions, Guild, ClientUser } from 'discord.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { Style } from 'dumfunctions';\n\ninterface XernerxOptions {\n\tlog?: {\n\t\tinfo?: boolean;\n\t};\n\ttimeout?: number;\n}\n\nexport default class XernerxShardClient extends ShardingManager {\n\tpublic declare readonly stats;\n\tpublic declare user: ClientUser | null;\n\n\tconstructor(file: string, discordOptions: ShardingManagerOptions, xernerxOptions?: XernerxOptions) {\n\t\tsuper(file, discordOptions);\n\n\t\tthis.stats = { guildCount: 0, userCount: 0, shardCount: 0 };\n\n\t\tthis.user = null;\n\n\t\tthis.on('shardCreate', async (shard) => {\n\t\t\tshard\n\t\t\t\t.on('ready', async () => {\n\t\t\t\t\tconst guilds = (await shard.fetchClientValue('guilds.cache')) as Array<Guild>;\n\t\t\t\t\tconst guildCount = guilds.length;\n\t\t\t\t\tconst userCount = guilds.map((guild) => guild.memberCount).length ? guilds.map((guild) => guild.memberCount).reduce((a, b) => (a += b)) : 0;\n\n\t\t\t\t\tthis.user = (await shard.fetchClientValue('user')) as ClientUser;\n\n\t\t\t\t\tthis.stats.guildCount += Number(guildCount);\n\n\t\t\t\t\tthis.stats.userCount += Number(userCount);\n\n\t\t\t\t\tthis.stats.shardCount++;\n\n\t\t\t\t\tawait new XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`Launched shard ${Style.log(String(shard.id), { color: Style.TextColor.Cyan })} for ${Style.log(this.user?.tag, { color: Style.TextColor.Blue })}!`\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.on('error', (error) => {\n\t\t\t\t\tnew XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`An error occurred in ${Style.log(String(shard.id), { color: Style.TextColor.Cyan })} for ${Style.log(String(this.user?.tag), { color: Style.TextColor.Blue })}! ${error}`\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\tif (xernerxOptions?.timeout) setTimeout(() => shard.kill(), xernerxOptions.timeout);\n\t\t});\n\n\t\tconst spawn = this.spawn();\n\n\t\tspawn.then(async (shards) => {\n\t\t\tconst collector = setInterval(() => {\n\t\t\t\tconst index = shards.size - 1;\n\n\t\t\t\tif (shards.get(index)?.ready) {\n\t\t\t\t\tnew XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`All Shards launched for ${Style.log(String(this.user?.tag), {\n\t\t\t\t\t\t\tcolor: Style.TextColor.Blue,\n\t\t\t\t\t\t})} with a total of ${Style.log(String(this.stats.shardCount), { color: Style.TextColor.Cyan })} shard${this.stats.shardCount > 1 ? 's' : ''}, watching ${Style.log(\n\t\t\t\t\t\t\tString(this.stats.guildCount),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: Style.TextColor.Cyan,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)} guild${this.stats.guildCount > 1 ? 's' : ''}, and ${Style.log(String(this.stats.userCount), { color: Style.TextColor.Cyan })} user${this.stats.userCount > 1 ? 's' : ''}!`\n\t\t\t\t\t);\n\n\t\t\t\t\tclearInterval(collector);\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t});\n\n\t\treturn this;\n\t}\n}\n"]}
1
+ {"version":3,"file":"XernerxShardClient.js","sourceRoot":"","sources":["../../src/client/XernerxShardClient.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,eAAe,EAA6C,MAAM,YAAY,CAAC;AACxF,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AASrC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,eAAe;IAK9D,YAAY,IAAY,EAAE,cAAsC,EAAE,cAA+B;QAChG,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAE5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACtC,KAAK;iBACH,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACvB,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAiB,CAAC;gBAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;gBACjC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5I,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAe,CAAC;gBAEjE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;gBAE5C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;gBAE1C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBAExB,MAAM,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAW,CAAC,CAAC,IAAI,CAC/D,kBAAkB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CACnJ,CAAC;YACH,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAW,CAAC,CAAC,IAAI,CACzD,wBAAwB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAC1K,CAAC;YACH,CAAC,CAAC,CAAC;YAEJ,IAAI,cAAc,EAAE,OAAO;gBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;gBAE9B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;oBAC7B,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAW,CAAC,CAAC,IAAI,CACzD,2BAA2B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;wBAC5D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;qBAC3B,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,CAAC,GAAG,CAClK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAC7B;wBACC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;qBAC3B,CACD,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7K,CAAC;oBAEF,aAAa,CAAC,SAAS,CAAC,CAAC;iBACzB;YACF,CAAC,EAAE,IAAI,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACb,CAAC;CACD","sourcesContent":["/** @format */\n\nimport { ShardingManager, ShardingManagerOptions, Guild, ClientUser } from 'discord.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { Style } from 'dumfunctions';\n\ninterface XernerxOptions {\n\tlog?: {\n\t\tinfo?: boolean;\n\t};\n\ttimeout?: number;\n}\n\nexport default class XernerxShardClient extends ShardingManager {\n\tpublic declare readonly stats;\n\tpublic declare user: ClientUser | null;\n\tpublic declare spawner;\n\n\tconstructor(file: string, discordOptions: ShardingManagerOptions, xernerxOptions?: XernerxOptions) {\n\t\tsuper(file, discordOptions);\n\n\t\tthis.stats = { guildCount: 0, userCount: 0, shardCount: 0 };\n\n\t\tthis.user = null;\n\n\t\tthis.on('shardCreate', async (shard) => {\n\t\t\tshard\n\t\t\t\t.on('ready', async () => {\n\t\t\t\t\tconst guilds = (await shard.fetchClientValue('guilds.cache')) as Array<Guild>;\n\t\t\t\t\tconst guildCount = guilds.length;\n\t\t\t\t\tconst userCount = guilds.map((guild) => guild.memberCount).length ? guilds.map((guild) => guild.memberCount).reduce((a, b) => (a += b)) : 0;\n\n\t\t\t\t\tthis.user = (await shard.fetchClientValue('user')) as ClientUser;\n\n\t\t\t\t\tthis.stats.guildCount += Number(guildCount);\n\n\t\t\t\t\tthis.stats.userCount += Number(userCount);\n\n\t\t\t\t\tthis.stats.shardCount++;\n\n\t\t\t\t\tawait new XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`Launched shard ${Style.log(String(shard.id), { color: Style.TextColor.Cyan })} for ${Style.log(this.user?.tag, { color: Style.TextColor.Blue })}!`\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.on('error', (error) => {\n\t\t\t\t\tnew XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`An error occurred in ${Style.log(String(shard.id), { color: Style.TextColor.Cyan })} for ${Style.log(String(this.user?.tag), { color: Style.TextColor.Blue })}! ${error}`\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\tif (xernerxOptions?.timeout) setTimeout(() => shard.kill(), xernerxOptions.timeout);\n\t\t});\n\n\t\tconst spawn = this.spawn();\n\n\t\tthis.spawner = spawn;\n\n\t\tspawn.then(async (shards) => {\n\t\t\tconst collector = setInterval(() => {\n\t\t\t\tconst index = shards.size - 1;\n\n\t\t\t\tif (shards.get(index)?.ready) {\n\t\t\t\t\tnew XernerxLog({ settings: xernerxOptions } as never).info(\n\t\t\t\t\t\t`All Shards launched for ${Style.log(String(this.user?.tag), {\n\t\t\t\t\t\t\tcolor: Style.TextColor.Blue,\n\t\t\t\t\t\t})} with a total of ${Style.log(String(this.stats.shardCount), { color: Style.TextColor.Cyan })} shard${this.stats.shardCount > 1 ? 's' : ''}, watching ${Style.log(\n\t\t\t\t\t\t\tString(this.stats.guildCount),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: Style.TextColor.Cyan,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)} guild${this.stats.guildCount > 1 ? 's' : ''}, and ${Style.log(String(this.stats.userCount), { color: Style.TextColor.Cyan })} user${this.stats.userCount > 1 ? 's' : ''}!`\n\t\t\t\t\t);\n\n\t\t\t\t\tclearInterval(collector);\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t});\n\n\t\treturn this;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"AAAA,cAAc;AAMd,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,OAAO,MAAM,cAAc,CAAC;AAenC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;gBACtC,MAAM,EAAE,aAAa;IAI1B,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IA2DlD,iBAAiB,CAAC,OAAO,EAAE,mBAAmB;IA4C9C,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;YA4C3C,iBAAiB;YA8HjB,eAAe;YA+Bf,iBAAiB;YAoBjB,IAAI;CAoBlB"}
1
+ {"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"AAAA,cAAc;AAMd,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,OAAO,MAAM,cAAc,CAAC;AAenC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;gBACtC,MAAM,EAAE,aAAa;IAI1B,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;IA2DlD,iBAAiB,CAAC,OAAO,EAAE,mBAAmB;IA4C9C,mBAAmB,CAAC,OAAO,EAAE,qBAAqB;YA4C3C,iBAAiB;YA4HjB,eAAe;YA6Bf,iBAAiB;YAkBjB,IAAI;CAsBlB"}
@@ -228,8 +228,6 @@ export default class CommandHandler extends Handler {
228
228
  return;
229
229
  if (!cmd)
230
230
  return await this.client.emit('commandNotFound', message, commandName, filetype);
231
- if (await inhibitorValidation(message, cmd))
232
- return;
233
231
  message.util.parsed = {
234
232
  alias: commandAlias,
235
233
  prefix: commandPrefix,
@@ -245,8 +243,6 @@ export default class CommandHandler extends Handler {
245
243
  let cmd = null;
246
244
  if (this.client.commands.slash.has(interaction.commandName))
247
245
  cmd = this.client.commands.slash.get(interaction.commandName);
248
- if (await inhibitorValidation(interaction, cmd))
249
- return;
250
246
  if (!cmd)
251
247
  return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);
252
248
  new Promise(async (resolve) => {
@@ -271,8 +267,6 @@ export default class CommandHandler extends Handler {
271
267
  let cmd;
272
268
  if (this.client.commands.context.has(interaction.commandName))
273
269
  cmd = this.client.commands.context.get(interaction.commandName);
274
- if (await inhibitorValidation(interaction, cmd))
275
- return;
276
270
  if (!cmd)
277
271
  return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);
278
272
  this.client.emit('commandStart', interaction, filetype);
@@ -282,6 +276,8 @@ export default class CommandHandler extends Handler {
282
276
  try {
283
277
  if (await commandValidation(event, cmd))
284
278
  return;
279
+ if (await inhibitorValidation(event, args, cmd))
280
+ return;
285
281
  if (cmd.conditions && (await cmd.conditions(event, args)))
286
282
  return;
287
283
  await cmd.exec(event, args);
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport { z } from 'zod';\nimport * as path from 'path';\nimport { GatewayIntentBits } from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { ContextHandlerOptions, MessageHandlerOptions, SlashHandlerOptions } from '../types/interfaces.js';\nimport Handler from './Handler.js';\nimport { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport MessageUtil from '../utils/MessageUtil.js';\nimport XernerxContextCommand from '../build/XernerxContextCommand.js';\nimport MessageCommandBuilder from '../build/XernerxMessageCommand.js';\nimport XernerxSlashCommand from '../build/XernerxSlashCommand.js';\nimport { filetype } from '../types/types.js';\nimport { xernerxUser } from '../functions/xernerxUser.js';\nimport InteractionUtil from '../utils/InteractionUtil.js';\nimport commandValidation from '../validators/commandValidation.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { interactionArguments, messageArguments } from '../models/Arguments.js';\nimport { inhibitorValidation } from '../validators/inhibitorValidations.js';\nimport { Style } from 'dumfunctions';\n\nexport default class CommandHandler extends Handler {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tpublic loadMessageCommands(options: MessageHandlerOptions) {\n\t\tif (!this.client.options.intents.has(GatewayIntentBits.MessageContent)) new XernerxLog(this.client).warn(`Message commands might not work as you're missing the intent MessageContent!`);\n\t\tif (!this.client.options.intents.has(GatewayIntentBits.GuildMessages)) new XernerxLog(this.client).warn(`Message commands might not work as you're missing the intent GuildMessages!`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tprefix: z.string().or(z.array(z.string())),\n\t\t\t\tallowMention: z.boolean().default(false),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\thandleEdits: z.boolean().default(false),\n\t\t\t\thandleDeletes: z.boolean().default(false),\n\t\t\t\thandleTyping: z.boolean().default(false),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.message = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'MessageCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Message Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'messageCreate',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage) => this.messageCommandRun(message),\n\t\t});\n\n\t\tthis.emit({\n\t\t\tname: 'messageUpdate',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage, message2: XernerxMessage) => this.messageCommandRun(message, message2),\n\t\t});\n\n\t\tthis.emit({\n\t\t\tname: 'messageDelete',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage) => this.messageCommandRun(message, 'delete'),\n\t\t});\n\t}\n\n\t// public reloadMessageCommands() {\n\t// return reload(this.client, 'message');\n\t// }\n\n\tpublic loadSlashCommands(options: SlashHandlerOptions) {\n\t\tif (!this.client.settings.local) new XernerxLog(this.client).warn(`Slash commands might not work as you haven't specified a local guild ID.`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t\tdefer: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\treply: z.boolean().default(false),\n\t\t\t\t\t\tephemeral: z.boolean().default(false),\n\t\t\t\t\t\tfetchReply: z.boolean().default(false),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.slash = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'SlashCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Slash Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'interactionCreate',\n\t\t\tfiletype: 'SlashCommand',\n\t\t\trun: (interaction: XernerxSlashInteraction) => this.slashCommandRun(interaction),\n\t\t});\n\t}\n\n\tpublic loadContextCommands(options: ContextHandlerOptions) {\n\t\tif (!this.client.settings.local) new XernerxLog(this.client).warn(`Context commands might not work as you haven't specified a local guild ID.`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t\tdefer: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\treply: z.boolean().default(false),\n\t\t\t\t\t\tephemeral: z.boolean().default(false),\n\t\t\t\t\t\tfetchReply: z.boolean().default(false),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.context = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'ContextCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Context Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'interactionCreate',\n\t\t\tfiletype: 'ContextCommand',\n\t\t\trun: (interaction: XernerxMessageContextInteraction | XernerxUserContextInteraction) => this.contextCommandRun(interaction),\n\t\t});\n\t}\n\n\tprivate async messageCommandRun<T extends XernerxMessage>(message: T, message2?: T | 'delete') {\n\t\tconst filetype = 'MessageCommand';\n\n\t\tif (message.author.id === this.client.user?.id && this.client.settings.ignore?.self) return;\n\t\telse if (message.author.bot && this.client.settings.ignore?.bots) return;\n\n\t\tif (message.system && this.client.settings.ignore?.system) return;\n\n\t\tmessage.util = new MessageUtil(this.client, message);\n\t\tmessage.user = await xernerxUser(message, this.client);\n\n\t\tif (typeof message2 === 'object') message = message2;\n\n\t\tif (message2 === 'delete' && this.client.modules.options.message?.handleDeletes) {\n\t\t\tif (!this.client.cache.messages.has(message.id)) return;\n\n\t\t\tconst id = this.client.cache.messages.get(message.id);\n\n\t\t\tif (!id) return;\n\n\t\t\t(async () => {\n\t\t\t\tconst msg = await message.channel.messages.fetch(id);\n\n\t\t\t\tawait msg.delete();\n\n\t\t\t\tthis.client.cache.messages.delete(message.id);\n\t\t\t})();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (message.content && this.client.modules.options.message) {\n\t\t\tconst commands = this.client.commands.message;\n\n\t\t\tconst prefixes = Array.isArray(this.client.modules.options.message.prefix) ? this.client.modules.options.message.prefix : [this.client.modules.options.message.prefix];\n\n\t\t\tlet commandName: string | null = null,\n\t\t\t\tcmd,\n\t\t\t\tcommandAlias: string | null = null,\n\t\t\t\tcommandPrefix: string | null = null;\n\n\t\t\tcommands.map((command) => {\n\t\t\t\tlet prefix: string | null = null;\n\n\t\t\t\tif (command.regex && message.content.match(command.regex)) {\n\t\t\t\t\tconst [match] = message.content.match(command.regex) || [null];\n\n\t\t\t\t\tif (match) commandName = command.name;\n\t\t\t\t}\n\n\t\t\t\tconst cp = Array.isArray(command.prefix) ? command.prefix : [command.prefix as string];\n\n\t\t\t\tprefixes.map((p) => {\n\t\t\t\t\tif (message.content.startsWith(p)) prefix = p;\n\t\t\t\t});\n\n\t\t\t\tcp.map((p) => {\n\t\t\t\t\tif (message.content.startsWith(p)) prefix = p;\n\t\t\t\t});\n\n\t\t\t\tif (!prefix) return;\n\n\t\t\t\tif (!commandName)\n\t\t\t\t\tcommandName =\n\t\t\t\t\t\tmessage.content\n\t\t\t\t\t\t\t.replace(prefix, '')\n\t\t\t\t\t\t\t.split(command.separator || / +/)\n\t\t\t\t\t\t\t.shift()\n\t\t\t\t\t\t\t?.trim()\n\t\t\t\t\t\t\t?.toLowerCase() || '';\n\n\t\t\t\tif (!this.client.commands.message.has(commandName) && command.aliases?.includes(commandName)) {\n\t\t\t\t\tcommandAlias = commandName;\n\n\t\t\t\t\tcommandName = command.name;\n\t\t\t\t}\n\n\t\t\t\tcommandAlias = commandAlias ? commandAlias : commandName;\n\n\t\t\t\tcommandPrefix = prefix;\n\t\t\t});\n\n\t\t\tif (!cmd && this.client.modules.options.message.allowMention) {\n\t\t\t\tif (message.mentions.users.has(this.client.user?.id as string) || message.mentions.repliedUser?.id === this.client.user?.id) {\n\t\t\t\t\tcommandName =\n\t\t\t\t\t\tmessage.content\n\t\t\t\t\t\t\t.replace(`<@${this.client.user?.id}>`, '')\n\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t.split(/ +/)\n\t\t\t\t\t\t\t.shift()\n\t\t\t\t\t\t\t?.toLowerCase() || null;\n\n\t\t\t\t\tcommands.map((command) => {\n\t\t\t\t\t\tif (command.aliases?.includes(commandName as string)) {\n\t\t\t\t\t\t\tcommandName = command.name;\n\t\t\t\t\t\t\treturn (commandAlias = commandName);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tcommandPrefix = `<@${this.client.user?.id}>`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.client.commands.message.has(commandName as string)) {\n\t\t\t\tif (this.client.modules.options.message?.handleTyping) message.channel.sendTyping();\n\n\t\t\t\tcmd = this.client.commands.message.get(commandName as string);\n\t\t\t}\n\n\t\t\tif (!commandPrefix || !commandName) return;\n\n\t\t\tif (!cmd) return await this.client.emit('commandNotFound', message, commandName, filetype);\n\n\t\t\tif (await inhibitorValidation(message, cmd)) return;\n\n\t\t\tmessage.util.parsed = {\n\t\t\t\talias: commandAlias,\n\t\t\t\tprefix: commandPrefix,\n\t\t\t};\n\n\t\t\tthis.client.emit('commandStart', message, cmd, filetype);\n\n\t\t\treturn await this.exec(cmd, message, await messageArguments(message, cmd, commandPrefix as string), filetype);\n\t\t}\n\t}\n\n\tprivate async slashCommandRun<T extends Record<string, any>>(interaction: XernerxSlashInteraction) {\n\t\tconst filetype = 'SlashCommand';\n\n\t\tinteraction.util = new InteractionUtil(this.client, interaction);\n\n\t\tinteraction.user = await xernerxUser(interaction, this.client);\n\n\t\tlet cmd: XernerxSlashCommand | null | undefined = null;\n\n\t\tif (this.client.commands.slash.has(interaction.commandName)) cmd = this.client.commands.slash.get(interaction.commandName);\n\n\t\tif (await inhibitorValidation(interaction, cmd as XernerxSlashCommand)) return;\n\n\t\tif (!cmd) return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);\n\n\t\tnew Promise(async (resolve) => {\n\t\t\tif (interaction.isAutocomplete()) {\n\t\t\t\tconst focused = (interaction as T).options.getFocused(true);\n\t\t\t\tconst options = (interaction as T).options;\n\n\t\t\t\tawait (cmd as XernerxSlashCommand).autocomplete(interaction, focused, options);\n\t\t\t} else resolve(true);\n\t\t})\n\t\t\t.then(async () => {\n\t\t\t\tthis.client.emit('commandStart', interaction, filetype);\n\n\t\t\t\treturn await this.exec(cmd as XernerxSlashCommand, interaction, await interactionArguments(interaction, cmd as XernerxSlashCommand), filetype);\n\t\t\t})\n\t\t\t.catch((error) => this.client.emit('commandError', interaction, error, cmd, filetype));\n\t}\n\n\tprivate async contextCommandRun(interaction: XernerxUserContextInteraction | XernerxMessageContextInteraction) {\n\t\tconst filetype = 'ContextCommand';\n\n\t\tinteraction.util = new InteractionUtil(this.client, interaction);\n\n\t\tinteraction.user = await xernerxUser(interaction as XernerxUserContextInteraction, this.client);\n\n\t\tlet cmd;\n\n\t\tif (this.client.commands.context.has(interaction.commandName)) cmd = this.client.commands.context.get(interaction.commandName);\n\n\t\tif (await inhibitorValidation(interaction, cmd)) return;\n\n\t\tif (!cmd) return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);\n\n\t\tthis.client.emit('commandStart', interaction, filetype);\n\n\t\treturn await this.exec(cmd as unknown as XernerxSlashCommand, interaction, await interactionArguments(interaction, cmd), filetype);\n\t}\n\n\tprivate async exec(\n\t\tcmd: MessageCommandBuilder | XernerxSlashCommand | XernerxContextCommand,\n\t\tevent: XernerxMessage | XernerxSlashInteraction | XernerxMessageContextInteraction | XernerxUserContextInteraction,\n\t\targs: any,\n\t\ttype: filetype\n\t) {\n\t\ttry {\n\t\t\tif (await commandValidation(event as XernerxMessage, cmd)) return;\n\n\t\t\tif (((cmd as MessageCommandBuilder).conditions as unknown) && (await ((cmd as MessageCommandBuilder).conditions(event as never, args) as unknown))) return;\n\n\t\t\tawait cmd.exec(event as never, args);\n\n\t\t\treturn await this.client.emit('commandFinish', event, type);\n\t\t} catch (error) {\n\t\t\tnew XernerxLog(this.client).error(`An error occurred executing ${Style.log(cmd.name, { color: Style.TextColor.Blue })}`, error);\n\n\t\t\treturn await this.client.emit('commandError', event, error, cmd, type);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"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","sourcesContent":["/** @format */\n\nimport { z } from 'zod';\nimport * as path from 'path';\nimport { GatewayIntentBits } from 'discord.js';\n\nimport XernerxClient from '../client/XernerxClient.js';\nimport { ContextHandlerOptions, MessageHandlerOptions, SlashHandlerOptions } from '../types/interfaces.js';\nimport Handler from './Handler.js';\nimport { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport MessageUtil from '../utils/MessageUtil.js';\nimport XernerxContextCommand from '../build/XernerxContextCommand.js';\nimport MessageCommandBuilder from '../build/XernerxMessageCommand.js';\nimport XernerxSlashCommand from '../build/XernerxSlashCommand.js';\nimport { filetype } from '../types/types.js';\nimport { xernerxUser } from '../functions/xernerxUser.js';\nimport InteractionUtil from '../utils/InteractionUtil.js';\nimport commandValidation from '../validators/commandValidation.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { interactionArguments, messageArguments } from '../models/Arguments.js';\nimport { inhibitorValidation } from '../validators/inhibitorValidations.js';\nimport { Style } from 'dumfunctions';\n\nexport default class CommandHandler extends Handler {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tpublic loadMessageCommands(options: MessageHandlerOptions) {\n\t\tif (!this.client.options.intents.has(GatewayIntentBits.MessageContent)) new XernerxLog(this.client).warn(`Message commands might not work as you're missing the intent MessageContent!`);\n\t\tif (!this.client.options.intents.has(GatewayIntentBits.GuildMessages)) new XernerxLog(this.client).warn(`Message commands might not work as you're missing the intent GuildMessages!`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tprefix: z.string().or(z.array(z.string())),\n\t\t\t\tallowMention: z.boolean().default(false),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\thandleEdits: z.boolean().default(false),\n\t\t\t\thandleDeletes: z.boolean().default(false),\n\t\t\t\thandleTyping: z.boolean().default(false),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.message = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'MessageCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Message Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'messageCreate',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage) => this.messageCommandRun(message),\n\t\t});\n\n\t\tthis.emit({\n\t\t\tname: 'messageUpdate',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage, message2: XernerxMessage) => this.messageCommandRun(message, message2),\n\t\t});\n\n\t\tthis.emit({\n\t\t\tname: 'messageDelete',\n\t\t\tfiletype: 'MessageCommand',\n\t\t\trun: (message: XernerxMessage) => this.messageCommandRun(message, 'delete'),\n\t\t});\n\t}\n\n\t// public reloadMessageCommands() {\n\t// return reload(this.client, 'message');\n\t// }\n\n\tpublic loadSlashCommands(options: SlashHandlerOptions) {\n\t\tif (!this.client.settings.local) new XernerxLog(this.client).warn(`Slash commands might not work as you haven't specified a local guild ID.`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t\tdefer: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\treply: z.boolean().default(false),\n\t\t\t\t\t\tephemeral: z.boolean().default(false),\n\t\t\t\t\t\tfetchReply: z.boolean().default(false),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.slash = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'SlashCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Slash Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'interactionCreate',\n\t\t\tfiletype: 'SlashCommand',\n\t\t\trun: (interaction: XernerxSlashInteraction) => this.slashCommandRun(interaction),\n\t\t});\n\t}\n\n\tpublic loadContextCommands(options: ContextHandlerOptions) {\n\t\tif (!this.client.settings.local) new XernerxLog(this.client).warn(`Context commands might not work as you haven't specified a local guild ID.`);\n\n\t\toptions = z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tcooldown: z.number().default(0),\n\t\t\t\tpermissions: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\tuser: z.array(z.string()).default([]),\n\t\t\t\t\t\tclient: z.array(z.string()).default([]),\n\t\t\t\t\t\tdm: z.boolean().default(true),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t\tlogging: z.boolean().default(false),\n\t\t\t\tdefer: z\n\t\t\t\t\t.object({\n\t\t\t\t\t\treply: z.boolean().default(false),\n\t\t\t\t\t\tephemeral: z.boolean().default(false),\n\t\t\t\t\t\tfetchReply: z.boolean().default(false),\n\t\t\t\t\t})\n\t\t\t\t\t.default({}),\n\t\t\t})\n\t\t\t.parse(options);\n\n\t\tthis.client.modules.options.context = options;\n\n\t\tconst files = this.readdir(options.directory);\n\n\t\tfor (const file of files) {\n\t\t\tconst filepath = `${path.resolve(options.directory)}\\\\${file}`;\n\n\t\t\tthis.load(filepath, 'ContextCommand');\n\t\t}\n\n\t\tnew XernerxLog(this.client).info(`Loaded ${Style.log(String(files.length), { color: Style.TextColor.Cyan })} Context Commands.`);\n\n\t\tthis.emit({\n\t\t\tname: 'interactionCreate',\n\t\t\tfiletype: 'ContextCommand',\n\t\t\trun: (interaction: XernerxMessageContextInteraction | XernerxUserContextInteraction) => this.contextCommandRun(interaction),\n\t\t});\n\t}\n\n\tprivate async messageCommandRun<T extends XernerxMessage>(message: T, message2?: T | 'delete') {\n\t\tconst filetype = 'MessageCommand';\n\n\t\tif (message.author.id === this.client.user?.id && this.client.settings.ignore?.self) return;\n\t\telse if (message.author.bot && this.client.settings.ignore?.bots) return;\n\n\t\tif (message.system && this.client.settings.ignore?.system) return;\n\n\t\tmessage.util = new MessageUtil(this.client, message);\n\t\tmessage.user = await xernerxUser(message, this.client);\n\n\t\tif (typeof message2 === 'object') message = message2;\n\n\t\tif (message2 === 'delete' && this.client.modules.options.message?.handleDeletes) {\n\t\t\tif (!this.client.cache.messages.has(message.id)) return;\n\n\t\t\tconst id = this.client.cache.messages.get(message.id);\n\n\t\t\tif (!id) return;\n\n\t\t\t(async () => {\n\t\t\t\tconst msg = await message.channel.messages.fetch(id);\n\n\t\t\t\tawait msg.delete();\n\n\t\t\t\tthis.client.cache.messages.delete(message.id);\n\t\t\t})();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (message.content && this.client.modules.options.message) {\n\t\t\tconst commands = this.client.commands.message;\n\n\t\t\tconst prefixes = Array.isArray(this.client.modules.options.message.prefix) ? this.client.modules.options.message.prefix : [this.client.modules.options.message.prefix];\n\n\t\t\tlet commandName: string | null = null,\n\t\t\t\tcmd,\n\t\t\t\tcommandAlias: string | null = null,\n\t\t\t\tcommandPrefix: string | null = null;\n\n\t\t\tcommands.map((command) => {\n\t\t\t\tlet prefix: string | null = null;\n\n\t\t\t\tif (command.regex && message.content.match(command.regex)) {\n\t\t\t\t\tconst [match] = message.content.match(command.regex) || [null];\n\n\t\t\t\t\tif (match) commandName = command.name;\n\t\t\t\t}\n\n\t\t\t\tconst cp = Array.isArray(command.prefix) ? command.prefix : [command.prefix as string];\n\n\t\t\t\tprefixes.map((p) => {\n\t\t\t\t\tif (message.content.startsWith(p)) prefix = p;\n\t\t\t\t});\n\n\t\t\t\tcp.map((p) => {\n\t\t\t\t\tif (message.content.startsWith(p)) prefix = p;\n\t\t\t\t});\n\n\t\t\t\tif (!prefix) return;\n\n\t\t\t\tif (!commandName)\n\t\t\t\t\tcommandName =\n\t\t\t\t\t\tmessage.content\n\t\t\t\t\t\t\t.replace(prefix, '')\n\t\t\t\t\t\t\t.split(command.separator || / +/)\n\t\t\t\t\t\t\t.shift()\n\t\t\t\t\t\t\t?.trim()\n\t\t\t\t\t\t\t?.toLowerCase() || '';\n\n\t\t\t\tif (!this.client.commands.message.has(commandName) && command.aliases?.includes(commandName)) {\n\t\t\t\t\tcommandAlias = commandName;\n\n\t\t\t\t\tcommandName = command.name;\n\t\t\t\t}\n\n\t\t\t\tcommandAlias = commandAlias ? commandAlias : commandName;\n\n\t\t\t\tcommandPrefix = prefix;\n\t\t\t});\n\n\t\t\tif (!cmd && this.client.modules.options.message.allowMention) {\n\t\t\t\tif (message.mentions.users.has(this.client.user?.id as string) || message.mentions.repliedUser?.id === this.client.user?.id) {\n\t\t\t\t\tcommandName =\n\t\t\t\t\t\tmessage.content\n\t\t\t\t\t\t\t.replace(`<@${this.client.user?.id}>`, '')\n\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t.split(/ +/)\n\t\t\t\t\t\t\t.shift()\n\t\t\t\t\t\t\t?.toLowerCase() || null;\n\n\t\t\t\t\tcommands.map((command) => {\n\t\t\t\t\t\tif (command.aliases?.includes(commandName as string)) {\n\t\t\t\t\t\t\tcommandName = command.name;\n\t\t\t\t\t\t\treturn (commandAlias = commandName);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tcommandPrefix = `<@${this.client.user?.id}>`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.client.commands.message.has(commandName as string)) {\n\t\t\t\tif (this.client.modules.options.message?.handleTyping) message.channel.sendTyping();\n\n\t\t\t\tcmd = this.client.commands.message.get(commandName as string);\n\t\t\t}\n\n\t\t\tif (!commandPrefix || !commandName) return;\n\n\t\t\tif (!cmd) return await this.client.emit('commandNotFound', message, commandName, filetype);\n\n\t\t\tmessage.util.parsed = {\n\t\t\t\talias: commandAlias,\n\t\t\t\tprefix: commandPrefix,\n\t\t\t};\n\n\t\t\tthis.client.emit('commandStart', message, cmd, filetype);\n\n\t\t\treturn await this.exec(cmd, message, await messageArguments(message, cmd, commandPrefix as string), filetype);\n\t\t}\n\t}\n\n\tprivate async slashCommandRun<T extends Record<string, any>>(interaction: XernerxSlashInteraction) {\n\t\tconst filetype = 'SlashCommand';\n\n\t\tinteraction.util = new InteractionUtil(this.client, interaction);\n\n\t\tinteraction.user = await xernerxUser(interaction, this.client);\n\n\t\tlet cmd: XernerxSlashCommand | null | undefined = null;\n\n\t\tif (this.client.commands.slash.has(interaction.commandName)) cmd = this.client.commands.slash.get(interaction.commandName);\n\n\t\tif (!cmd) return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);\n\n\t\tnew Promise(async (resolve) => {\n\t\t\tif (interaction.isAutocomplete()) {\n\t\t\t\tconst focused = (interaction as T).options.getFocused(true);\n\t\t\t\tconst options = (interaction as T).options;\n\n\t\t\t\tawait (cmd as XernerxSlashCommand).autocomplete(interaction, focused, options);\n\t\t\t} else resolve(true);\n\t\t})\n\t\t\t.then(async () => {\n\t\t\t\tthis.client.emit('commandStart', interaction, filetype);\n\n\t\t\t\treturn await this.exec(cmd as XernerxSlashCommand, interaction, await interactionArguments(interaction, cmd as XernerxSlashCommand), filetype);\n\t\t\t})\n\t\t\t.catch((error) => this.client.emit('commandError', interaction, error, cmd, filetype));\n\t}\n\n\tprivate async contextCommandRun(interaction: XernerxUserContextInteraction | XernerxMessageContextInteraction) {\n\t\tconst filetype = 'ContextCommand';\n\n\t\tinteraction.util = new InteractionUtil(this.client, interaction);\n\n\t\tinteraction.user = await xernerxUser(interaction as XernerxUserContextInteraction, this.client);\n\n\t\tlet cmd;\n\n\t\tif (this.client.commands.context.has(interaction.commandName)) cmd = this.client.commands.context.get(interaction.commandName);\n\n\t\tif (!cmd) return this.client.emit('commandNotFound', interaction, interaction.commandName, filetype);\n\n\t\tthis.client.emit('commandStart', interaction, filetype);\n\n\t\treturn await this.exec(cmd as unknown as XernerxSlashCommand, interaction, await interactionArguments(interaction, cmd), filetype);\n\t}\n\n\tprivate async exec(\n\t\tcmd: MessageCommandBuilder | XernerxSlashCommand | XernerxContextCommand,\n\t\tevent: XernerxMessage | XernerxSlashInteraction | XernerxMessageContextInteraction | XernerxUserContextInteraction,\n\t\targs: any,\n\t\ttype: filetype\n\t) {\n\t\ttry {\n\t\t\tif (await commandValidation(event as XernerxMessage, cmd)) return;\n\n\t\t\tif (await inhibitorValidation(event, args, cmd)) return;\n\n\t\t\tif (((cmd as MessageCommandBuilder).conditions as unknown) && (await ((cmd as MessageCommandBuilder).conditions(event as never, args) as unknown))) return;\n\n\t\t\tawait cmd.exec(event as never, args);\n\n\t\t\treturn await this.client.emit('commandFinish', event, type);\n\t\t} catch (error) {\n\t\t\tnew XernerxLog(this.client).error(`An error occurred executing ${Style.log(cmd.name, { color: Style.TextColor.Blue })}`, error);\n\n\t\t\treturn await this.client.emit('commandError', event, error, cmd, type);\n\t\t}\n\t}\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @format */
2
- import { XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';
2
+ import { ContextCommandArguments, MessageCommandArguments, SlashCommandArguments, XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';
3
3
  import { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';
4
4
  import { InhibitorType, XernerxInteraction } from '../types/types.js';
5
- export declare function inhibitorValidation(event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>, cmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand): Promise<boolean>;
5
+ export declare function inhibitorValidation(event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>, args: SlashCommandArguments | MessageCommandArguments | ContextCommandArguments<'user' | 'message'> | null, cmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand): Promise<boolean>;
6
6
  export declare function inhibitorArguments(event: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>, cmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null, type: InhibitorType): import("../main.js").XernerxUser | import("discord.js").GuildMember | import("discord.js").Guild | import("discord.js").TextBasedChannel | XernerxMessageCommand | XernerxSlashCommand | XernerxContextCommand | import("../main.js").APIInteractionGuildMember | null;
7
7
  //# sourceMappingURL=inhibitorValidations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inhibitorValidations.d.ts","sourceRoot":"","sources":["../../src/validators/inhibitorValidations.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACjJ,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EACtI,GAAG,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,oBAazE;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EACtI,GAAG,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,EAC/E,IAAI,EAAE,aAAa,0QAwBnB"}
1
+ {"version":3,"file":"inhibitorValidations.d.ts","sourceRoot":"","sources":["../../src/validators/inhibitorValidations.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAsB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACvL,OAAO,EAAE,cAAc,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACjJ,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EACtI,IAAI,EAAE,qBAAqB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,EAC1G,GAAG,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,oBAazE;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAAC,uBAAuB,GAAG,6BAA6B,GAAG,gCAAgC,CAAC,EACtI,GAAG,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,EAC/E,IAAI,EAAE,aAAa,0QAwBnB"}
@@ -1,9 +1,9 @@
1
1
  /** @format */
2
- export async function inhibitorValidation(event, cmd) {
2
+ export async function inhibitorValidation(event, args, cmd) {
3
3
  const client = event.client;
4
4
  const inhibits = [];
5
5
  for (const [name, inhibitor] of client.inhibitors) {
6
- if (Boolean(await inhibitor.check(event, (await inhibitorArguments(event, cmd || null, inhibitor.type))))) {
6
+ if (Boolean(await inhibitor.check(event, args, (await inhibitorArguments(event, cmd || null, inhibitor.type))))) {
7
7
  inhibits.push(name);
8
8
  }
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inhibitorValidations.js","sourceRoot":"","sources":["../../src/validators/inhibitorValidations.ts"],"names":[],"mappings":"AAAA,cAAc;AAMd,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,KAAsI,EACtI,GAAyE;IAEzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAuB,CAAC;IAE7C,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE;QAClD,IAAI,OAAO,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC,EAAE;YACnH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;KACD;IAED,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,KAAsI,EACtI,GAA+E,EAC/E,IAAmB;IAEnB,QAAQ,IAAI,EAAE;QACb,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,GAAG,CAAC;QACZ,KAAK,gBAAgB;YACpB,OAAO,GAAG,CAAC;QACZ,KAAK,OAAO;YACX,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QAC5B,KAAK,aAAa;YACjB,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QAC7B,KAAK,SAAS;YACb,OAAO,IAAI,CAAC;QACb,KAAK,gBAAgB;YACpB,OAAO,GAAG,CAAC;QACZ,KAAK,cAAc;YAClB,OAAO,GAAG,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,IAAI,CAAC;KACnB;AACF,CAAC","sourcesContent":["/** @format */\n\nimport XernerxClient, { XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';\nimport { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport { InhibitorType, XernerxInteraction } from '../types/types.js';\n\nexport async function inhibitorValidation(\n\tevent: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\tcmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand\n) {\n\tconst client = event.client as XernerxClient;\n\n\tconst inhibits = [];\n\n\tfor (const [name, inhibitor] of client.inhibitors) {\n\t\tif (Boolean(await inhibitor.check(event, (await inhibitorArguments(event, cmd || null, inhibitor.type)) as never))) {\n\t\t\tinhibits.push(name);\n\t\t}\n\t}\n\n\treturn !!inhibits.length;\n}\n\nexport function inhibitorArguments(\n\tevent: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\tcmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null,\n\ttype: InhibitorType\n) {\n\tswitch (type) {\n\t\tcase 'channel':\n\t\t\treturn event.channel || null;\n\t\tcase 'command':\n\t\t\treturn cmd;\n\t\tcase 'contextCommand':\n\t\t\treturn cmd;\n\t\tcase 'guild':\n\t\t\treturn event.guild || null;\n\t\tcase 'interaction':\n\t\t\treturn null;\n\t\tcase 'member':\n\t\t\treturn event.member || null;\n\t\tcase 'message':\n\t\t\treturn null;\n\t\tcase 'messageCommand':\n\t\t\treturn cmd;\n\t\tcase 'slashCommand':\n\t\t\treturn cmd;\n\t\tcase 'user':\n\t\t\treturn event.user;\n\t}\n}\n"]}
1
+ {"version":3,"file":"inhibitorValidations.js","sourceRoot":"","sources":["../../src/validators/inhibitorValidations.ts"],"names":[],"mappings":"AAAA,cAAc;AAMd,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,KAAsI,EACtI,IAA0G,EAC1G,GAAyE;IAEzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAuB,CAAC;IAE7C,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE;QAClD,IAAI,OAAO,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC,EAAE;YACzH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;KACD;IAED,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,KAAsI,EACtI,GAA+E,EAC/E,IAAmB;IAEnB,QAAQ,IAAI,EAAE;QACb,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,GAAG,CAAC;QACZ,KAAK,gBAAgB;YACpB,OAAO,GAAG,CAAC;QACZ,KAAK,OAAO;YACX,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;QAC5B,KAAK,aAAa;YACjB,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QAC7B,KAAK,SAAS;YACb,OAAO,IAAI,CAAC;QACb,KAAK,gBAAgB;YACpB,OAAO,GAAG,CAAC;QACZ,KAAK,cAAc;YAClB,OAAO,GAAG,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,IAAI,CAAC;KACnB;AACF,CAAC","sourcesContent":["/** @format */\n\nimport XernerxClient, { ContextCommandArguments, MessageCommandArguments, SlashCommandArguments, XernerxContextCommand, XernerxMessageCommand, XernerxSlashCommand } from '../main.js';\nimport { XernerxMessage, XernerxMessageContextInteraction, XernerxSlashInteraction, XernerxUserContextInteraction } from '../types/extenders.js';\nimport { InhibitorType, XernerxInteraction } from '../types/types.js';\n\nexport async function inhibitorValidation(\n\tevent: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\targs: SlashCommandArguments | MessageCommandArguments | ContextCommandArguments<'user' | 'message'> | null,\n\tcmd?: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand\n) {\n\tconst client = event.client as XernerxClient;\n\n\tconst inhibits = [];\n\n\tfor (const [name, inhibitor] of client.inhibitors) {\n\t\tif (Boolean(await inhibitor.check(event, args, (await inhibitorArguments(event, cmd || null, inhibitor.type)) as never))) {\n\t\t\tinhibits.push(name);\n\t\t}\n\t}\n\n\treturn !!inhibits.length;\n}\n\nexport function inhibitorArguments(\n\tevent: XernerxMessage | XernerxInteraction<XernerxSlashInteraction | XernerxUserContextInteraction | XernerxMessageContextInteraction>,\n\tcmd: XernerxContextCommand | XernerxMessageCommand | XernerxSlashCommand | null,\n\ttype: InhibitorType\n) {\n\tswitch (type) {\n\t\tcase 'channel':\n\t\t\treturn event.channel || null;\n\t\tcase 'command':\n\t\t\treturn cmd;\n\t\tcase 'contextCommand':\n\t\t\treturn cmd;\n\t\tcase 'guild':\n\t\t\treturn event.guild || null;\n\t\tcase 'interaction':\n\t\t\treturn null;\n\t\tcase 'member':\n\t\t\treturn event.member || null;\n\t\tcase 'message':\n\t\t\treturn null;\n\t\tcase 'messageCommand':\n\t\t\treturn cmd;\n\t\tcase 'slashCommand':\n\t\t\treturn cmd;\n\t\tcase 'user':\n\t\t\treturn event.user;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xernerx",
3
- "version": "4.5.26",
3
+ "version": "4.5.28",
4
4
  "description": "A bot framework for discord.js.",
5
5
  "main": "dist/main.js",
6
6
  "type": "module",
@@ -24,9 +24,9 @@
24
24
  "start": "npm i && npm fund && npm audit fix --force && npm link && tsc -w",
25
25
  "commit": "npm run write && git add . && node ./.github/scripts/message.js",
26
26
  "tag": "node ./.github/scripts/tag.js",
27
- "patch": "npm run commit && npm version patch && npm run tag && git push",
28
- "minor": "npm run commit && npm version minor && npm run tag && git push",
29
- "major": "npm run commit && npm version major && npm run tag && git push",
27
+ "patch": "npm run commit && npm version patch && npm run tag && npm publish && git push",
28
+ "minor": "npm run commit && npm version minor && npm run tag && npm publish && git push",
29
+ "major": "npm run commit && npm version major && npm run tag && npm publish && git push",
30
30
  "site": "git add docs && npm run commit && git push",
31
31
  "write": "npm i && npm run build && npm run format",
32
32
  "format": "npx prettier --write src dist",