Compare commits

...

3 commits

Author SHA1 Message Date
3a7546e0df
Add ready event 2022-07-03 18:32:42 +02:00
efb87df67c
Add event loader 2022-07-03 18:32:39 +02:00
259f61c3e0
newline 2022-07-03 18:29:51 +02:00
4 changed files with 57 additions and 8 deletions

View file

@ -0,0 +1,5 @@
export const once = true;
export default async () => {
console.log('Connecté à Discord !');
};

36
src/events/loader.js Normal file
View file

@ -0,0 +1,36 @@
import { readdir } from 'fs/promises';
export default async client => {
const events_categories = (await readdir('./src/events'))
.filter(element => !element.endsWith('.js'));
events_categories.forEach(async event_category => {
// Retrieve events
const events = await readdir(`./src/events/${event_category}`);
// Load them into the client
Promise.all(
events.map(async event_file => {
const { once, default: execute } = await import(
`../events/${event_category}/${event_file}`
);
// Remove .js
let event_type = event_file.split('.');
if (event_type.pop() !== 'js') {
throw `Unknown file in ${event_category}: ${event_file}`;
}
event_type = event_type.join('.');
if (once) {
return client.once(event_type, (...args) => {
execute(...args, client);
});
}
return client.on(event_type, (...args) => {
execute(...args, client);
});
}),
);
});
};

View file

@ -1,23 +1,30 @@
import loadClient from './utils/client.js';
import loadEvents from './events/loader.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' });
(await import('dotenv')).config({ path: './config/.env' });
}
// Client Discord.JS
const client = await loadClient().catch(() => {
const client = await loadClient()
.catch(() => {
throw 'Client ❌';
});
if (client) {
console.log('Client ✅');
}
await loadEvents(client)
.then(() => console.log('Events ✅'))
.catch(() => {
throw 'Events ❌';
});
await client.login(client.config.token_discord);
console.log(`Botanique "${client.user.username}" ${client.config.version} started!`);
};
run().catch(error => console.error(error));

View file

@ -1,5 +1,6 @@
import { Client, Intents } from 'discord.js';
import { readFileSync } from 'fs';
const { version } = JSON.parse(readFileSync('./package.json'));
// Création du client et de ses propriétés