Split into multiple files #18
1 changed files with 18 additions and 25 deletions
43
src/index.js
43
src/index.js
|
@ -1,31 +1,24 @@
|
|||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const { Client, Collection, Intents } = require('discord.js');
|
||||
const { token } = require('../config/config.json');
|
||||
const { Client, Intents } = require('discord.js');
|
||||
|
||||
const run = async () => {
|
||||
console.log('Starting Botanique...');
|
||||
|
||||
// Load .env if not in prod
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
const dotenv = await import('dotenv');
|
||||
dotenv.config({ path: './config/.env' });
|
||||
}
|
||||
|
||||
// Client Discord.JS
|
||||
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
|
||||
|
||||
/* EVENT */
|
||||
const eventsPath = path.join(__dirname, 'events');
|
||||
const eventFiles = fs.readdirSync(eventsPath).filter(file => file.endsWith('.js'));
|
||||
|
||||
for (const file of eventFiles) {
|
||||
const event = require(path.join(eventsPath, file));
|
||||
if (event.once) {
|
||||
client.once(event.name, (...args) => event.execute(...args));
|
||||
client.config = { token_discord: process.env.TOKEN_DISCORD };
|
||||
if (client) {
|
||||
console.log('Client ✅');
|
||||
} else {
|
||||
client.on(event.name, async (...args) => event.execute(...args));
|
||||
}
|
||||
throw 'Client ❌';
|
||||
}
|
||||
|
||||
/* COMMANDS */
|
||||
client.commands = new Collection();
|
||||
const commandsPath = path.join(__dirname, 'commands');
|
||||
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
|
||||
await client.login(client.config.token_discord);
|
||||
};
|
||||
|
||||
for (const file of commandFiles) {
|
||||
const command = require(path.join(commandsPath, file));
|
||||
client.commands.set(command.data.name, command);
|
||||
}
|
||||
|
||||
client.login(token);
|
||||
run().catch(error => console.error(error));
|
||||
|
|
Loading…
Reference in a new issue