Chapitre 2 - Découvrez de nouvelles fonctionnalités

Maintenant que la base est maîtrisée, on peut parler de fonctionnalités intéressantes à ajouter au robot.

MESSAGE IMPORTANT.

Cette documentation n'est plus à jour depuis trop longtemps. Si vous voulez de l'aide, veuillez rejoindre ce serveur Discord et lire cet article qui date de Septembre 2021 mais qui est fréquemment mis à jour.

Si vous souhaitez un robot pour automatiquement supprimer les insultes, n'hésitez pas à vous renseigner sur Mr. Robøt.

Envoyer des messages privés

Pour commencer, on peut demander très rapidement au robot d'envoyer un message privé.

  • Testez l'exemple ci-dessous:

mp.js
if (msg.content.startsWith(prefix + "mp")) {
    msg.author.send("Salut !") // Texte envoyé en message privé par l'auteur de la commande
}
  • Tapez la commande ".mp" dans un salon textuel sur un serveur depuis lequel le robot peut accéder.

Par message privé, votre robot aura répondu:

Vous pouvez combiner plusieurs réponses, afin d'obtenir le résultat suivant, par exemple:

Voici le code source de la commande:

help.js
if (msg.content.startsWith(prefix + "help")) {
msg.channel.send("La liste des commandes vous a été envoyée en message privé ! :white_check_mark:")
msg.author.send("Liste des commandes disponibles sur le robot:\n\n.help **-** Affiche la liste des commandes disponibles sur le bot.\n.ping **-** Répond à l'utilisateur afin de tetser la réactivité du bot.\n.mp **-** Envoie un message privé à l'utilisateur.\n.markdown **-** Affiche toutes les combinaisons possibles de Markdown sur Discord.")
}

Vous trouvez peut être que le message n'est pas très esthétique, et oui, on peut faire plus beau !

Pour rendre un message plus joli, vous pouvez utiliser des embeds.

Il existe 2 différents type d'embeds:

Le "petit embed"

Le "petit embed" est vraiment très simple, et permet de rédiger des messages très courts.

embed.js
if (msg.content.startsWith(prefix + "embed")) {
const embed = {
  color: 3447003,
  description: "Contenu du message."
  }
  msg.channel.send({embed});
  });

L'embed normal

L'embed normal est le plus utilisé et convient pour à peu près toutes les utilisations.

embed.js
if (msg.content.startsWith(prefix + "embed")) {
const embed = {
   color: 16746215,
   author: {
     name: msg.author.username,
     icon_url: msg.author.avatarURL
   },
   title: "Titre de l'embed.",
   url: "https://devcommunity.gitbook.io/bot",
   description: "Description de l'embed",
   fields: [{
       name: "Catégories",
       value: "Un embed est divisé en différentes catégories."
     },
     {
       name: "Markdown",
       value: "Markdown, qui a été expliqué dans le chapitre précédent, est utilisable ici."
     },
     {
       name: "Hyperliens",
       value: "Vous pouvez utiliser des hyperliens. Celui-ci mène à [DuckDuckGo](https://duckduckgo.com)."
     }
   ],
   timestamp: new Date(),
   footer: {
     icon_url: client.user.avatarURL,
     text: client.user.username
   }
 }
 msg.channel.send({embed});
});

En comparant le code et l'image ci-dessus, vous connaissez quels champs affichent quoi et pouvez ainsi créer vos propres embeds.

Merci à Anidiots Guide pour la partie embed.

Vos messages seront désormais plus jolis. Mais ne nous arrêtons pas en si bon chemin !

Expulser un utilisateur

Si votre bot prend en charge des fonctions de modération, la commande pour kick un utilisateur est indispensable. Voici le code pour réaliser une telle fonction :

kick.js
if (msg.content.startsWith(prefix + "kick")) { // On exécute les instructions en dessous si la commande "kick" est utilisée
    if (msg.member.hasPermission("KICK_MEMBERS")) { // On exécute les instructions en dessous si l'auteur de la commande à la permission d'expulser un utilisateur. Sinon, on exécute les actions présentes à partir de la ligne 7
        let member = msg.mentions.members.first(); // La variable nommée "member" contient désormais comme valeur l'identifiant de la personne à expulser
        member.kick(member); // On expulse l'utilisateur correspondant à l'identifiant trouvé dans la variable "member"
        msg.channel.send(":white_check_mark: " + member.displayName + " a été expulsé(e) !") // On confirme que l'utilisateur a été expulsé (optionnel)
        console.log(msg.author.tag + " a expulsé " + member.displayName + " (" + member + ") du serveur " + msg.guild.name) // On dit dans la console que l'utilisateur a été expulsé (optionnel)
    }   else { // Voir le commentaire de la ligne 2
        msg.channel.send(":x: Vous n'avez pas la permission d'expulser un utilisateur.") // On infome l'auteur de la commande qu'il n'a pas les permissions nécessaires pour effectuer cette action (optionnel)
        console.log(msg.author.tag + " a voulu expulser un utilisateur sur le serveur " + msg.guild.name + ", mais il n'avait pas la permission d'expulser un utilisateur.") // On dit dans la console que l'auteur de la commande n'a pas pu effectuer cette action (optionnel)
    }
}

Bannir un utilisateur

Bannir un utilisateur ressemble énormément à la manière dont on expulse un utilisateur. Voici le code de la commande :

ban.js
if (msg.content.startsWith(prefix + "kick")) { // On exécute les instructions en dessous si la commande "kick" est utilisée
    if (msg.member.hasPermission("KICK_MEMBERS")) { // On exécute les instructions en dessous si l'auteur de la commande à la permission de bannir un utilisateur. Sinon, on exécute les actions présentes à partir de la ligne 7
        let member = msg.mentions.members.first(); // La variable nommée "member" contient désormais comme valeur l'identifiant de la personne à bannir
        member.kick(member); // On bannit l'utilisateur correspondant à l'identifiant trouvé dans la variable "member"
        msg.channel.send(":white_check_mark: " + member.displayName + " a été expulsé(e) !") // On confirme que l'utilisateur a été banni (optionnel)
        console.log(msg.author.tag + " a banni " + member.displayName + " (" + member + ") du serveur " + msg.guild.name) // On dit dans la console que l'utilisateur a été banni (optionnel)
    }   else { // Voir le commentaire de la ligne 2
        msg.channel.send(":x: Vous n'avez pas la permission de bannir un utilisateur.") // On infome l'auteur de la commande qu'il n'a pas les permissions nécessaires pour effectuer cette action (optionnel)
        console.log(msg.author.tag + " a voulu bannir un utilisateur sur le serveur " + msg.guild.name + ", mais il n'avait pas la permission de bannir un un utilisateur.") // On dit dans la console que l'auteur de la commande n'a pas pu effectuer cette action (optionnel)
    }
}

Le contenu de cet page n'est pas terminé intégralement. Il sera terminé prochainement.

Last updated