Bot Discord : Comment intégrer une collection dans un JSON
Fermé
WebReveuse
Messages postés
15
Date d'inscription
vendredi 31 mai 2019
Statut
Membre
Dernière intervention
1 juin 2020
-
Modifié le 30 mai 2020 à 10:11
WebReveuse Messages postés 15 Date d'inscription vendredi 31 mai 2019 Statut Membre Dernière intervention 1 juin 2020 - 1 juin 2020 à 04:56
WebReveuse Messages postés 15 Date d'inscription vendredi 31 mai 2019 Statut Membre Dernière intervention 1 juin 2020 - 1 juin 2020 à 04:56
A voir également:
- Bot Discord : Comment intégrer une collection dans un JSON
- Discord mac - Télécharger - Téléphonie & Visio
- Créer un compte discord - Guide
- Stream mis en pause discord - Forum Audio
- Supprimer conversation discord ✓ - Forum Discord
- Connexion sctr discord - Forum Discord
1 réponse
WebReveuse
Messages postés
15
Date d'inscription
vendredi 31 mai 2019
Statut
Membre
Dernière intervention
1 juin 2020
Modifié le 1 juin 2020 à 05:01
Modifié le 1 juin 2020 à 05:01
Bon au final j'ai trouvé en cherchant un peu... Le problème avec cette méthode est qu'il faut créer et modifier au besoin l'Objet nécessaire à l'exportation en JSON.
Pour exporter une Collection en JSON j'ai donc dû passer par un Objet, puis en initialisant chaque variable avec celle de la Collection.
J'ai deux Collections initiales appelées client.env et envVariables.
Ensuite je créer une fonction permettant de charger le fichier de configuration dès le démarrage de mon bot (à placer donc à l'extérieur de toute autre fonction, si possible dès le début de votre code, après les affectations de constantes) :
Ne pas oublier de mettre
Cette partie est donc à insérer dans votre fichier principal,
Pour affecter les variables d'environnement en temps réel, j'ai personnellement opté pour un fichier de commande appelé
Pour affecter la bonne valeur à la bonne variable en fonction du serveur où l'on se trouve j'ai procédé de la manière suivante :
Insérez ce code dans la partie où l'utilisateur tape la commande de configuration. Par exemple basiquement dans
C'est aussi simple que ça pour exporter une Collection en format JSON, et oui ! :D
Pour exporter une Collection en JSON j'ai donc dû passer par un Objet, puis en initialisant chaque variable avec celle de la Collection.
J'ai deux Collections initiales appelées client.env et envVariables.
client.env = new Collection(); const variablesEnv = new Collection();
Ensuite je créer une fonction permettant de charger le fichier de configuration dès le démarrage de mon bot (à placer donc à l'extérieur de toute autre fonction, si possible dès le début de votre code, après les affectations de constantes) :
function loadEnvVariables(JSONsave = require("<chemin du fichier de configuration>")) { JSONsave.forEach(object => { const envVariables = object.envVariables; variablesEnv.set("prefix", envVariables.prefix); variablesEnv.set("welcome", envVariables.welcome); client.env.set(object.guildID, variablesEnv); }); } loadEnvVariables();
Ne pas oublier de mettre
loadEnvVariables();à la fin pour exécuter la fonction au démarrage du bot.
Cette partie est donc à insérer dans votre fichier principal,
main.js,
index.jsou tout autre nom de fichier et permet de récupérer le contenu du fichier JSON afin de l'affecter à
client.env.
client.envcontient les variables d'environnement que le bot utilisera.
envVariables
est uniquement utilisée dans la fonction pour récupérer toutes les variables d'environnement. Elle est donc inutile pour la suite.
Pour affecter les variables d'environnement en temps réel, j'ai personnellement opté pour un fichier de commande appelé
cfg.jsaccessible via la commande
?cfg. Mais peu importe de comment vous procédez, cela reste pareil au même.
Pour affecter la bonne valeur à la bonne variable en fonction du serveur où l'on se trouve j'ai procédé de la manière suivante :
let toJSON = new Array(); function envConfig(guildID, envVariables) { this.guildID = guildID; this.envVariables = envVariables; } client.env.each((collec, guildID) => { let envCfg = new envConfig(guildID, { prefix: collec.get("prefix"), welcome: collec.get("welcome") }); toJSON.push(envCfg); }); let configJSON = JSON.stringify(toJSON); writeFile("<chemin du fichier de configuration>", configJSON, err => { if (err) throw err; });
Insérez ce code dans la partie où l'utilisateur tape la commande de configuration. Par exemple basiquement dans
client.on("message")ou comme moi dans un fichier à part
cfg.js.
C'est aussi simple que ça pour exporter une Collection en format JSON, et oui ! :D