API Reference

EmbedV2Builder

Builder pour les messages Discord Components V2.

Vue d'ensemble

EmbedV2Builder construit des messages Discord Components V2 — le nouveau système de mise en page qui remplace les embeds classiques.

const embed = new EmbedV2Builder()
  .container({ accentColor: 0x5865F2 })
    .textDisplay("# Bonjour !")
  .end()
  .build()

await ctx.reply({ ...embed })
EmbedV2Builder est disponible globalement — aucun import nécessaire.

EmbedV2Builder

Builder racine — les composants de premier niveau se placent ici.

Méthodes

MéthodeRetourneDescription
.container(opts?)ContainerBuilderAjoute un container
.textDisplay(content)thisAjoute un texte au niveau racine
.separator(opts?)thisAjoute un séparateur au niveau racine
.mediaGallery(items)thisAjoute une galerie média au niveau racine
.actionRow()RootActionRowBuilderAjoute une action row au niveau racine
.build()objectConstruit et retourne le payload du message

.build()

Retourne { flags: 32768, components: [...] } — spreadez-le directement dans votre reply :

await ctx.reply({ ...embed.build() })

Lève une erreur si aucun composant n'a été ajouté ou si plus de 25 composants sont présents.


ContainerBuilder

Retourné par .container(). Utilisez .end() pour revenir à EmbedV2Builder.

ContainerOptions

OptionTypeDescription
accentColornumberCouleur de la bordure gauche en nombre
spoilerbooleanFloute le contenu jusqu'au clic

Méthodes

MéthodeRetourneDescription
.textDisplay(content)thisAjoute du texte markdown
.separator(opts?)thisAjoute un séparateur
.mediaGallery(items)thisAjoute une galerie média
.file(url, spoiler?)thisAjoute une pièce jointe
.section()SectionBuilderAjoute une section
.actionRow()ActionRowBuilderAjoute une action row
.end()EmbedV2BuilderFerme le container et retourne à la racine
Si theme.embedV2.footer.text est défini dans glyria.config.ts, un footer est automatiquement ajouté lors de l'appel à .end().

SectionBuilder

Retourné par .section(). Associe du texte à un accessoire. Utilisez .end() pour revenir à ContainerBuilder.

Méthodes

MéthodeRetourneDescription
.textDisplay(content)thisAjoute du texte (au moins un requis)
.buttonAccessory(opts)thisDéfinit un bouton comme accessoire
.thumbnailAccessory(url, desc?)thisDéfinit une miniature comme accessoire
.end()ContainerBuilderFerme la section
Une section nécessite au moins un .textDisplay() et exactement un accessoire. L'absence de l'un ou l'autre lève une erreur.

ActionRowBuilder

Retourné par .actionRow() à l'intérieur d'un container. Utilisez .end() pour revenir à ContainerBuilder.

Méthodes

MéthodeRetourneDescription
.button(opts)thisAjoute un bouton
.end()ContainerBuilderFerme l'action row

RootActionRowBuilder

Retourné par .actionRow() au niveau racine. Utilisez .end() pour revenir à EmbedV2Builder.

Méthodes

MéthodeRetourneDescription
.button(opts)thisAjoute un bouton
.end()EmbedV2BuilderFerme l'action row

ButtonOptions

OptionTypeDescription
labelstringTexte du bouton
customIdstringIdentifiant pour l'interaction — requis pour les boutons non-link
stylestringStyle du bouton
urlstringURL — requis pour le style link
emojiobjectEmoji du bouton (name, id, animated)
disabledbooleanDésactive le bouton

Styles de boutons

StyleCas d'usage
primaryAction principale — nécessite customId
secondaryAction secondaire — nécessite customId
successAction positive — nécessite customId
dangerAction destructive — nécessite customId
linkURL externe — nécessite url
premiumMise en avant premium

SeparatorOptions

OptionTypeDescription
dividerbooleanAffiche une ligne de séparation visible
spacing"small" | "large"Taille de l'espacement

MediaGalleryItem

OptionTypeDescription
urlstringURL de l'image
descriptionstringLégende (optionnel)
spoilerbooleanFloute jusqu'au clic (optionnel)
Copyright © 2026