sakobo/src/register.ts

41 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-01-17 10:28:24 +01:00
import { config as configDotenv } from 'dotenv';
configDotenv();
import commandList from "./commandList";
import { REST, Routes } from 'discord.js';
function registerGlobal(rest: REST, clientId: string, commands: any){
rest.put(Routes.applicationCommands(clientId), { body: commands })
.then(() => { console.log(`Successfully registered ${commands.length} / commands globally. Please wait until 2 hours before they are updated`); })
.catch(console.error);
}
function registerLocal(rest: REST, clientId: string, commands: any, guilds: string[]){
for (const guildId of guilds) {
rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands })
.then(() => { console.log(`Successfully registered ${commands.length} / commands in guild ${guildId}`); })
.catch(console.error);
}
}
const clientId = process.env.CLIENT_ID;
const commands = [];
for (let command of commandList) {
commands.push(command.data.toJSON());
}
2025-01-17 10:55:17 +01:00
if (process.env.GUILD_IDS === void 0){
console.warn('GUILD_IDS not set, registering commands globally');
}
const guilds = (process.env.GUILD_IDS ?? '').trim().split(/[\s,;]+/);
2025-01-17 10:28:24 +01:00
const rest = new REST({ version: '10' }).setToken(process.env.TOKEN);
if (guilds.length === 0){
registerGlobal(rest, clientId, commands);
} else {
registerLocal(rest, clientId, commands, guilds);
}