send() : un salon, un utilisateur, un membre, un webhook. Un message est un texte, ou un objet avec tout ce qu’il contient.
src/commands/announce.ts
channel est le salon où la commande a été utilisée, et send() y publie. Le message est vérifié avant de partir (un texte de plus de 2000 caractères, trop d’embeds…) : une erreur est une erreur dans votre code avec un message clair, pas un refus de Discord.
Chaque champ que prend un message est dans Options des messages, et tout ce qu’a un message que vous recevez est dans Message.
Où va un message
Ils prennent tous la même chose. Un texte :
send() renvoie le Message envoyé, pour que vous puissiez y réagir, l’épingler ou le modifier plus tard.
Répondre
message.reply() répond à un message dans son salon : Discord affiche le message auquel il répond au-dessus du vôtre.
allowedMentions :
send() peut aussi répondre : passez le message (ou son identifiant) en replyTo.
Les embeds
Un embed est un encadré avec un titre, une description, des champs, une image, un pied… Passez-en jusqu’à 10 dansembeds :
Fichiers
Les images et documents qu’envoie votre bot vivent dans le dossierpublic/ de votre projet, à côté de src/. asset() en choisit un : votre éditeur liste chaque fichier du dossier pendant que vous tapez, et un chemin qui n’existe pas est souligné.
src/commands/chart.ts
name ; spoiler: true le cache jusqu’à ce qu’on clique dessus. Deux fichiers d’un même message ne peuvent pas avoir le même nom : Discord les distingue par lui.
Dans chapterjs dev, un fichier ajouté à public/ est proposé par l’éditeur tout de suite :
Buffer, un Uint8Array, un ArrayBuffer ou un Blob. Jusqu’à 10 fichiers par message, de public/ ou fabriqués, au total.
Un texte trop long pour un message peut aller dans un fichier à la place :
Les mentions
Une mention est un texte : écrivez-la danscontent avec les helpers de ChapterJS, ou avec ce que donne une structure mise dans un texte (${member}, ${channel}, ${role}).
allowedMentions dit qui reçoit vraiment une notification, quoi que contienne le texte :
parseest la liste des sortes de mentions du texte qui notifient :['users'],['roles'],['everyone'], ou[]pour personne.usersetroleslistent les identifiants qui peuvent être notifiés, quoi que diseparse.
userMention, roleMention, channelMention, timestamp…) sont listés dans Helpers.
Les sondages
Un sondage est une question avec jusqu’à 10 réponses. Les gens votent dans Discord ; le sondage se ferme au bout deduration heures (24 par défaut).
Modifier
message.edit() modifie un message écrit par le bot : son texte, ses embeds, ses composants, ses fichiers, et l’affichage des aperçus de ses liens. Seul ce que vous passez change.
edit() est listé dans MessageEditOptions.
Supprimer
message.delete() supprime un message ; la raison va dans le journal d’audit du serveur.
channel.bulkDelete() prend des messages ou des identifiants et renvoie combien ont été supprimés. Discord refuse de supprimer en masse les messages de plus de deux semaines : ils sont laissés de côté.
Réagir
message.react() ajoute une réaction du bot : un emoji standard, ou un emoji personnalisé du serveur, tel que Discord l’écrit (<:name:id>) ou comme l’un de guild.emojis.
message.reactions liste les réactions d’un message, avec leur nombre ; fetchReactionUsers() demande qui a réagi avec un emoji. removeReaction() retire la réaction du bot (ou d’un utilisateur donné), clearReactions() retire toutes les réactions, ou toutes celles d’un emoji.
Épingler
message.pin() et message.unpin() épinglent et désépinglent un message dans son salon ; channel.fetchPins() liste les messages épinglés, le dernier épinglé en premier.
Lire l’historique
channel.fetchMessages() demande à Discord les derniers messages d’un salon, du plus récent au plus ancien, 100 au plus par appel. before, after et around choisissent d’où lire, pour remonter plus loin :
channel.fetchMessage(id) récupère un message par son identifiant. channel.messages est ce dont le bot se souvient du salon sans demander à Discord : vide par défaut, puisque la plupart des bots ne relisent jamais un vieux message. Voir ce dont le bot se souvient.
Boutons, menus et mise en page
Un message peut contenir des boutons et des menus déroulants, déclarés avecbutton() et select(), qui lancent votre code quand on les utilise, et être construit avec des textes, des sections, des galeries et des conteneurs au lieu d’un texte et d’embeds :
src/commands/vote.ts
src/components/yes.ts
components ne prend que ce que ChapterJS a fabriqué, jamais du JSON : les identifiants qui distinguent un clic sont écrits par le framework. Comment les écrire est dans Boutons, Menus déroulants, Formulaires et Embeds et mise en page.
Événements sur les messages
Réagir quand un message est envoyé, modifié ou supprimé.
Options des messages
Chaque champ que prend un message, avec les limites.