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.

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
1
if (msg.content.startsWith(prefix + "mp")) {
2
msg.author.send("Salut !") // Texte envoyé en message privé par l'auteur de la commande
3
}
Copied!
  • 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:
Réponse dans le serveur.
Réponse en message privé.
Voici le code source de la commande:
help.js
1
if (msg.content.startsWith(prefix + "help")) {
2
msg.channel.send("La liste des commandes vous a été envoyée en message privé ! :white_check_mark:")
3
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.")
4
}
Copied!
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
1
if (msg.content.startsWith(prefix + "embed")) {
2
const embed = {
3
color: 3447003,
4
description: "Contenu du message."
5
}
6
msg.channel.send({embed});
7
});
Copied!

L'embed normal

L'embed normal est le plus utilisé et convient pour à peu près toutes les utilisations.
embed.js
1
if (msg.content.startsWith(prefix + "embed")) {
2
const embed = {
3
color: 16746215,
4
author: {
5
name: msg.author.username,
6
icon_url: msg.author.avatarURL
7
},
8
title: "Titre de l'embed.",
9
url: "https://devcommunity.gitbook.io/bot",
10
description: "Description de l'embed",
11
fields: [{
12
name: "Catégories",
13
value: "Un embed est divisé en différentes catégories."
14
},
15
{
16
name: "Markdown",
17
value: "Markdown, qui a été expliqué dans le chapitre précédent, est utilisable ici."
18
},
19
{
20
name: "Hyperliens",
21
value: "Vous pouvez utiliser des hyperliens. Celui-ci mène à [DuckDuckGo](https://duckduckgo.com)."
22
}
23
],
24
timestamp: new Date(),
25
footer: {
26
icon_url: client.user.avatarURL,
27
text: client.user.username
28
}
29
}
30
msg.channel.send({embed});
31
});
Copied!
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
1
if (msg.content.startsWith(prefix + "kick")) { // On exécute les instructions en dessous si la commande "kick" est utilisée
2
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
3
let member = msg.mentions.members.first(); // La variable nommée "member" contient désormais comme valeur l'identifiant de la personne à expulser
4
member.kick(member); // On expulse l'utilisateur correspondant à l'identifiant trouvé dans la variable "member"
5
msg.channel.send(":white_check_mark: " + member.displayName + " a été expulsé(e) !") // On confirme que l'utilisateur a été expulsé (optionnel)
6
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)
7
} else { // Voir le commentaire de la ligne 2
8
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)
9
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)
10
}
11
}
Copied!

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
1
if (msg.content.startsWith(prefix + "kick")) { // On exécute les instructions en dessous si la commande "kick" est utilisée
2
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
3
let member = msg.mentions.members.first(); // La variable nommée "member" contient désormais comme valeur l'identifiant de la personne à bannir
4
member.kick(member); // On bannit l'utilisateur correspondant à l'identifiant trouvé dans la variable "member"
5
msg.channel.send(":white_check_mark: " + member.displayName + " a été expulsé(e) !") // On confirme que l'utilisateur a été banni (optionnel)
6
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)
7
} else { // Voir le commentaire de la ligne 2
8
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)
9
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)
10
}
11
}
Copied!
Le contenu de cet page n'est pas terminé intégralement. Il sera terminé prochainement.