Ir al contenido

Introducción

Un comando personalizado escrito en código es un trozo de texto. Cuando alguien usa el comando, Petto:

  1. Lee el código y lo revisa. Un error lo detiene todo antes de enviar nada, y dice la línea y la columna.
  2. Lo ejecuta con los datos de ese momento: quién usó el comando, en qué servidor y canal, y con qué argumentos.
  3. Recoge dos cosas: el texto que imprimió el código y las acciones que pidió (enviar un mensaje, dar un rol…).
  4. Hace las acciones, solo las que tiene permitido hacer, y envía el texto.

El código nunca habla con Discord por sí mismo. Una función como sendMessage no envía nada mientras corre el código: añade una acción a la lista, y Petto decide al final si la hace. Por eso el mismo código se puede probar en el panel sin enviar nada.

Todo lo que está fuera de {{ }} se imprime tal cual. Dentro de {{ }}, una acción que tiene un valor lo imprime:

Tu nombre es {{ .User.Username }}.

Una acción que hace algo, como {{ sendMessage nil "hola" }} o {{ $x := 1 }}, no imprime nada.

Si el código imprimió texto, Petto lo envía como respuesta del comando. Si no imprimió nada, solo se hacen las acciones.

  • No puede leer ni escribir archivos, llamar a una página web ni alcanzar nada fuera de los datos que recibe.
  • No puede correr para siempre: tiene límites de pasos, tiempo, bucles y acciones (Límites).
  • No puede mencionar a @everyone ni @here, y solo menciona los roles y usuarios que nombra a propósito.

Los comandos personalizados en código están abiertos a todos los servidores: puede escribirlos cualquiera que pueda gestionar comandos. Un servidor Free puede tener hasta 50 comandos personalizados y uno Premium hasta 100.