JaBa/handlers/command-handler/functions/registerCommands.js
2024-12-06 23:58:15 +03:00

19 lines
659 B
JavaScript

export default async function registerCommands(props) {
const globalCommands = props.commands.filter(cmd => !cmd.options?.devOnly);
await registerGlobalCommands(props.client, globalCommands);
}
const registerGlobalCommands = async (client, commands) => {
const appCommandsManager = client.application.commands;
await appCommandsManager.fetch();
const newCommands = commands.filter(cmd => !appCommandsManager.cache.some(existingCmd => existingCmd.name === cmd.data.name));
await Promise.all(
newCommands.map(data =>
appCommandsManager.create(data).catch(() => {
throw new Error(`Failed to register command: ${data.name}`);
}),
),
);
};