64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import 'dotenv/config';
|
|
import { REST, Routes } from 'discord.js';
|
|
|
|
const TOKEN = process.env.DISCORD_TOKEN;
|
|
const CLIENT_ID = process.env.DISCORD_CLIENT_ID;
|
|
|
|
const commands = [
|
|
{
|
|
name: 'register',
|
|
description: 'Send a registration message with a button'
|
|
},
|
|
{
|
|
name: 'load',
|
|
description: 'Load a list of Steam keys from a file',
|
|
options: [
|
|
{
|
|
name: 'file',
|
|
description: 'Text file with one Steam key per line',
|
|
type: 11, // Attachment
|
|
required: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: 'setlogging',
|
|
description: 'Set the logging channel for key warnings',
|
|
options: [
|
|
{
|
|
name: 'channel',
|
|
description: 'Channel to send logging messages to',
|
|
type: 7, // Channel
|
|
required: true
|
|
}
|
|
]
|
|
}
|
|
];
|
|
|
|
const rest = new REST({ version: '10' }).setToken(TOKEN);
|
|
|
|
(async () => {
|
|
try {
|
|
// Fetch all current global commands
|
|
const currentCommands = await rest.get(
|
|
Routes.applicationCommands(CLIENT_ID)
|
|
);
|
|
|
|
// Delete each existing command
|
|
for (const cmd of currentCommands) {
|
|
await rest.delete(
|
|
Routes.applicationCommand(CLIENT_ID, cmd.id)
|
|
);
|
|
console.log(`Deleted command: ${cmd.name}`);
|
|
}
|
|
|
|
// Register new commands
|
|
await rest.put(
|
|
Routes.applicationCommands(CLIENT_ID),
|
|
{ body: commands }
|
|
);
|
|
console.log('Global slash commands registered.');
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
})(); |