🔘 Button
Como obter: `Button()`
Métodos
| Assinatura | Parâmetro(s) | Descrição |
|---|---|---|
| setLabel(v) | string | Texto del botón |
| setStyle(v) | string | primary · secondary · success · danger · link — ver button-style |
| setCustomId(v) | string | Permanente. ID fijo elegido por ti. Nunca expira — captúralo con on(buttonClick, i => { if (i.customId == "v") ... }). Sigue funcionando incluso después de que Ayami se reinicie. |
| onClick(fn, opts?) | function | Temporal. Registra el clic directamente, sin necesitar on(buttonClick). Expira solo (10min por defecto). opts: { user: true|"id", ttl: ms } — user: true lo restringe al autor del comando. |
| setEmoji(e) | string | Emoji. Ej: "🎉" |
| setDisabled(v) | bool | Deshabilita el botón |
| setURL(v) | string | URL (solo con style link) |
Permanente vs. temporal: usa
setCustomId para botones que deben sobrevivir reinicios (ej: un panel fijo). Usa onClick para botones de un solo uso ligados a un comando (ej: confirmar/cancelar), sin necesitar un handler aparte.Exemplo de uso
on command("confirmar", message, args)
let btn = Button()
.setLabel("Confirmar")
.setStyle("success")
.onClick(function(interaction)
interaction.reply("✅ Confirmado!")
end)
message.reply("Clique para confirmar:", { components: [btn] })
end