Ir al contenido

Panel de roles

Un panel donde cada miembro elige sus roles. Cada rol es una Section con un botón al lado, y al final hay un menú para los colores.

Vista previa
Mi BotAPPHoy a las 12:00

🎭 Elige tus roles

Pulsa un botón para añadir o quitar el rol.


🎮 Gamer

Acceso a los canales de juegos

🎨 Artista

Comparte tus dibujos

📢 Anuncios

Recibe una mención en cada anuncio


Color del nombre

Elige un color
payload.json
{
"flags": 32768,
"components": [
{
"type": 17,
"accent_color": 15418782,
"components": [
{
"type": 10,
"content": "## 🎭 Elige tus roles\nPulsa un botón para añadir o quitar el rol."
},
{
"type": 14
},
{
"type": 9,
"components": [
{
"type": 10,
"content": "🎮 **Gamer**\n-# Acceso a los canales de juegos"
}
],
"accessory": {
"type": 2,
"style": 2,
"label": "Gamer",
"custom_id": "rol:111111111111111111"
}
},
{
"type": 9,
"components": [
{
"type": 10,
"content": "🎨 **Artista**\n-# Comparte tus dibujos"
}
],
"accessory": {
"type": 2,
"style": 2,
"label": "Artista",
"custom_id": "rol:222222222222222222"
}
},
{
"type": 9,
"components": [
{
"type": 10,
"content": "📢 **Anuncios**\n-# Recibe una mención en cada anuncio"
}
],
"accessory": {
"type": 2,
"style": 2,
"label": "Anuncios",
"custom_id": "rol:333333333333333333"
}
},
{
"type": 14,
"spacing": 2
},
{
"type": 10,
"content": "**Color del nombre**"
},
{
"type": 1,
"components": [
{
"type": 3,
"custom_id": "color",
"placeholder": "Elige un color",
"min_values": 0,
"options": [
{
"label": "Rojo",
"value": "444444444444444444",
"emoji": {
"name": "🔴"
}
},
{
"label": "Verde",
"value": "555555555555555555",
"emoji": {
"name": "🟢"
}
},
{
"label": "Azul",
"value": "666666666666666666",
"emoji": {
"name": "🔵"
}
}
]
}
]
}
]
}
]
}
  • El custom_id de cada botón es rol: + ID del rol. Así un solo manejador sirve para todos.
  • Al pulsar: si el miembro tiene el rol, se le quita; si no, se le añade.
  • Responde con un mensaje efímero para confirmar (solo lo ve quien pulsó).
  • El panel no cambia, así que no hace falta editarlo.
  1. Lee data.custom_id y extrae el ID del rol.
  2. Añade el rol con PUT /guilds/{guild.id}/members/{user.id}/roles/{role.id} o quítalo con DELETE en la misma ruta.
  3. Responde a la interacción con type: 4 y flags: 32832 (V2 + efímero).