Pular para o conteúdo

Introdução

Um comando personalizado escrito em código é um pedaço de texto. Quando alguém usa o comando, o Petto:

  1. Lê o código e o verifica. Um erro interrompe tudo antes de enviar qualquer coisa, e diz a linha e a coluna.
  2. Executa com os dados desse momento: quem usou o comando, em que servidor e canal, e com quais argumentos.
  3. Coleta duas coisas: o texto que o código imprimiu e as ações que pediu (enviar uma mensagem, dar um cargo…).
  4. Faz as ações, apenas as que tem permissão para fazer, e envia o texto.

O código nunca fala com o Discord por conta própria. Uma função como sendMessage não envia nada enquanto o código roda: ela adiciona uma ação à lista, e o Petto decide no final se a faz. Por isso o mesmo código pode ser testado no painel sem enviar nada.

Tudo o que está fora de {{ }} é impresso como está. Dentro de {{ }}, uma ação que tem um valor o imprime:

O seu nome é {{ .User.Username }}.

Uma ação que faz algo, como {{ sendMessage nil "oi" }} ou {{ $x := 1 }}, não imprime nada.

Se o código imprimiu texto, o Petto o envia como resposta do comando. Se não imprimiu nada, só as ações são feitas.

  • Não pode ler nem escrever arquivos, chamar uma página web nem alcançar nada fora dos dados que recebe.
  • Não pode rodar para sempre: tem limites de passos, tempo, laços e ações (Limites).
  • Não pode mencionar @everyone nem @here, e só menciona os cargos e usuários que cita de propósito.

Os comandos personalizados em código estão abertos a todos os servidores: qualquer pessoa que possa gerenciar comandos pode escrevê-los. Um servidor Free pode ter até 50 comandos personalizados e um Premium até 100.