Section
type: 9
Mensajes
Vista previa payload.json
La Section coloca texto a la izquierda y un accesorio a la derecha. El accesorio puede ser un Thumbnail (imagen pequeña) o un Button.
{ "flags": 32768, "components": [ { "type": 9, "components": [ { "type": 10, "content": "### Ana García" }, { "type": 10, "content": "Nivel **42** · 12 350 XP\n-# Miembro desde 2021" } ], "accessory": { "type": 11, "media": { "url": "attachment://avatar.png" }, "description": "Avatar de Ana" } }, { "type": 9, "components": [ { "type": 10, "content": "**Notificaciones de eventos**\nRecibe un aviso cuando empiece un evento." } ], "accessory": { "type": 2, "style": 3, "label": "Activar", "custom_id": "activar_avisos" } } ]}| Campo | Tipo | Descripción |
|---|---|---|
type |
entero | obligatorio Siempre 9. |
id |
entero | opcional Identificador único en el mensaje. |
components |
array | obligatorio De 1 a 3 componentes Text Display. |
accessory |
componente | obligatorio Un Thumbnail o un Button. |
Usa el JSON de arriba como cuerpo del mensaje.
import { SectionBuilder, ButtonStyle, MessageFlags } from 'discord.js';
const profile = new SectionBuilder() .addTextDisplayComponents( (text) => text.setContent('### Ana García'), (text) => text.setContent('Nivel **42** · 12 350 XP\n-# Miembro desde 2021'), ) .setThumbnailAccessory((thumbnail) => thumbnail.setURL('attachment://avatar.png').setDescription('Avatar de Ana'), );
const notifications = new SectionBuilder() .addTextDisplayComponents((text) => text.setContent('**Notificaciones de eventos**\nRecibe un aviso cuando empiece un evento.'), ) .setButtonAccessory((button) => button.setCustomId('activar_avisos').setLabel('Activar').setStyle(ButtonStyle.Success), );
await channel.send({ flags: MessageFlags.IsComponentsV2, components: [profile, notifications], files: ['./avatar.png'],});profile = discord.ui.Section( "### Ana García", "Nivel **42** · 12 350 XP\n-# Miembro desde 2021", accessory=discord.ui.Thumbnail("attachment://avatar.png", description="Avatar de Ana"),)
notifications = discord.ui.Section( "**Notificaciones de eventos**\nRecibe un aviso cuando empiece un evento.", accessory=discord.ui.Button(label="Activar", style=discord.ButtonStyle.success, custom_id="activar_avisos"),)
view = discord.ui.LayoutView()view.add_item(profile)view.add_item(notifications)await channel.send(view=view, file=discord.File("avatar.png"))description := "Avatar de Ana"
profile := discordgo.Section{ Components: []discordgo.MessageComponent{ discordgo.TextDisplay{Content: "### Ana García"}, discordgo.TextDisplay{Content: "Nivel **42** · 12 350 XP\n-# Miembro desde 2021"}, }, Accessory: discordgo.Thumbnail{ Media: discordgo.UnfurledMediaItem{URL: "attachment://avatar.png"}, Description: &description, },}
notifications := discordgo.Section{ Components: []discordgo.MessageComponent{ discordgo.TextDisplay{Content: "**Notificaciones de eventos**\nRecibe un aviso cuando empiece un evento."}, }, Accessory: discordgo.Button{Label: "Activar", Style: discordgo.SuccessButton, CustomID: "activar_avisos"},}Consejos
Sección titulada «Consejos»- Es perfecto para listas de opciones: cada fila es una Section con su botón.
- El botón del accesorio funciona igual que cualquier botón: recibirás su
custom_id. - Usa el
descriptiondel Thumbnail como texto alternativo para accesibilidad.