xernerx 4.4.18 → 4.4.19
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.
|
@@ -260,7 +260,7 @@ export default class CommandHandler extends Handler {
|
|
|
260
260
|
return;
|
|
261
261
|
if (cmd.conditions && (await cmd.conditions(event, args)))
|
|
262
262
|
return;
|
|
263
|
-
cmd.exec(event, args);
|
|
263
|
+
await cmd.exec(event, args);
|
|
264
264
|
return await this.client.emit('commandFinish', event, type);
|
|
265
265
|
}
|
|
266
266
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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 ContextCommandBuilder from '../build/ContextCommandBuilder.js';\nimport MessageCommandBuilder from '../build/MessageCommandBuilder.js';\nimport SlashCommandBuilder from '../build/SlashCommandBuilder.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';\n\nexport default class CommandHandler extends Handler {\n constructor(client: XernerxClient) {\n super(client);\n }\n\n public loadMessageCommands(options: MessageHandlerOptions) {\n if (!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 if (!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 options = z\n .object({\n directory: z.string(),\n prefix: z.string().or(z.array(z.string())),\n allowMention: z.boolean().default(false),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n handleEdits: z.boolean().default(false),\n handleDeletes: z.boolean().default(false),\n handleTyping: z.boolean().default(false),\n logging: z.boolean().default(false),\n })\n .parse(options);\n\n this.client.modules.options.message = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'MessageCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Message Commands.`);\n\n this.emit({\n name: 'messageCreate',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage) => this.messageCommandRun(message),\n });\n\n this.emit({\n name: 'messageUpdate',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage, message2: XernerxMessage) => this.messageCommandRun(message, message2),\n });\n\n this.emit({\n name: 'messageDelete',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage) => this.messageCommandRun(message, 'delete'),\n });\n }\n\n // public reloadMessageCommands() {\n // return reload(this.client, 'message');\n // }\n\n public loadSlashCommands(options: SlashHandlerOptions) {\n if (!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 options = z\n .object({\n directory: z.string(),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n logging: z.boolean().default(false),\n defer: z\n .object({\n reply: z.boolean().default(false),\n ephemeral: z.boolean().default(false),\n fetchReply: z.boolean().default(false),\n })\n .default({}),\n })\n .parse(options);\n\n this.client.modules.options.slash = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'SlashCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Slash Commands.`);\n\n this.emit({\n name: 'interactionCreate',\n fileType: 'SlashCommand',\n run: (interaction: XernerxSlashInteraction) => this.slashCommandRun(interaction),\n });\n }\n public loadContextCommands(options: ContextHandlerOptions) {\n if (!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 options = z\n .object({\n directory: z.string(),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n logging: z.boolean().default(false),\n defer: z\n .object({\n reply: z.boolean().default(false),\n ephemeral: z.boolean().default(false),\n fetchReply: z.boolean().default(false),\n })\n .default({}),\n })\n .parse(options);\n\n this.client.modules.options.context = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'ContextCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Context Commands.`);\n\n this.emit({\n name: 'interactionCreate',\n fileType: 'ContextCommand',\n run: (interaction: XernerxMessageContextInteraction | XernerxUserContextInteraction) => this.contextCommandRun(interaction),\n });\n }\n\n private async messageCommandRun<T extends XernerxMessage>(message: T, message2?: T | 'delete') {\n const filetype = 'MessageCommand';\n\n if (message.author.bot) return;\n\n message.util = new MessageUtil(this.client, message);\n\n message.user = await xernerxUser(message, this.client);\n\n if (typeof message2 === 'object') message = message2;\n\n if (message2 === 'delete') {\n if (!this.client.cache.messages.has(message.id)) return;\n\n const id = this.client.cache.messages.get(message.id);\n\n if (!id) return;\n\n (async () => {\n const msg = await message.channel.messages.fetch(id);\n\n await msg.delete();\n\n this.client.cache.messages.delete(message.id);\n })();\n\n return;\n }\n\n if (message.content && this.client.modules.options.message) {\n const commands = this.client.commands.message;\n\n const prefixes = Array.isArray(this.client.modules.options.message.prefix) ? this.client.modules.options.message.prefix : [this.client.modules.options.message.prefix];\n\n let commandName: string | null = null,\n cmd,\n commandAlias: string | null = null,\n commandPrefix: string | null = null;\n\n commands.map((command) => {\n let prefix: string | null = null;\n\n if (command.regex && message.content.match(command.regex)) {\n const [match] = message.content.match(command.regex) || [null];\n\n if (match) commandName = command.name;\n }\n\n const cp = Array.isArray(command.prefix) ? command.prefix : [command.prefix as string];\n\n prefixes.map((p) => {\n if (message.content.startsWith(p)) prefix = p;\n });\n\n cp.map((p) => {\n if (message.content.startsWith(p)) prefix = p;\n });\n\n if (!prefix) return;\n\n if (!commandName)\n commandName =\n message.content\n .replace(prefix, '')\n .split(command.separator || / +/)\n .shift()\n ?.trim()\n ?.toLowerCase() || '';\n\n if (!this.client.commands.message.has(commandName) && command.aliases?.includes(commandName)) {\n commandAlias = commandName;\n\n commandName = command.name;\n }\n\n commandAlias = commandAlias ? commandAlias : commandName;\n\n commandPrefix = prefix;\n });\n\n if (!cmd && this.client.modules.options.message.allowMention) {\n if (message.mentions.users.has(this.client.user?.id as string) || message.mentions.repliedUser?.id === this.client.user?.id) {\n commandName = message.content.replace(`<@${this.client.user?.id}>`, '').trim().split(/ +/).shift()?.toLowerCase() || null;\n }\n }\n\n if (this.client.commands.message.has(commandName as string)) cmd = this.client.commands.message.get(commandName as string);\n\n if (await inhibitorValidation(message, cmd)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', message, filetype);\n\n message.util.parsed = {\n alias: commandAlias,\n prefix: commandPrefix,\n };\n\n this.client.emit('commandStart', message, filetype);\n\n return await this.exec(cmd, message, await messageArguments(message, cmd), filetype);\n }\n }\n\n private async slashCommandRun<T extends Record<string, any>>(interaction: XernerxSlashInteraction) {\n const filetype = 'SlashCommand';\n\n interaction.util = new InteractionUtil(this.client, interaction);\n\n interaction.user = await xernerxUser(interaction, this.client);\n\n let cmd: SlashCommandBuilder | null | undefined = null;\n\n if (this.client.commands.slash.has(interaction.commandName)) cmd = this.client.commands.slash.get(interaction.commandName);\n\n if (await inhibitorValidation(interaction, cmd as SlashCommandBuilder)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', interaction);\n\n new Promise(async (resolve) => {\n if (interaction.isAutocomplete()) {\n const focused = (interaction as T).options.getFocused(true);\n const options = (interaction as T).options;\n\n await (cmd as SlashCommandBuilder).autocomplete(interaction, focused, options);\n } else resolve(true);\n })\n .then(async () => {\n this.client.emit('commandStart', interaction, filetype);\n\n return await this.exec(cmd as SlashCommandBuilder, interaction, await interactionArguments(interaction, cmd as SlashCommandBuilder), filetype);\n })\n .catch((error) => this.client.emit('commandError', interaction, error, filetype));\n }\n\n private async contextCommandRun(interaction: XernerxUserContextInteraction | XernerxMessageContextInteraction) {\n const filetype = 'ContextCommand';\n\n interaction.util = new InteractionUtil(this.client, interaction);\n\n interaction.user = await xernerxUser(interaction as XernerxUserContextInteraction, this.client);\n\n let cmd;\n\n if (this.client.commands.context.has(interaction.commandName)) cmd = this.client.commands.context.get(interaction.commandName);\n\n if (await inhibitorValidation(interaction, cmd)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', interaction, filetype);\n\n this.client.emit('commandStart', interaction, filetype);\n\n return await this.exec(cmd as unknown as SlashCommandBuilder, interaction, await interactionArguments(interaction, cmd), filetype);\n }\n\n private async exec(\n cmd: MessageCommandBuilder | SlashCommandBuilder | ContextCommandBuilder,\n event: XernerxMessage | XernerxSlashInteraction | XernerxMessageContextInteraction | XernerxUserContextInteraction,\n args: any,\n type: FileType\n ) {\n try {\n if (await commandValidation(event as XernerxMessage, cmd)) return;\n\n if (((cmd as MessageCommandBuilder).conditions as unknown) && (await ((cmd as MessageCommandBuilder).conditions(event as never, args) as unknown))) return;\n\n cmd.exec(event as never, args);\n\n return await this.client.emit('commandFinish', event, type);\n } catch (error) {\n new XernerxLog(this.client).error(`An error occurred executing ${cmd.name}`, error);\n\n return await this.client.emit('commandError', event, error, type);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../src/handlers/CommandHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { 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 ContextCommandBuilder from '../build/ContextCommandBuilder.js';\nimport MessageCommandBuilder from '../build/MessageCommandBuilder.js';\nimport SlashCommandBuilder from '../build/SlashCommandBuilder.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';\n\nexport default class CommandHandler extends Handler {\n constructor(client: XernerxClient) {\n super(client);\n }\n\n public loadMessageCommands(options: MessageHandlerOptions) {\n if (!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 if (!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 options = z\n .object({\n directory: z.string(),\n prefix: z.string().or(z.array(z.string())),\n allowMention: z.boolean().default(false),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n handleEdits: z.boolean().default(false),\n handleDeletes: z.boolean().default(false),\n handleTyping: z.boolean().default(false),\n logging: z.boolean().default(false),\n })\n .parse(options);\n\n this.client.modules.options.message = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'MessageCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Message Commands.`);\n\n this.emit({\n name: 'messageCreate',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage) => this.messageCommandRun(message),\n });\n\n this.emit({\n name: 'messageUpdate',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage, message2: XernerxMessage) => this.messageCommandRun(message, message2),\n });\n\n this.emit({\n name: 'messageDelete',\n fileType: 'MessageCommand',\n run: (message: XernerxMessage) => this.messageCommandRun(message, 'delete'),\n });\n }\n\n // public reloadMessageCommands() {\n // return reload(this.client, 'message');\n // }\n\n public loadSlashCommands(options: SlashHandlerOptions) {\n if (!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 options = z\n .object({\n directory: z.string(),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n logging: z.boolean().default(false),\n defer: z\n .object({\n reply: z.boolean().default(false),\n ephemeral: z.boolean().default(false),\n fetchReply: z.boolean().default(false),\n })\n .default({}),\n })\n .parse(options);\n\n this.client.modules.options.slash = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'SlashCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Slash Commands.`);\n\n this.emit({\n name: 'interactionCreate',\n fileType: 'SlashCommand',\n run: (interaction: XernerxSlashInteraction) => this.slashCommandRun(interaction),\n });\n }\n public loadContextCommands(options: ContextHandlerOptions) {\n if (!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 options = z\n .object({\n directory: z.string(),\n cooldown: z.number().default(0),\n permissions: z\n .object({\n user: z.array(z.string()).default([]),\n client: z.array(z.string()).default([]),\n dm: z.boolean().default(true),\n })\n .default({}),\n logging: z.boolean().default(false),\n defer: z\n .object({\n reply: z.boolean().default(false),\n ephemeral: z.boolean().default(false),\n fetchReply: z.boolean().default(false),\n })\n .default({}),\n })\n .parse(options);\n\n this.client.modules.options.context = options;\n\n const files = this.readdir(options.directory);\n\n for (const file of files) {\n const filePath = `${path.resolve(options.directory)}\\\\${file}`;\n\n this.load(filePath, 'ContextCommand');\n }\n\n new XernerxLog(this.client).info(`Loaded ${files.length} Context Commands.`);\n\n this.emit({\n name: 'interactionCreate',\n fileType: 'ContextCommand',\n run: (interaction: XernerxMessageContextInteraction | XernerxUserContextInteraction) => this.contextCommandRun(interaction),\n });\n }\n\n private async messageCommandRun<T extends XernerxMessage>(message: T, message2?: T | 'delete') {\n const filetype = 'MessageCommand';\n\n if (message.author.bot) return;\n\n message.util = new MessageUtil(this.client, message);\n\n message.user = await xernerxUser(message, this.client);\n\n if (typeof message2 === 'object') message = message2;\n\n if (message2 === 'delete') {\n if (!this.client.cache.messages.has(message.id)) return;\n\n const id = this.client.cache.messages.get(message.id);\n\n if (!id) return;\n\n (async () => {\n const msg = await message.channel.messages.fetch(id);\n\n await msg.delete();\n\n this.client.cache.messages.delete(message.id);\n })();\n\n return;\n }\n\n if (message.content && this.client.modules.options.message) {\n const commands = this.client.commands.message;\n\n const prefixes = Array.isArray(this.client.modules.options.message.prefix) ? this.client.modules.options.message.prefix : [this.client.modules.options.message.prefix];\n\n let commandName: string | null = null,\n cmd,\n commandAlias: string | null = null,\n commandPrefix: string | null = null;\n\n commands.map((command) => {\n let prefix: string | null = null;\n\n if (command.regex && message.content.match(command.regex)) {\n const [match] = message.content.match(command.regex) || [null];\n\n if (match) commandName = command.name;\n }\n\n const cp = Array.isArray(command.prefix) ? command.prefix : [command.prefix as string];\n\n prefixes.map((p) => {\n if (message.content.startsWith(p)) prefix = p;\n });\n\n cp.map((p) => {\n if (message.content.startsWith(p)) prefix = p;\n });\n\n if (!prefix) return;\n\n if (!commandName)\n commandName =\n message.content\n .replace(prefix, '')\n .split(command.separator || / +/)\n .shift()\n ?.trim()\n ?.toLowerCase() || '';\n\n if (!this.client.commands.message.has(commandName) && command.aliases?.includes(commandName)) {\n commandAlias = commandName;\n\n commandName = command.name;\n }\n\n commandAlias = commandAlias ? commandAlias : commandName;\n\n commandPrefix = prefix;\n });\n\n if (!cmd && this.client.modules.options.message.allowMention) {\n if (message.mentions.users.has(this.client.user?.id as string) || message.mentions.repliedUser?.id === this.client.user?.id) {\n commandName = message.content.replace(`<@${this.client.user?.id}>`, '').trim().split(/ +/).shift()?.toLowerCase() || null;\n }\n }\n\n if (this.client.commands.message.has(commandName as string)) cmd = this.client.commands.message.get(commandName as string);\n\n if (await inhibitorValidation(message, cmd)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', message, filetype);\n\n message.util.parsed = {\n alias: commandAlias,\n prefix: commandPrefix,\n };\n\n this.client.emit('commandStart', message, filetype);\n\n return await this.exec(cmd, message, await messageArguments(message, cmd), filetype);\n }\n }\n\n private async slashCommandRun<T extends Record<string, any>>(interaction: XernerxSlashInteraction) {\n const filetype = 'SlashCommand';\n\n interaction.util = new InteractionUtil(this.client, interaction);\n\n interaction.user = await xernerxUser(interaction, this.client);\n\n let cmd: SlashCommandBuilder | null | undefined = null;\n\n if (this.client.commands.slash.has(interaction.commandName)) cmd = this.client.commands.slash.get(interaction.commandName);\n\n if (await inhibitorValidation(interaction, cmd as SlashCommandBuilder)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', interaction);\n\n new Promise(async (resolve) => {\n if (interaction.isAutocomplete()) {\n const focused = (interaction as T).options.getFocused(true);\n const options = (interaction as T).options;\n\n await (cmd as SlashCommandBuilder).autocomplete(interaction, focused, options);\n } else resolve(true);\n })\n .then(async () => {\n this.client.emit('commandStart', interaction, filetype);\n\n return await this.exec(cmd as SlashCommandBuilder, interaction, await interactionArguments(interaction, cmd as SlashCommandBuilder), filetype);\n })\n .catch((error) => this.client.emit('commandError', interaction, error, filetype));\n }\n\n private async contextCommandRun(interaction: XernerxUserContextInteraction | XernerxMessageContextInteraction) {\n const filetype = 'ContextCommand';\n\n interaction.util = new InteractionUtil(this.client, interaction);\n\n interaction.user = await xernerxUser(interaction as XernerxUserContextInteraction, this.client);\n\n let cmd;\n\n if (this.client.commands.context.has(interaction.commandName)) cmd = this.client.commands.context.get(interaction.commandName);\n\n if (await inhibitorValidation(interaction, cmd)) return;\n\n if (!cmd) return this.client.emit('commandNotFound', interaction, filetype);\n\n this.client.emit('commandStart', interaction, filetype);\n\n return await this.exec(cmd as unknown as SlashCommandBuilder, interaction, await interactionArguments(interaction, cmd), filetype);\n }\n\n private async exec(\n cmd: MessageCommandBuilder | SlashCommandBuilder | ContextCommandBuilder,\n event: XernerxMessage | XernerxSlashInteraction | XernerxMessageContextInteraction | XernerxUserContextInteraction,\n args: any,\n type: FileType\n ) {\n try {\n if (await commandValidation(event as XernerxMessage, cmd)) return;\n\n if (((cmd as MessageCommandBuilder).conditions as unknown) && (await ((cmd as MessageCommandBuilder).conditions(event as never, args) as unknown))) return;\n\n await cmd.exec(event as never, args);\n\n return await this.client.emit('commandFinish', event, type);\n } catch (error) {\n new XernerxLog(this.client).error(`An error occurred executing ${cmd.name}`, error);\n\n return await this.client.emit('commandError', event, error, type);\n }\n }\n}\n"]}
|