summaryrefslogtreecommitdiff
path: root/index.js
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2023-09-02 19:12:47 -0400
committersowgro <tpoke.ferrari@gmail.com>2023-09-02 19:12:47 -0400
commite4450c8417624b71d779cb4f41692538f9165e10 (patch)
treeb70826542223ecdf8a7a259f61b0a1abb8a217d8 /index.js
downloadsowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.gz
sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.tar.bz2
sowbot3-e4450c8417624b71d779cb4f41692538f9165e10.zip
first commit
Diffstat (limited to 'index.js')
-rw-r--r--index.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..aff07a0
--- /dev/null
+++ b/index.js
@@ -0,0 +1,52 @@
+const fs = require('node:fs');
+const path = require('node:path');
+const { Client, Collection, Events, GatewayIntentBits } = require('discord.js');
+const { token } = require('./config.json');
+const client = new Client({ intents: [GatewayIntentBits.Guilds] });
+global.data = require('./data.js');
+
+client.once(Events.ClientReady, c => {
+ console.log(`Ready! Logged in as ${c.user.tag}`);
+});
+
+client.login(token);
+
+client.commands = new Collection();
+
+//some file reading action to scan for everything in commands/*.js and add them to the collection
+const commandsPath = path.join(__dirname, 'commands');
+const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
+for (const file of commandFiles) {
+ const filePath = path.join(commandsPath, file);
+ const command = require(filePath);
+ // Set a new item in the Collection with the key as the command name and the value as the exported module
+ if ('data' in command && 'execute' in command) {
+ client.commands.set(command.data.name, command);
+ } else {
+ console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
+ }
+}
+
+//listens for the command and directs the action to the corresponding file
+client.on(Events.InteractionCreate, async interaction => {
+ if (!interaction.isChatInputCommand()) return;
+
+ const command = interaction.client.commands.get(interaction.commandName);
+ // console.log(interaction.client.commands);
+
+ if (!command) {
+ console.error(`No command matching ${interaction.commandName} was found.`);
+ return;
+ }
+
+ try {
+ await command.execute(interaction);
+ } catch (error) {
+ console.error(error);
+ if (interaction.replied || interaction.deferred) {
+ await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
+ } else {
+ await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
+ }
+ }
+}); \ No newline at end of file