Mon bot discord bug ?
Résolu
Bilou94
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
Lolo -
Lolo -
A voir également:
- L'application ne répond plus bot discord
- Application mobile - Guide
- Mon écran se fige et plus rien ne répond - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application windows - Guide
- Comment supprimer une application préinstallée sur android - Guide
2 réponses
Bonjour,
Dans ton code, là :
C'est un peu fait à l'envers...
Le « ; » après le if doit être enlevé ; De plus, comme il n'y a pas d'accolades, le message.channel.send est exécuté indépendamment du if. Donc à chaque message il répond, et du coup ensuite, se répond à lui-même.
Déjà ça, ça ira mieux.
Tu peux aussi empêcher dès le début qu'il se réponde à lui-même :
(Je crois que ça peut se faire comme ça. J'ai jamais développé pour Discord, mais j'ai eu l'impression en lisant ton code que client.user.username était le nom de ton bot)
Xavier
Dans ton code, là :
if (message.content.startsWith(prefix + 'slt')); if (!message.guild) return message.channel.send("Bonjour " + message.author + " :slight_smile: !");
C'est un peu fait à l'envers...
Le « ; » après le if doit être enlevé ; De plus, comme il n'y a pas d'accolades, le message.channel.send est exécuté indépendamment du if. Donc à chaque message il répond, et du coup ensuite, se répond à lui-même.
if (!message.guild) return; if (message.content.startsWith(prefix + 'slt')) message.channel.send("Bonjour " + message.author + " :slight_smile: !");
Déjà ça, ça ira mieux.
Tu peux aussi empêcher dès le début qu'il se réponde à lui-même :
if (!message.guild) return; if (client.user.username == message.author) return; if (message.content.startsWith(prefix + 'slt')) message.channel.send("Bonjour " + message.author + " :slight_smile: !");
(Je crois que ça peut se faire comme ça. J'ai jamais développé pour Discord, mais j'ai eu l'impression en lisant ton code que client.user.username était le nom de ton bot)
Xavier
Déjà y a un problème tu as deux fois
Commence par tout rassembler ensemble.
Et puis pour ce soucis c'est normal qu'il te réponde à l'infini, car ton bot exécute les commandes relatives aux messages DÈS qu'il détecte un message dans le serveur.
Autrement dit quand il va répondre à ta commande il va détecter son propre message et donc se répondre, et ainsi de suite jusqu'à ce que ton processeur fume...
Donc ajoute une condition au tout début (juste après le
La condition que j'utilise est celle-ci :
La partie
Quand l'une de ces 2 conditions est validée on quitte la fonction et le message n'est pas pris en compte par le bot.
Le problème devrait être résolu.
client.on("message", message => {})dans ton code.
Commence par tout rassembler ensemble.
Et puis pour ce soucis c'est normal qu'il te réponde à l'infini, car ton bot exécute les commandes relatives aux messages DÈS qu'il détecte un message dans le serveur.
Autrement dit quand il va répondre à ta commande il va détecter son propre message et donc se répondre, et ainsi de suite jusqu'à ce que ton processeur fume...
Donc ajoute une condition au tout début (juste après le
client.on("message", message => {) pour empêcher que ton bot ou un autre bot fasse ce genre de boucle.
La condition que j'utilise est celle-ci :
if(!msg.content.toLowerCase().startsWith(client.config.prefix) || msg.author.bot) return;
La partie
!msg.content.toLowerCase().startsWith(client.config.prefix)permet de vérifier que le message ne contient pas le préfixe de ta commande et
msg.author.botpermet de vérifier si l'auteur du message est bien un bot.
Quand l'une de ces 2 conditions est validée on quitte la fonction et le message n'est pas pris en compte par le bot.
Le problème devrait être résolu.
Le problème est résolu ^^
Couxou j'ai la même chose et je ne comprend pas comment faire sertaine photo de mais bot ne s'affiche plus?