Pular para o conteúdo

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.

{{ 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" em complexMessage é 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.
  • .User e .Member sã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.
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.

  • 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.

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.