Avoir un salon de logs par serveur pour un bot Discord ?

Résolu/Fermé
Aquaran88 Messages postés 154 Date d'inscription lundi 8 juin 2020 Statut Membre Dernière intervention 25 mars 2022 - 7 août 2020 à 17:16
 DARK_ECNELIS - 7 nov. 2020 à 22:10
Bonjour,

J'ai presque terminée mon bot Discord programmé en Javascript.

Mais j'aimerai le mettre sur plusieurs serveurs (pas plus de trois) et le problème c'est que il utilise un salon de logs qui est définit par l'id du salon du serveur.

Voici la partie de la commande purge pour envoyer un embed :

const embed = new MessageEmbed()
      .setAuthor(message.author.tag, message.author.avatarURL())
      .setColor("#287db5")
      .setDescription(`**Action** : purge\n**Nbr de messages** : ${args[0]}\n**Salon** : ${message.channel}`)

    client.channels.cache.get('739531869389062308').send(embed);


J'utilise un fichier config.js qui me permet d'exporter le token du bot et son préfix :

exports.TOKEN = "Le token du bot";
exports.PREFIX = "?";


Ce qui m'est venu à l'idée ce serai d'exporter l'id du salon via la commande ?logchannel <channel_id> par exemple, de sauvegarder l'id dans une constante et de réutiliser l'id dans chaque commande qui en à besoin et ce sur chaque serveur.

Sachant que je viens de débuter le Javascript et que je n'ai acquis que les bases.

En vous remerciant,

Aquaran.

2 réponses

quent217 Messages postés 420 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 6 décembre 2020 314
8 août 2020 à 01:34
Bonjour,
vous pouvez simplement créer un dictionnaire en javascript qui associe chaque id de serveur à l'id du salon de log correspondant.
À chaque fois que la commande logchannel est utilisée, vous mettez à jour le dictionnaire, et à chaque fois que vous voulez poster un message de log, vous utilisez l'id dans le dictionnaire.
Lorsque le bot recoit un message, il peut récupérer l'id du serveur avec
message.guild.id
.

Par contre avec cette méthode, le dictionnaire sera réinitialiser à chaque fois que vous relancez le bot, donc il faudra refaire les commande logchannel sur chaque serveur à chaque fois que le bot est relancé.
Pour éviter ça, vous pouvez sauvegarder les informations dans un fichier par exemple et charger le fichier au lancement du programme.
0
Aquaran88 Messages postés 154 Date d'inscription lundi 8 juin 2020 Statut Membre Dernière intervention 25 mars 2022 36
9 août 2020 à 19:04
Merci pour votre réponse et c'est à peut près ce que j'ai réussi à faire.

J'ai utilisé MongoDB pour sauvegarder les serveurs avec leurs id de salons de logs.
0
DARK_ECNELIS
7 nov. 2020 à 22:10
Salut j'ai peut près le même problème que toi sauf que moi j'arrive pas a récupérer le nom du logChannel su mongodb
0