Version 1.1.0 - Refactor + Intergration Backend
This commit is contained in:
74
src/discord/CommandUpdater.js
Normal file
74
src/discord/CommandUpdater.js
Normal file
@@ -0,0 +1,74 @@
|
||||
function init() {
|
||||
|
||||
const bot = require("./Bot")
|
||||
const client = bot.getClient()
|
||||
const { Collection, REST, Routes } = require("discord.js")
|
||||
const fs = require("node:fs")
|
||||
const path = require("path")
|
||||
const {__glob} = require("../utils/GlobalVars")
|
||||
const dlog = require("loguix").getInstance("Discord")
|
||||
const config = require("../utils/Database/Configuration")
|
||||
|
||||
client.commands = new Collection()
|
||||
dlog.step.init("d_init", "Initialisation du Bot Discord")
|
||||
dlog.step.init("d_get_commands", "Récupération des commandes en local depuis : " + __glob.COMMANDS)
|
||||
|
||||
const commands = [];
|
||||
// Grab all the command files from the commands directory you created earlier
|
||||
const commandsPath = __glob.COMMANDS
|
||||
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
|
||||
|
||||
for (const file of commandFiles) {
|
||||
const cmd = require(commandsPath + path.sep + file);
|
||||
client.commands.set(cmd.command.getName(), cmd.command.getData())
|
||||
|
||||
commands.push(cmd.command.getData().data.toJSON());
|
||||
}
|
||||
|
||||
|
||||
dlog.step.end("d_get_commands")
|
||||
|
||||
const rest = new REST().setToken(config.getToken());
|
||||
|
||||
if(commands.length != 0) {
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
|
||||
|
||||
const guilds = client.guilds.cache.map(guild => guild.id);
|
||||
|
||||
dlog.step.init("d_commands_refresh", `Refreshing ${guilds.length} guilds (/) commands.`);
|
||||
for (const guildId of guilds) {
|
||||
const data = await rest.put(
|
||||
Routes.applicationGuildCommands(client.user.id, guildId),
|
||||
{ body: commands },
|
||||
);
|
||||
|
||||
// Log the guilds where the commands have been refreshed with number of commands
|
||||
dlog.log(`Refreshed "${data.length}" commands in guild "${guildId} - ${client.guilds.cache.get(guildId).name}"`);
|
||||
|
||||
}
|
||||
|
||||
dlog.step.end("d_commands_refresh")
|
||||
} catch (error) {
|
||||
// And of course, make sure you catch and log any errors!
|
||||
dlog.error(error)
|
||||
}
|
||||
|
||||
|
||||
|
||||
})();
|
||||
|
||||
} else {
|
||||
dlog.warn("Aucune commande à envoyer à Discord !")
|
||||
}
|
||||
|
||||
|
||||
rest.on("rateLimited", (datawarn) => {
|
||||
dlog.warn("REST - Limite de requête atteinte ! TimeToReset : " + datawarn.timeToReset);
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
module.exports = {init}
|
Reference in New Issue
Block a user