Saltar al contenido principal

La versión corta

Casi todos los lugares que aceptan variables usan el mismo resolvedor: toma tu texto, encuentra cada {variable} y la cambia por datos de lo que haya provocado el mensaje (el miembro que entró, el sorteo que terminó, el mensaje que coincidió con una autorrespuesta). Los datos que tiene dependen de ese evento; las reglas no.

El orden de los pasos

1

Se sacan las imágenes y las reacciones

{imgcard:name} se quita del texto y se convierte en la tarjeta de imagen del mensaje. {reactreply:emoji} se quita y se convierte en una reacción en el mensaje enviado.
Petto le da la bienvenida a Mia con un embed cuya imagen es la tarjeta de bienvenida con su nombre y número de miembro, y una reacción 👋 debajo

En Discord: {imgcard:welcome} se volvió la tarjeta del embed y {reactreply:👋} una reacción.

2

Se ejecutan las funciones

{choose:a|b|c}, {timestamp:<when>|<style>}, {range:1-100}, {arg1} … {arg10} y {args_from:N} se calculan de nuevo cada vez. El mismo mensaje guardado da un {choose:…} o {range:…} distinto cada vez que se envía.
kira usa !roll dos veces y recibe un número y una frase distintos cada vez

En Discord: el mismo comando dos veces: {range} y {choose} se eligen otra vez cada vez.

3

Todo lo demás se busca en una sola pasada

Cada {nombre} que queda se compara, sin importar mayúsculas ni espacios dentro de las llaves, con la lista de Petto y después con los nombres que usan otros bots. Lo que da una variable nunca se vuelve a leer, así que un miembro que escribe {server_owner} en un mensaje no hace que {message_content} mencione al dueño.
nova escribe {server_owner} en un mensaje y la respuesta de Petto lo repite como texto, sin mencionar al dueño

En Discord: {server_owner} escrito por un miembro queda como texto dentro de {message_content}.

Como las funciones se ejecutan primero, una función no puede contener otras variables: en {choose:Hola {user}|Hey} la primera } cierra la función antes de tiempo. Escribe {choose:Hola|Hey} {user} en su lugar.

Conocidas, desconocidas y vacías

Petto llena {user} con chu, deja {level} vacía entre los corchetes y mantiene {usr} tal como se escribió

En Discord: una variable conocida, una conocida sin datos aquí y una desconocida.

Por eso las variables de Niveles solo tienen sentido en el mensaje de subida de nivel y {gw.*} solo en los mensajes de sorteos. Usarlas en otro lugar no hace daño, simplemente no dan nada.

Dos estilos de nombre, el mismo resultado

{user_name} y {user.name} se resuelven igual. El estilo con guion bajo es el conjunto original, y el estilo con punto se agregó para que sea más fácil de leer y coincide con {guild.*}, {channel.*} y el resto. Ninguno va a desaparecer, usa el que se lea mejor.

Las palabras y las fechas siguen el idioma del servidor

Las palabras que Petto mismo escribe en una variable (Sí, Nunca, Nivel 2, Sin boost), las fechas como {user.joined_at} y las terminaciones de los ordinales (1st, 1.º, 1º) siguen el idioma del servidor. Tu propio texto, los nombres y los datos del servidor nunca se traducen. {date} usa la hora de Colombia (GMT-5); para una hora que se muestre en la zona horaria de cada lector usa las variables {timestamp…}.
Petto llena {user.boost}, {user.boost_since}, {user.joined_at}, {user.join_position_suffix} y {guild.boost_tier} para chu

En Discord: las palabras, fechas y terminaciones ordinales que escribe Petto, en el idioma del servidor.

Menciones silenciosas

Pon un ! justo antes de una mención y se ve como la mención azul de siempre, pero nadie recibe aviso. Sin el !, la mención funciona como siempre. Sirve en cualquier mensaje que envíe Petto, así que puedes escribir de quién habla un mensaje sin despertar a nadie.
Petto publica en anuncios: @everyone La noche de cine empieza a las 8 PM en la sala de voz. ¿Dudas? Pregunta a @Moderadores. Las dos menciones se ven como píldoras azules

En Discord: el mensaje se escribió con !@everyone y !@Moderadores. Las dos se ven como menciones y nadie recibe aviso.

Las formas

Ejemplo

Las reglas

  • El ! va al principio del texto o después de un espacio, un salto de línea o un signo de puntuación. Hola !@here y (!@here) son silenciosas, hola!@here no.
  • Para mostrar los caracteres !@everyone como texto, escribe \!@everyone.
  • Importa en los mensajes normales y en el texto de Components V2, que es donde una mención puede avisar. En el título, la descripción, los campos y el pie de un embed clásico una mención nunca avisa, así que allí el ! solo se quita.
  • Un mensaje con menciones silenciosas y normales avisa solo a las normales.
  • El único límite: un @everyone silencioso junto a un @everyone normal en el mismo mensaje sí avisa, porque Discord lo decide una vez por mensaje. Usa un solo tipo en cada mensaje.
  • El ! solo quita avisos, nunca los agrega. Una función que nunca avisa (los temporizadores y los feeds, por ejemplo) no avisa con ! ni sin él.
  • Las vistas previas del dashboard dibujan la mención silenciosa como una mención normal, sin el !.

Cuándo usarla

Úsala cuando un mensaje deba mostrar de quién habla o a quién preguntar, sin despertar a nadie: un anuncio que nombra a !@everyone o a !@Moderadores como texto, una bienvenida que dice Pregunta a !@Moderadores si necesitas ayuda, o un mensaje de sorteo que nombra el rol de los ganadores. Para un aviso de verdad, escribe la mención como siempre.

Probar un mensaje

No necesitas un evento real para ver el resultado:
  • !welcome test, !leave test, !boost test y !dmonjoin test mandan el mensaje con tu propia cuenta como el miembro.
  • !embed preview <name> arma un embed guardado contigo como el miembro y el canal actual, así que las variables se llenan.
  • Las vistas previas del dashboard llenan las variables con datos de ejemplo (un miembro llamado Liam, un servidor con 1,204 miembros), y un mensaje de prueba enviado desde el dashboard usa tu cuenta y tu servidor reales.
liam usa !welcome test y Petto escribe la bienvenida con liam como miembro, el nombre del servidor, la cantidad de miembros y una de las dos opciones

En Discord: un texto de bienvenida probado con !welcome test, con cada variable completada.

Las variables de un evento concreto (un número de caso, el premio de un sorteo, un nivel) quedan vacías en una vista previa, porque todavía no hay evento.

Dónde se usa este resolvedor

Mensajes de bienvenida, salida, boost, MD al entrar y cumpleaños, autorrespuestas, comandos personalizados, subidas de nivel, sorteos, mensajes de bump, mensajes de sanciones, starboard y monkeyboard, sugerencias, confesiones, encuestas, partners, solicitudes, formularios, mensajes del honeypot, embeds de metas de contadores, verificación, mensajes de Vanity y Server Tag, alertas de Quests y Rollouts, nombres de hilos automáticos, botones con respuesta, la bienvenida de subidas, y cada campo de un embed guardado o de una tarjeta de imagen. Algunos textos tienen sus propios marcadores cortos y no usan este resolvedor: nombres de contadores, nombres de canales de tickets y textos de bienvenida de tickets, respuestas rápidas, horarios del staff de tickets, mensajes de apelaciones, nombres de VoiceMaster, nombres de hilos de sugerencias, alias de comandos y el texto simple de los mensajes fijos. Los temporizadores mandan su texto tal como está escrito. Mira Marcadores de una sola función. Para condiciones, bucles o datos guardados, usa Petto Code, documentado en code.petto.sbs.