Chapitre 7 - Les utilisateurs
Dans ce chapitre, nous allons voit comment fonctionne un utilisateur. Quels sont les interactions que l'on peut faire avec.
Retrouvez l'ensemble des informations sur les utilisateurs dans : discord.js - GuildMember
Structure de l'utilisateur
GuildMember { // Information sur l'utilisateur
guild: <ref *1> Guild { // Information sur la guild ou est présent l'utilisateur lors de l'utilisationde la commande
id: '1003624283458785290',
name: 'Formation Bot Discord',
icon: 'c2a1d07fd0c51b8c0774461cea51a837',
features: [],
commands: GuildApplicationCommandManager {
permissions: [ApplicationCommandPermissionsManager],
guild: [Circular *1]
},
...
},
joinedTimestamp: 1659353075815, // Date à laquelle le joueur à rejoint le serveur
premiumSinceTimestamp: null, // Depuis quand l'utilisateur boost le serveur
nickname: null, // L'utilisateur à modifier son pseudo
pending: false, // L'utilisateur n'a pas validé le règlement (Communauté Discord)
permissions : {}, // Permission de l'utilisateur
communicationDisabledUntilTimestamp: null,
_roles: [], // Liste des rôles que possède l'utilisateur
user: User { // Information sur le compte
id: '279989640210022401', // Id du compte
bot: false, // L'utilisateur est un bot
system: false, // Utilisateur officiel du système Discord
flags: UserFlagsBitField { bitfield: 0 },
username: 'Aros', // Nom de l'utilisateur
discriminator: '2022',
avatar: 'de8d06d7370b2cfb33916cc84f6bea83', // Avatar utilisé
banner: undefined, // L'utilisateur à une bannière
accentColor: undefined
},
avatar: null // L'utilisateur à modifier son avatar
}
Fonctionnalités utiles
Nous allons vous montrer quelques fonctionnalités utiles que vous pouvez être amenée à utiliser.
Lorsque l'on débute le développement d'un bot Discord, la grande majorité des éléments que l'on recherche sont disponible sur internet. Si vous ne savez pas comment utilisé une fonction ou récupérer une information, regarder sur internet 😉.
Envoyer un message privé : send()
user.send({
content: "Mon message",
});
Vérifier les permissions : Pour vérifier les permissions d'un utilisateur, nous utiliserons la classe PermissionsBitField
. Voici un exemple de code pour vérifier si un utilisateur à des permissions administrateurs :
const { PermissionsBitField } = require('discord.js');
if (user.permissions.has(PermissionsBitField.Flags.Administrator)) {
// instructions
}
Gérer les rôles d'un utilisateur : la gestion des rôles d'un utilisateur peut se faire de plusieurs façons. On peut utiliser .roles
et ._roles
- Avec
._roles
, on obtient un tableau des id des rôles que possède l'utilisateur sur le serveur - Avec
.roles
, on récupère le GuildManager des rôles de l'utilisateur sur le serveur. En général, pour interagir avec les rôles d'un utilisateur, nous utiliserons la propriété.roles._methode()
qui correspond à une collection. On pourra alors faire une recherche de rôle, en ajouter, en supprimer, etc...
Autres fonctionnalités :
if (user.bannable) { // L'utilisateur peut se faire ban par le bot
// instructions
}
await user.setNickName('nouveau nom'); // Changer le nom de l'utilisateur sur le serveur
// Cette liste sera mise à jour en fonction des différents retour des demandes.
Les rôles
Voici un affichage rapide de la structure d'un rôle :
Role {
guild: Guild {
id: '1003624283458785290',
name: 'Formation Bot Discord',
icon: 'c2a1d07fd0c51b8c0774461cea51a837',
features: [],
commands: [GuildApplicationCommandManager],
members: [GuildMemberManager],
channels: [GuildChannelManager],
bans: [GuildBanManager],
roles: [RoleManager],
presences: PresenceManager {},
...
},
icon: null,
unicodeEmoji: null,
id: '1004374878880813177',
name: 'Nouveau rôle',
color: 15844367,
hoist: false,
rawPosition: 1,
permissions: PermissionsBitField { bitfield: 1071698660929n },
managed: false,
mentionable: false,
tags: {}
}
Exercice
Manager de rôles (Facile)
Créer une commande qui permet d'ajouter un role ou de supprimer le role d'un utilisateur.