require("dotenv").config(); const { Client, Collection, Intents } = require("discord.js"); const { clientId, guildId } = require("./config.json"); const { REST } = require("@discordjs/rest"); const { Routes } = require("discord-api-types/v9"); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_PRESENCES, Intents.FLAGS.GUILD_VOICE_STATES, ], }); const fs = require("fs"); client.commands = new Collection(); client.login(process.env.PANDEMONIUM_BOT_TOKEN); const commands = []; const commandFiles = fs .readdirSync("./commands") .filter((file) => file.endsWith(".js")); for (const file of commandFiles) { const command = require(`./commands/${file}`); client.commands.set(command.data.name, command); commands.push(command.data.toJSON()); } const rest = new REST({ version: "9" }).setToken( process.env.PANDEMONIUM_BOT_TOKEN ); (async () => { try { console.log("Started refreshing application (/) commands."); await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands, }); console.log("Successfully reloaded application (/) commands."); } catch (error) { console.error(error); } })(); client.on("interactionCreate", async (interaction) => { if (!interaction.isCommand()) return; const command = client.commands.get(interaction.commandName); if (!command) return; try { await command.execute(interaction); } catch (error) { console.error(error); await interaction.reply({ content: "There was an error while executing this command!", ephemeral: true, }); } }); const eventFiles = fs .readdirSync("./events") .filter((file) => file.endsWith(".js")); for (const file of eventFiles) { const event = require(`./events/${file}`); if (event.once) { client.once(event.name, (...args) => event.execute(client, ...args)); } else { client.on(event.name, (...args) => event.execute(client, ...args)); } }