channel.send(), message.reply(), user.send(), member.send() et le premier message de forum.createPost() prennent un MessageInput : un texte, ou un objet MessageOptions. interaction.reply() et webhook.send() prennent les mêmes options avec quelques changements, listés à la fin.
Comment utiliser tout cela est dans Envoyer des messages. Les messages que vous recevez sont décrits dans Message.
MessageInput
MessageOptions
Ce qu’un message peut contenir, et comment il est envoyé. Un message a besoin d’au moins un contenu, un embed, un fichier, un composant, un sticker ou un sondage.Des boutons, des menus déroulants et des composants de mise en page, fabriqués par ChapterJS : des composants déclarés avec
button(), select()… et row(), text(), container()… Voir Composants.Qui le message a le droit de notifier. Voir AllowedMentions.
Un sondage à joindre au message. Voir PollInput.
MessageEditOptions
Ce qui peut être changé dans un message déjà envoyé :message.edit() prend un texte, ou ces champs de MessageOptions. Seul ce que vous passez change : une liste vide retire les embeds ou les composants, et les fichiers que vous passez remplacent ceux du message.
Des boutons, des menus déroulants et des composants de mise en page, fabriqués par ChapterJS : des composants déclarés avec
button(), select()… et row(), text(), container()…Jusqu’à 10 fichiers à joindre : leur contenu, ou
asset() pour un fichier de public/.FileInput
Un fichier à joindre à un message. Chaque fichier est envoyé avec le message, et un embed peut l’afficher avecattachment://<name> comme url de son image ou de sa thumbnail.
Documentation de Discord
asset()
public/ du projet, à envoyer avec un message : files: [asset('photos/monday.png')]. Le fichier est lu au moment de l’envoi du message, donc un fichier manquant est une erreur à ce moment-là.
asset s’importe de 'chapterjs' comme tout le reste, et est typé pour votre projet par le dossier .chapterjs/ : PublicFile est l’union des chemins de chaque fichier de public/, donc l’éditeur les liste et souligne celui qui n’existe pas. Le dossier est relu par chapterjs dev chaque fois qu’un fichier est ajouté ou retiré, et par chapterjs sync et chapterjs build. Comment l’utiliser est dans Fichiers.
PublicFile
public/ de votre projet, sous forme de chemin depuis lui : 'photos/monday.png'. never tant que le dossier est vide ou absent.
AssetOptions
Ce qui peut changer pour un fichier depublic/ quand il est envoyé.
AssetFile
Un fichier du dossierpublic/ du projet, fabriqué par asset(), à mettre dans les files d’un message. Il est lu au moment de l’envoi du message.
Embed
Un encadré riche dans un message : titre, description, champs, image… Le même type décrit lesembeds d’un message que vous recevez : les champs marqués « Réglé par Discord » sont remplis dans les messages que Discord renvoie, et ignorés quand vous en envoyez un.
Le pied de l’embed.
Réglé par Discord : la sorte d’embed (toujours
'rich' pour les embeds qu’envoie un bot).Limites des embeds
En dépasser une lève une erreur qui nomme le champ, avant tout envoi : voir Limites et erreurs.
AllowedMentions
Qui un message a le droit de notifier. Sans cela, un message notifie tous ceux qu’il mentionne.Les sortes de mentions du texte qui notifient :
[] ne notifie personne.PollInput
Un sondage à joindre à un message. Documentation de DiscordComposants
components ne prend que ce que ChapterJS a fabriqué : les boutons, menus et formulaires déclarés avec button(), select() et modal(), et les helpers de mise en page (row(), linkButton(), text(), section(), container()…). Un objet simple est refusé avant tout envoi, donc aucun identifiant n’est jamais écrit à la main. Les boutons qui se suivent sont mis en rangées de 5 ; un menu a une rangée à lui.
Un message avec un texte, une section, une galerie, un fichier, un séparateur ou un conteneur est construit uniquement avec des composants : Discord n’affiche ni content ni embeds, et le message le dit avant de partir si vous en passez un. Les pièces et leurs types sont listés dans Mise en page ; comment les utiliser est dans Boutons et Embeds et mise en page.
Documentation de Discord
InteractionReplyOptions
Les options d’une réponse : tout ce que prend un message, saufreplyTo et stickers. C’est ce que prennent interaction.reply() et interaction.followUp(), sous forme de texte ou d’objet (InteractionReply) ; interaction.edit() prend un MessageEditOptions. Voir Interaction.
N’afficher la réponse qu’à qui a utilisé la commande. Par défaut : ce que dit la commande avec son propre
ephemeral, sinon visible par tout le monde.WebhookMessageOptions
Ce que peut contenir un message publié avec un webhook : tout ce que prend un message, saufreplyTo, et ceci. C’est ce que prend webhook.send(), sous forme de texte ou d’objet.
Documentation de Discord
Limites et erreurs
Chaque message est vérifié avant d’être envoyé, donc une erreur est une erreur dans votre code avec un message clair, pas un refus de Discord. Les nombres sont ceux de votre message.
Le texte d’un embed est compté sans les espaces autour. Ce que ces vérifications ne couvrent pas (un
customId faux, un sticker inconnu…) est refusé par Discord avec une DiscordApiError qui dit quel champ.