Bonsoir, je cherche comment faire pour que quand quelqu'un écris un mot (ici c'est GG, c'est juste pour l'exemple), mais à la place de mettre plusieurs fois message.content.includes('gg') le mettre qu'une seule fois met que ça fonctionne quand même s'il est écris d'une autre manière (par exemple: Gg, GG, gG).
Voici mon code actuel:
if (message.content.includes('gg') || message.content.includes('GG') || message.content.includes('Gg') || message.content.includes('gG')) {
message.delete()
message.channel.sendMessage("**@&#$%!**")
message.author.send('Le mot **GG** est interdit!')
}
Il y a un problème car quand le Bot vas répondre "bonjour!" , il vas s'auto réponde juste après. Donc ça vas être une boucle sans fin car il y a aussi"bonjour" dans le includesRealy T-T . Voilà Voilà
Pour l'info, si tu souhaite géré plusieurs chaîne de caractère différente (par exemple, "GG", "lol" et/ou encore "rip"), tu peut passer par une fonction.
Ce que je te conseille de faire même si tu ne vérifie qu'un seul mots pour le moment, en effet dans le future il ce peut que tu ai besoin de vérifier également d'autre mots. Ça n'engage que moi, mais je pense qu'il est plus simple de rajouter des mots dans un Array, que de devoir passer du temps à refaire un morceau du script.
Voici un exemple de fonction que tu peut faire :
const has= (a,b)=> {
for(let c in a) {
if(b.includes(a[c])) return c;
} return false;
};
Client.on('message', (message)=> {
if(message.author.bot) { //on ignore les bots
return false;
} else {
let badWords= ['gg', 'rip', 'lol'],
isBad= has(badWords, msg.content.toLowerCase());
if(isBad) {
message.delete();
message.channel.sendMessage("**@&#$%!**");
message.author.send(`Le mot **${badWords[isBad].toUpperCase()}** est interdit!`);
}
}
});
Edit (03/08/2019): A l'intention de mon VDDessous, personne ici n'infirme la pertinence de ta réponse.
Edit (15/01/2020) : A l'intention du VDDessous de mon VDDessous, tout à fait, ignorer les messages des bot permet d'éviter l'auto-censure en boucle.
Je ne sais pas pourquoi vous vous foulez à ce point. Ma réponse reste la plus pertinente par rapport à la question et la plus courte.
@kodle avait ça :
if (message.content.includes('gg') || message.content.includes('GG') || message.content.includes('Gg') || message.content.includes('gG')) {
message.delete()
message.channel.sendMessage("**@&#$%!**")
message.author.send('Le mot **GG** est interdit!')
}
Maintenant il a ça :
// ici il récupère str
if (message.content.includes(str.toLowerCase())) {
message.delete()
message.channel.sendMessage("**@&#$%!**")
message.author.send(`Le mot **${str}** est interdit!`)
}
Moi aussi je veux déterrer ce sujet ! Déjà, effectivement, pourquoi vous êtes partis sur un autre sujet ? Ça n'avait rien à voir avec la demande. Ensuite, pour empêcher que le bot réponde "bonjour" lorsqu'il enverra à son tour "bonjour", suffit d'empêcher qu'il lise ses messages. Avec :
if (message.author.bot) return;
Et la personne qui a dit falloir utiliser la method ".startWith()" a complètement faux, ne serait-ce parce que "Hey Salut !". Voila. t(°-° t)
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Nodo : Bibliothèque JS pour manipuler le DOM facilement.
Bonjour aurevoir
!
Nodo : Bibliothèque JS pour manipuler le DOM facilement.