UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

56 lines (54 loc) 3 kB
"use strict"; const require_lib_types_Enums = require('../types/Enums.cjs'); const require_lib_utils_application_commands_getNeededParameters = require('../utils/application-commands/getNeededParameters.cjs'); const require_lib_utils_application_commands_registriesErrors = require('../utils/application-commands/registriesErrors.cjs'); const require_lib_utils_application_commands_ApplicationCommandRegistries = require('../utils/application-commands/ApplicationCommandRegistries.cjs'); const require_lib_structures_Command = require('./Command.cjs'); let __sapphire_pieces = require("@sapphire/pieces"); //#region src/lib/structures/CommandStore.ts /** * Stores all Command pieces * @since 1.0.0 */ var CommandStore = class extends __sapphire_pieces.AliasStore { constructor() { super(require_lib_structures_Command.Command, { name: "commands" }); } /** * Get all the command categories. */ get categories() { const categories = new Set(this.map((command) => command.category)); categories.delete(null); return [...categories]; } unload(name) { const piece = this.resolve(name); for (const nameOrId of piece.applicationCommandRegistry.chatInputCommands) if (this.aliases.get(nameOrId) === piece) this.aliases.delete(nameOrId); for (const nameOrId of piece.applicationCommandRegistry.contextMenuCommands) if (this.aliases.get(nameOrId) === piece) this.aliases.delete(nameOrId); require_lib_utils_application_commands_ApplicationCommandRegistries.registries.delete(piece.name); return super.unload(name); } async loadAll() { await super.loadAll(); if (!this.container.client.application) return; for (const command of this.values()) if (command.registerApplicationCommands) try { await command.registerApplicationCommands(command.applicationCommandRegistry); } catch (error) { require_lib_utils_application_commands_registriesErrors.emitPerRegistryError(error, command); } if (require_lib_utils_application_commands_ApplicationCommandRegistries.getDefaultBehaviorWhenNotIdentical() === require_lib_types_Enums.RegisterBehavior.BulkOverwrite) { await require_lib_utils_application_commands_ApplicationCommandRegistries.handleBulkOverwrite(this, this.container.client.application.commands); return; } const { applicationCommands, globalCommands, guildCommands } = await require_lib_utils_application_commands_getNeededParameters.getNeededRegistryParameters(require_lib_utils_application_commands_ApplicationCommandRegistries.allGuildIdsToFetchCommandsFor); for (const command of this.values()) { await command.applicationCommandRegistry["runAPICalls"](applicationCommands, globalCommands, guildCommands); for (const nameOrId of command.applicationCommandRegistry.chatInputCommands) this.aliases.set(nameOrId, command); for (const nameOrId of command.applicationCommandRegistry.contextMenuCommands) this.aliases.set(nameOrId, command); } } }; //#endregion exports.CommandStore = CommandStore; //# sourceMappingURL=CommandStore.cjs.map