Des micro fix

This commit is contained in:
Zachary Guénot
2023-05-13 23:19:50 +02:00
parent e13daf5006
commit 8bdbef1314

27
app.js
View File

@@ -1,25 +1,30 @@
// PACKAGES AND VARIABLES // PACKAGES
const fs = require('fs') const fs = require('fs')
const { Client, Collection, GatewayIntentBits, REST, Routes } = require('discord.js') const { Client, Collection, GatewayIntentBits, REST, Routes } = require('discord.js')
const { Player } = require("discord-player") const { Player } = require('discord-player')
const { YouTubeExtractor, SpotifyExtractor } = require("@discord-player/extractor") const { YouTubeExtractor, SpotifyExtractor } = require('@discord-player/extractor')
require('dotenv').config() require('dotenv').config()
// CLIENT INITIALIZATION
let intents = [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildVoiceStates] let intents = [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildVoiceStates]
const client = new Client({ intents }) const client = new Client({ intents })
// EVENTS HANDLING // EVENTS HANDLING
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js')) const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'))
for (const file of eventFiles) { for (file of eventFiles) {
let event = require(`./events/${file}`) let event = require(`./events/${file}`)
if (event.once) client.once(event.name, (...args) => { event.execute(...args) }) if (event.once) client.once(event.name, (...args) => { event.execute(...args) })
else client.on(event.name, (...args) => { event.execute(...args) }) else client.on(event.name, (...args) => { event.execute(...args) })
} }
// COMMANDS HANDLING // COMMANDS HANDLING
client.commands = new Collection() client.commands = new Collection()
let commands = [] let commands = []
let commandFolders = fs.readdirSync('./commands')
const commandFolders = fs.readdirSync('./commands')
for (folder of commandFolders) { for (folder of commandFolders) {
let folderPath = `./commands/${folder}` let folderPath = `./commands/${folder}`
let commandFiles = fs.readdirSync(folderPath).filter(file => file.endsWith('.js')) let commandFiles = fs.readdirSync(folderPath).filter(file => file.endsWith('.js'))
@@ -30,6 +35,7 @@ for (folder of commandFolders) {
} }
} }
// COMMANDS REGISTERING // COMMANDS REGISTERING
const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN); const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN);
(async () => { (async () => {
@@ -37,27 +43,32 @@ const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN);
catch (error) { console.error(error) } catch (error) { console.error(error) }
})() })()
// BUTTONS HANDLING // BUTTONS HANDLING
client.buttons = new Collection() client.buttons = new Collection()
let buttonFiles = fs.readdirSync('./buttons').filter(file => file.endsWith('.js'))
for (const file of buttonFiles) { const buttonFiles = fs.readdirSync('./buttons').filter(file => file.endsWith('.js'))
for (file of buttonFiles) {
let button = require(`./buttons/${file}`) let button = require(`./buttons/${file}`)
if ('id' in button && 'execute' in button) client.buttons.set(button.id, button) if ('id' in button && 'execute' in button) client.buttons.set(button.id, button)
else console.log(`\u001b[1;35m [WARNING] The button ${file} is missing a required "id" or "execute" property.`) else console.log(`\u001b[1;35m [WARNING] The button ${file} is missing a required "id" or "execute" property.`)
} }
// PLAYER INITIALIZATION // PLAYER INITIALIZATION
const player = new Player(client, { autoRegisterExtractor: false }) const player = new Player(client, { autoRegisterExtractor: false })
player.extractors.register(YouTubeExtractor) player.extractors.register(YouTubeExtractor)
player.extractors.register(SpotifyExtractor) player.extractors.register(SpotifyExtractor)
// PLAYER EVENTS HANDLING // PLAYER EVENTS HANDLING
const eventPlayerFiles = fs.readdirSync('./eventsPlayer').filter(file => file.endsWith('.js')) const eventPlayerFiles = fs.readdirSync('./eventsPlayer').filter(file => file.endsWith('.js'))
for (const file of eventPlayerFiles) { for (file of eventPlayerFiles) {
let event = require(`./eventsPlayer/${file}`) let event = require(`./eventsPlayer/${file}`)
if (['debug'].includes(event.name)) continue if (['debug'].includes(event.name)) continue
player.events.on(event.name, (...args) => event.execute(...args)) player.events.on(event.name, (...args) => event.execute(...args))
} }
// LAUNCH // LAUNCH
client.login() client.login()