mirror of
https://github.com/ahmadk953/poixpixel-discord-bot.git
synced 2025-04-02 09:44:14 +00:00
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { REST, Routes } from 'discord.js';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
const config = JSON.parse(fs.readFileSync('./config.json', 'utf8'));
|
|
const { token, clientId, guildId } = config;
|
|
|
|
const __dirname = path.resolve();
|
|
const commandsPath = path.join(__dirname, 'target', 'commands');
|
|
const commandFiles = fs
|
|
.readdirSync(commandsPath)
|
|
.filter((file) => file.endsWith('.js'));
|
|
|
|
const rest = new REST({ version: '9' }).setToken(token);
|
|
|
|
export const deployCommands = async () => {
|
|
try {
|
|
console.log(
|
|
`Started refreshing ${commandFiles.length} application (/) commands.`
|
|
);
|
|
|
|
const commands = commandFiles.map(async (file) => {
|
|
const filePath = path.join('file://', commandsPath, file);
|
|
const commandModule = await import(filePath);
|
|
const command = commandModule.default;
|
|
|
|
if (command instanceof Object && 'data' in command) {
|
|
return command.data.toJSON();
|
|
}
|
|
else {
|
|
console.log(
|
|
`[WARNING] The command at ${filePath} is missing a required "data" property.`
|
|
);
|
|
return null;
|
|
}
|
|
});
|
|
|
|
const validCommands = await Promise.all(
|
|
commands.filter((command) => command !== null)
|
|
);
|
|
|
|
const data: any = await rest.put(
|
|
Routes.applicationGuildCommands(clientId, guildId),
|
|
{ body: validCommands }
|
|
);
|
|
|
|
console.log(
|
|
`Successfully reloaded ${data.length} application (/) commands.`
|
|
);
|
|
}
|
|
catch (error) {
|
|
console.error(error);
|
|
}
|
|
};
|