@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
56 lines (54 loc) • 3 kB
JavaScript
;
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