Bot discord, mute par réaction

Fermé
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 - 16 déc. 2021 à 20:45
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 - 27 déc. 2021 à 14:18
Bonjour, je voudrais créer un bot discord avec des paramètres précis, j'ai quelque bases en java et je voudrais savoir si il était possible de coder ca :

Si (un message contient le mot "mort"){
si (une personne réagis avec la réaction couteaux){
rendre muet la personne qui a écrit le message contenant le mot "mort"
}
}

j'ai déjà le code de base et il ne me manque que cette portion que je ne sais pas comment coder...
Pouvez vous m'éclairer svp ?
A voir également:

1 réponse

Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021 4
Modifié le 22 déc. 2021 à 22:11
Bonsoir,

Ton problème n'est pas bien compliqué, seulement, veux tu coder cela en Java (comme écrit dans ton message) ou en Javascript (puisque nous sommes dans la catégorie Javascript) ?

Dans le deuxième cas, si tu utilises discord.js, tu peux utiliser faire comme ceci :

"Si (un message contient le mot "mort"){"
Il faut que tu utilises la méthode includes() qui va te permettre de vérifier si la chaîne de caractères "mort" se situe dans ton autre chaîne de caractères (à savoir le message). Si tu utilises discord.js, ça devrait donner quelque chose comme ceci :
if (message.content.includes("mort")) {


"si (une personne réagis avec la réaction couteaux){"
Alors là, je ne sais pas si tu veux savoir s'il y a une réaction "????" ou si tu veux attendre que quelqu'un réagisse avec "????".

Je pense que tu veux plutôt "attendre" qu'une réaction soit ajoutée au message. Dans ce cas, tu peux te référer (toujours avec discord.js) à ceci : https://discordjs.guide/popular-topics/collectors.html#reaction-collectors
Cela devrait donner quelque chose comme ceci :
//Ici, on crée un filtre qui dit que le nom de l'émoji contenu dans la réaction doit être ????
const filter = reaction => {
 return reaction.emoji.name === '????'
}

//Là, on crée un collecteur de réactions que l'on ajoute au message. On lui applique le filtre "filter" et on fait en sorte que la collecte s'arrête après 15000 millisecondes (donc 15 secondes) et n'accepte qu'une seule réaction
const collector = message.createReactionCollector({ filter, {time: 15000, max: 1} })

//Ça, c'est un événement qui va se déclencher à chaque fois qu'une réaction est collectée via le collecteur de réactions qu'on a créé juste avant
collector.on('collect', (reaction, user) => {
 //il faut mettre la suite du code ici du coup
})



"rendre muet la personne qui a écrit le message contenant le mot "mort""
Alors ça, c'est très vague... Tu peux rendre quelqu'un muet de plusieurs façons sur Discord. Tu peux lui ajouter un rôle, tu peux lui retirer un rôle, tu peux modifier ses permissions, ... Il y a même moyen de rendre quelqu'un muet de la même façon que l'on kick ou que l'on banni quelqu'un grâce à la nouvelle mise à jour de Discord.

Si tu veux rendre le membre muet en lui ajoutant un rôle, tu peux regarder de ce côté-ci : https://github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/understanding/roles.md#add-a-member-to-a-role

Si tu veux le rendre muet d'une autre façon, je t'écoute

En espérant t'avoir été utile,
Alvin1614

EDIT : apparemment, les émojis ne fonctionnent pas des masses... Donc considère que les "????" correspondent à l'émoji "couteau".
0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
27 déc. 2021 à 14:18
Bonjour, je te remercie de ta réponse mais pour la réaction, je préfèrerais une condition (si quelqu'un réagis) et non attendre que quelqu'un réagisse peux-tu m'éclairer a nouveaux ?
0