From f4be4416f8a306b89bd05603646a8242f3b7b973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20Olausson=20Holten=C3=A4s?= Date: Sun, 13 Mar 2022 12:53:09 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20index.js=20is=20now=20splitted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/events/ready.js | 4 ++ src/handlers/commands.js | 13 +++++ src/handlers/events.js | 16 +++++++ src/handlers/index.js | 5 ++ .../deployCommands.js} | 18 +++---- src/helpers/index.js | 4 ++ src/index.js | 48 +++++++------------ 7 files changed, 64 insertions(+), 44 deletions(-) create mode 100644 src/handlers/commands.js create mode 100644 src/handlers/events.js create mode 100644 src/handlers/index.js rename src/{deploy-commands.js => helpers/deployCommands.js} (62%) create mode 100644 src/helpers/index.js diff --git a/src/events/ready.js b/src/events/ready.js index 0a32014..8bf54d7 100644 --- a/src/events/ready.js +++ b/src/events/ready.js @@ -1,5 +1,7 @@ const logger = require('../handlers/logger'); +const { database, deployCommands } = require('../helpers'); + module.exports = { name: 'ready', once: true, @@ -14,5 +16,7 @@ module.exports = { ], status: 'online', }); + + await deployCommands(); }, }; diff --git a/src/handlers/commands.js b/src/handlers/commands.js new file mode 100644 index 0000000..2f91cee --- /dev/null +++ b/src/handlers/commands.js @@ -0,0 +1,13 @@ +const fs = require('fs'); // fs +const { Collection } = require('discord.js'); // discord.js + +module.exports = async (client) => { + client.commands = new Collection(); + const commandFiles = fs.readdirSync('./src/commands'); + + for (const file of commandFiles) { + // eslint-disable-next-line import/no-dynamic-require, global-require + const command = require(`../commands/${file}`); + client.commands.set(command.data.name, command); + } +}; diff --git a/src/handlers/events.js b/src/handlers/events.js new file mode 100644 index 0000000..175e9ba --- /dev/null +++ b/src/handlers/events.js @@ -0,0 +1,16 @@ +const fs = require('fs'); // fs + +module.exports = async (client) => { + const eventFiles = fs + .readdirSync('./src/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(...args)); + } else { + client.on(event.name, (...args) => event.execute(...args)); + } + } +}; diff --git a/src/handlers/index.js b/src/handlers/index.js new file mode 100644 index 0000000..ab4a615 --- /dev/null +++ b/src/handlers/index.js @@ -0,0 +1,5 @@ +const events = require('./events'); +const commands = require('./commands'); +const locale = require('./locale'); + +module.exports = { events, commands, locale }; diff --git a/src/deploy-commands.js b/src/helpers/deployCommands.js similarity index 62% rename from src/deploy-commands.js rename to src/helpers/deployCommands.js index 1b64f2c..d488470 100644 --- a/src/deploy-commands.js +++ b/src/helpers/deployCommands.js @@ -1,22 +1,16 @@ -/* eslint-disable no-restricted-syntax */ -const config = require('../config.json'); - -const logger = require('./handlers/logger'); +const config = require('../../config.json'); +const logger = require('../handlers/logger'); +const fs = require('fs'); +const { REST } = require('@discordjs/rest'); +const { Routes } = require('discord-api-types/v9'); module.exports = async () => { - // eslint-disable-next-line global-require - const fs = require('fs'); - // eslint-disable-next-line global-require - const { REST } = require('@discordjs/rest'); - // eslint-disable-next-line global-require - const { Routes } = require('discord-api-types/v9'); - const commands = []; const commandFiles = fs.readdirSync('./src/commands'); for (const file of commandFiles) { // eslint-disable-next-line import/no-dynamic-require, global-require - const command = require(`./commands/${file}`); + const command = require(`../commands/${file}`); commands.push(command.data.toJSON()); } diff --git a/src/helpers/index.js b/src/helpers/index.js new file mode 100644 index 0000000..b63f4e0 --- /dev/null +++ b/src/helpers/index.js @@ -0,0 +1,4 @@ +const database = require('./database'); +const deployCommands = require('./deployCommands'); + +module.exports = { database, deployCommands }; diff --git a/src/index.js b/src/index.js index 75a879e..e5c563c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,37 +1,21 @@ -const fs = require('fs'); -const { Client, Collection, Intents } = require('discord.js'); +// Dependencies +const { Client, Intents } = require('discord.js'); // discord.js -require('./deploy-commands')(); -require('./helpers/database')(); -require('./handlers/locale')(); +const { database } = require('./helpers'); // helpers +const { events, commands, locale } = require('./handlers'); // handlers -const config = require('../config.json'); +const config = require('../config.json'); // config.json -const client = new Client({ - intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES], -}); +(async () => { + // Initialize discord.js client + const client = new Client({ + intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES], + }); -const eventFiles = fs - .readdirSync('./src/events') - .filter((file) => file.endsWith('.js')); + await database(); + await locale(); + await events(client); + await commands(client); -client.commands = new Collection(); -const commandFiles = fs.readdirSync('./src/commands'); - -for (const file of commandFiles) { - // eslint-disable-next-line import/no-dynamic-require, global-require - const command = require(`./commands/${file}`); - client.commands.set(command.data.name, command); -} - -for (const file of eventFiles) { - // eslint-disable-next-line import/no-dynamic-require, global-require - const event = require(`./events/${file}`); - if (event.once) { - client.once(event.name, (...args) => event.execute(...args)); - } else { - client.on(event.name, (...args) => event.execute(...args)); - } -} - -client.login(config.bot.token); + await client.login(config.bot.token); +})();