Cet onglet liste tout. Comment écrire un bot avec est dans le guide, en commençant par le démarrage rapide.
Les structures
Guild
Un serveur : ses membres, rôles, salons, bannissements.
GuildMember
Un utilisateur dans un serveur : surnom, rôles, permissions, modération.
User
Un compte Discord, le même dans chaque serveur.
Role
Un rôle d’un serveur : permissions, position, membres.
Salons
Salons textuels, vocaux, catégories, forums, fils et salons privés.
Message
Un message : répondre, modifier, réagir, épingler.
Interaction
Quelqu’un a utilisé une commande, un bouton, un menu ou un formulaire, et attend une réponse.
GuildEmoji
Un emoji personnalisé d’un serveur.
Invite
Une invitation vers un serveur.
Webhook
Un moyen de publier dans un salon sous n’importe quel nom.
Trois règles
1
Une propriété ne coûte jamais rien
guild.name, member.roles, guild.channels… lisent ce dont le bot se souvient. Elles sont instantanées et n’envoient jamais de requête à Discord.2
Une méthode fetch demande à Discord
Les méthodes qui commencent par
fetch renvoient une promesse. Quand elles récupèrent une seule chose par son identifiant, elles regardent d’abord ce dont le bot se souvient et ne demandent à Discord que si elle n’y est pas. Passez { force: true } pour demander à Discord quand même.3
Les autres méthodes agissent
member.ban(), channel.send(), message.delete()… font quelque chose sur Discord et renvoient une promesse. Mettez toujours await devant.Les noms sont en camelCase
Discord nomme ses champs commerate_limit_per_user. Dans ChapterJS, vous lisez et écrivez toujours rateLimitPerUser : le framework traduit dans les deux sens, à l’intérieur des embeds et des options aussi.
Les listes sont des Maps
guild.members, guild.roles, guild.channels, channel.messages… sont des Map JavaScript que vous pouvez seulement lire, avec l’identifiant comme clé :
Map est ce dont le bot se souvient, ce qui n’est pas toujours tout : voir Mémoire.
Les identifiants
Un identifiant Discord (unSnowflake) est un texte fait de chiffres, comme '175928847299117063'. Ne le stockez jamais sous forme de nombre : il est trop grand et perdrait en précision.
Partout où une méthode prend un utilisateur, un rôle, un salon ou un message, vous pouvez passer son identifiant ou la structure elle-même.
La raison
Les actions que les modérateurs peuvent voir dans le journal d’audit du serveur prennent unereason, qui y est affichée :
Les limites sont vérifiées pour vous
Ce que vous passez est vérifié avant d’être envoyé : un message trop long, une taille d’image qui n’existe pas ou une exclusion de plus de 28 jours lève une erreur qui dit quelle est la limite. Les limites de débit de Discord sont gérées par le framework : une requête attend son tour. Quand Discord refuse une action (une permission manquante, quelque chose qui n’existe plus…), la méthode lève une erreur : voir Erreurs.Afficher dans la console
console.log(guild) affiche le nom de la classe et les données de la structure avec des noms en camelCase. toJSON() renvoie ces données sous forme d’objet simple. Aucun des deux n’affiche de secret : un webhook laisse son token de côté.