Reações
Um comando pode responder a reações. Envie uma mensagem com algumas reações, e quando alguém reage com uma delas, o mesmo comando roda de novo, com a pessoa que reagiu. A reação funciona como um botão: pode mudar a mensagem, dar ou tirar um cargo, responder no canal e mais.
A ideia
Seção intitulada “A ideia”{{ if eq .Trigger "command" }} {{ sendMessage nil (complexMessage "embed" (cembed "description" "Reaja com 🦋 para reivindicar isto") "reactions" (cslice "🦋" "🎀")) }}{{ return }}{{ end }}
{{/* A partir daqui, alguém reagiu */}}{{ if eq .Reaction.Emoji "🦋" }} {{ updateMessage (cembed "description" (print "Reivindicado por " .User.Username)) }} {{ removeReaction }}{{ end }}"reactions"emcomplexMessageé uma lista de até 5 emojis. O Petto os coloca na mensagem e a lembra por um mês..Triggeré"reaction"quando alguém reagiu..Reaction.Emojié o emoji do jeito que você o escreveu na lista, e.Reaction.Addedétrue..Usere.Membersão a pessoa que reagiu..Messageé a mensagem em que ela reagiu, com os seus embeds.- Só contam as reações de pessoas, nunca de bots, e só os emojis da lista.
- Um emoji personalizado se escreve como o Discord o escreve,
<:nome:123456789012345678>, na lista e na comparação.
O que o código pode fazer
Seção intitulada “O que o código pode fazer”| Função | Em uma reação |
|---|---|
updateMessage mensagem |
Muda a mensagem em que se reagiu. O que você não der fica. Só funciona em uma mensagem enviada pelo Petto |
respond mensagem |
Envia uma mensagem no canal da reação. Não pode ser privada, uma reação não tem resposta privada |
removeReaction |
Remove a reação dessa pessoa, para que possa ser usada de novo |
addRole, removeRole |
Dão ou tiram um cargo de quem reagiu, com as mesmas verificações |
sendMessage, sendDM, addReaction, dbSet… |
Como sempre |
Se o código imprime texto, ele é enviado no canal, como respond.
Bom saber
Seção intitulada “Bom saber”- Só respondem as mensagens do comando que as enviou com
"reactions". Uma reação a qualquer outra mensagem não executa nada. - As reações só funcionam em uma mensagem enviada com
sendMessage, não em uma mensagem direta nem na resposta a um clique. - Usar a mesma reação duas vezes em muito pouco tempo é ignorado.
- As chaves dos dados guardados que começam com
rx:são reservadas: o Petto as usa para lembrar essas mensagens. Elas não contam para os 500 valores de um servidor. - Cada execução tem os mesmos limites que um comando.
Um exemplo completo
Seção intitulada “Um exemplo completo”O template claim é um cartão de request: !claim um bolo o envia com 🦋 e 🎀. 🦋 o marca como reivindicado por quem reagiu, e 🎀 só conta se for quem pediu. Instale-o com !customcommand template claim e leia o seu código com !customcommand codeshow claim.
