Reacciones
Un comando puede responder a reacciones. Envía un mensaje con algunas reacciones, y cuando alguien reacciona con una de ellas, el mismo comando corre otra vez, con la persona que reaccionó. La reacción funciona como un botón: puede cambiar el mensaje, dar o quitar un rol, responder en el canal y más.
La idea
Sección titulada «La idea»{{ if eq .Trigger "command" }} {{ sendMessage nil (complexMessage "embed" (cembed "description" "Reacciona con 🦋 para reclamar esto") "reactions" (cslice "🦋" "🎀")) }}{{ return }}{{ end }}
{{/* Desde aquí, alguien reaccionó */}}{{ if eq .Reaction.Emoji "🦋" }} {{ updateMessage (cembed "description" (print "Reclamado por " .User.Username)) }} {{ removeReaction }}{{ end }}"reactions"encomplexMessagees una lista de hasta 5 emojis. Petto los pone en el mensaje y lo recuerda por una semana..Triggeres"reaction"cuando alguien reaccionó..Reaction.Emojies el emoji tal como lo escribiste en la lista, y.Reaction.Addedestrue..Usery.Memberson la persona que reaccionó..Messagees el mensaje al que reaccionó, con sus embeds.- Solo cuentan las reacciones de personas, nunca de bots, y solo los emojis de la lista.
- Un emoji personalizado se escribe como lo escribe Discord,
<:nombre:123456789012345678>, en la lista y en la comparación.
Qué puede hacer el código
Sección titulada «Qué puede hacer el código»| Función | En una reacción |
|---|---|
updateMessage mensaje |
Cambia el mensaje al que se reaccionó. Lo que no des se queda. Solo funciona en un mensaje que envió Petto |
respond mensaje |
Envía un mensaje en el canal de la reacción. No puede ser privado, una reacción no tiene respuesta privada |
removeReaction |
Quita la reacción de esa persona, así se puede volver a usar |
addRole, removeRole |
Dan o quitan un rol a quien reaccionó, con las mismas comprobaciones |
sendMessage, sendDM, addReaction, dbSet… |
Como siempre |
Si el código imprime texto, se envía en el canal, igual que respond.
Bueno saber
Sección titulada «Bueno saber»- Solo responden los mensajes del comando que los envió con
"reactions". Una reacción a cualquier otro mensaje no ejecuta nada. - Las reacciones solo funcionan en un mensaje enviado con
sendMessage, no en un mensaje directo ni en la respuesta a un clic. - Usar la misma reacción dos veces en muy poco tiempo se ignora.
- Las claves de los datos guardados que empiezan con
rx:están reservadas: Petto las usa para recordar estos mensajes. No cuentan para los 500 valores de un servidor. - Cada ejecución tiene los mismos límites que un comando.
Un ejemplo completo
Sección titulada «Un ejemplo completo»La plantilla claim es una tarjeta de request: !claim una torta la envía con 🦋 y 🎀. 🦋 la marca como reclamada por quien reaccionó, y 🎀 solo cuenta si es quien la pidió. Instálala con !customcommand template claim y lee su código con !customcommand codeshow claim.
