Label
type: 18
Modales
Vista previa modal.json
El Label envuelve un componente de entrada de un modal y le añade un título y una descripción. Es la forma recomendada de construir modales.
Registro
Nombre de usuario*
Así te verán los demás en el torneo.
Ej: SuperGamer
Tu equipo*
Elige el rol de tu equipo
{ "type": 9, "data": { "custom_id": "registro", "title": "Registro", "components": [ { "type": 18, "label": "Nombre de usuario", "description": "Así te verán los demás en el torneo.", "component": { "type": 4, "custom_id": "nombre", "style": 1, "placeholder": "Ej: SuperGamer", "max_length": 32 } }, { "type": 18, "label": "Tu equipo", "component": { "type": 6, "custom_id": "equipo", "placeholder": "Elige el rol de tu equipo" } } ] }}| Campo | Tipo | Descripción |
|---|---|---|
type |
entero | obligatorio Siempre 18. |
id |
entero | opcional Identificador único. |
label |
string | obligatorio Título. Máx. 45 caracteres. |
description |
string | opcional Texto de ayuda. Máx. 100 caracteres. Puede mostrarse encima o debajo del componente. |
component |
componente | obligatorio El componente de entrada (ver abajo). |
¿Qué puede ir dentro?
Sección titulada «¿Qué puede ir dentro?»- Text Input
- String Select, User, Role, Mentionable y Channel Select
- File Upload
- Radio Group, Checkbox Group y Checkbox
Responde a la interacción con el JSON de arriba (tipo de respuesta 9).
await interaction.showModal({ custom_id: 'registro', title: 'Registro', components: [ { type: 18, label: 'Nombre de usuario', description: 'Así te verán los demás en el torneo.', component: { type: 4, custom_id: 'nombre', style: 1, placeholder: 'Ej: SuperGamer', max_length: 32 }, }, { type: 18, label: 'Tu equipo', component: { type: 6, custom_id: 'equipo', placeholder: 'Elige el rol de tu equipo' }, }, ],});class Registro(discord.ui.Modal, title="Registro"): nombre = discord.ui.Label( text="Nombre de usuario", description="Así te verán los demás en el torneo.", component=discord.ui.TextInput(placeholder="Ej: SuperGamer", max_length=32), ) equipo = discord.ui.Label( text="Tu equipo", component=discord.ui.RoleSelect(placeholder="Elige el rol de tu equipo"), )
async def on_submit(self, interaction: discord.Interaction): rol = self.equipo.component.values[0] await interaction.response.send_message( f"¡Bienvenido {self.nombre.component.value}! Equipo: {rol.mention}", ephemeral=True )discordgo.Label{ Label: "Nombre de usuario", Description: "Así te verán los demás en el torneo.", Component: discordgo.TextInput{ CustomID: "nombre", Style: discordgo.TextInputShort, Placeholder: "Ej: SuperGamer", MaxLength: 32, },}