Partage
  • Partager sur Facebook
  • Partager sur Twitter

Supprimer un message quand GG est écrit

discord.js | Avec et sans majuscule (gG, gg, Gg)

15 janvier 2018 à 19:09:00

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!')
      }

Merci d'avance :)

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2018 à 21:17:32

Salut.

Tu peux transformer par exemple ta chaine de caractères en minuscules avec :

const messageEnMinuscules = str.toLowerCase()

Puis tu vérifies uniquement  'gg'.

-
Edité par Diatomée 15 janvier 2018 à 21:17:56

  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2018 à 19:13:49

Ah d'accord, je vais tester ça, merci :)
  • Partager sur Facebook
  • Partager sur Twitter
23 mars 2018 à 16:20:57

function includesRealy(msg,str){
  return(
    msg.content.includes(str) ||
    msg.content.includes(str.toUpperCase()) ||
    msg.content.includes(str.toLowerCase())
  )
}

bot.on('message',function(message){
  if(
    includesRealy(message,'Bonjour') ||
    includesRealy(message,'Salut') ||
    includesRealy(message,'Hey') ||
    includesRealy(message,'Coucou') ||
    includesRealy(message,'Bien') ||
    includesRealy(message,'Yo') ||
    includesRealy(message,'Hola')
  ){
    message.reply('bonjour !')
  }
}
Bonjour aurevoir ^^
  • Partager sur Facebook
  • Partager sur Twitter
27 juin 2019 à 11:08:57

Hey !

Je poste se message pour les prochaines personnes qui passeront sur ce sujet.

Par rapport à ça:

CamilleAbella a écrit:

function includesRealy(msg,str){
  return(
    msg.content.includes(str) ||
    msg.content.includes(str.toUpperCase()) ||
    msg.content.includes(str.toLowerCase())
  )
}

bot.on('message',function(message){
  if(
    includesRealy(message,'Bonjour') ||
    includesRealy(message,'Salut') ||
    includesRealy(message,'Hey') ||
    includesRealy(message,'Coucou') ||
    includesRealy(message,'Bien') ||
    includesRealy(message,'Yo') ||
    includesRealy(message,'Hola')
  ){
    message.reply('bonjour !')
  }
}

Bonjour aurevoir ^^


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à ^^

Donc le "vrai" code serait :

function includesRealy(msg,str){
  return(
    msg.content.includes(str) ||
    msg.content.includes(str.toUpperCase()) ||
    msg.content.includes(str.toLowerCase())
  )
}

bot.on('message',function(message){
  if(
    includesRealy(message,'Salut') ||
    includesRealy(message,'Hey') ||
    includesRealy(message,'Coucou') ||
    includesRealy(message,'Bien') ||
    includesRealy(message,'Yo') ||
    includesRealy(message,'Hola')
  ){
    message.reply('Bonjour!')
  }
}
  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2019 à 19:20:28

Et pour ceux qui dise bonjour cela ne renvois rien pour eux,donc pour les plus obstinés

bot.on('message',function(message){
	if(message.author.id !== 'id du bot'){
    	if(
		    includesRealy(message,'Salut')  ||
		    includesRealy(message,'Hey')    ||
		    includesRealy(message,'Coucou') ||
		    includesRealy(message,'Bien')   ||
		    includesRealy(message,'Yo')     ||
		    includesRealy(message,'Hola')   ||
		    includesRealy(message,'Bonjour')
  		){
    		message.reply('Bonjour!');
		}
  	}
});


Je sais que le sujet à 1ans mais bon ^^

-
Edité par KillianMG 24 juillet 2019 à 19:22:56

  • Partager sur Facebook
  • Partager sur Twitter
25 juillet 2019 à 2:56:26

C'est quoi ce déterrage alacon ?

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.

-
Edité par Angelisium 15 janvier 2020 à 16:02:32

  • Partager sur Facebook
  • Partager sur Twitter

    !

2 août 2019 à 19:29:49

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!`)
}
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 janvier 2020 à 10:05:12

Salut, 

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)

  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2020 à 10:12:47

Bonjour,

Déterrage

Citation des règles générales du forum :

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

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL