Contenido generado con IA — puede contener errores.

Módulos

Exylia Staff Web

Vincula la red a staff.exylia.net: el vínculo, los códigos de cuenta, la configuración gestionada, los rangos de LuckPerms, las apelaciones, las cuentas alternativas y las alertas del anticheat.

Exylia Staff Web es el panel desde el que trabaja el equipo fuera del juego. Una vez vinculada la red, cada sanción, reporte, freeze, fila de auditoría y sesión de staff llega a la web, y la web puede actuar en el juego como el miembro del staff que hizo clic. Esta página cubre lo que el dueño de un servidor configura en el lado del plugin; la web se configura en la web.

Participan tres módulos:

MóduloInterruptorQué hace
webmodules.webEl vínculo en sí, la bandeja de salida, los comandos que envía la web y la configuración gestionada.
altsmodules.altsRecuerda la dirección de cada entrada, sellada y con hash, para encontrar cuentas alternativas. Necesita web.
anticheatmodules.anticheatSuma las alertas de Grim, Vulcan o Matrix por jugador y minuto para la web, y reacciona a las ráfagas.

Los tres vienen activados por defecto y no hacen nada hasta que la red se vincula.

Antes de vincular

El vínculo se guarda en la base de datos, no en un archivo: cada servidor que lee la misma base de datos lo encuentra y se conecta por su cuenta. En una red, apunta primero todos los servidores a la misma base de datos, como explica Instalación. Un servidor con su propia base de datos H2 es una red de uno.

No hace falta abrir ningún puerto: cada servidor mantiene una conexión saliente al gateway.

Vincular

Pide un código

En un servidor cualquiera, ejecuta /staff web link, desde la consola o en el juego con exyliastaff.web.link. El plugin muestra un código, cuántos minutos es válido y un enlace para aprobarlo.

Apruébalo en la web

Abre el enlace, inicia sesión y elige el espacio de trabajo. El plugin espera a la aprobación y responde "Network linked to <workspace>. Every server connects on its own."

Revisa cada servidor

/staff web status en cada servidor debería decir connected.

ComandoPermisoQué hace
/staff web linkexyliastaff.web.linkVincula la red. Se rechaza si ya está vinculada.
/staff web statusexyliastaff.web.linkEl estado de este servidor, el espacio de trabajo, si envía los snapshots, si está LuckPerms, qué anticheats están enganchados, el último problema y la configuración gestionada.
/staff web unlinkexyliastaff.web.linkDesvincula la red y descarta lo que estaba pendiente de enviar. Todos los servidores se desconectan en menos de un minuto.
/staff webexyliastaff.staffUn código de un solo uso, válido cinco minutos, que un miembro del staff escribe en la web para vincular su cuenta de Discord a su cuenta de Minecraft.
/appeal <code>NingunoUn jugador sancionado confirma una apelación que abrió en la web.

Los códigos de cuenta se pueden desactivar en la web; entonces /staff web lo dice. Cuando la web rechaza esta versión del plugin, a los jugadores conectados con exyliastaff.web.link se les dice que lo actualicen.

Qué llega a la web

Cada módulo escribe lo que pasa en una tabla de bandeja de salida, web_outbox, y cada servidor envía sus propias filas en orden. No se pierde nada mientras la web o la conexión están caídas: las filas esperan y salen cuando vuelve. Un comando que envía la web se ejecuta una sola vez, como el miembro del staff que hizo clic, aunque el gateway lo entregue dos veces.

Configuración gestionada

Desde la web, un espacio de trabajo puede hacerse cargo de los archivos de comportamiento del plugin. Un archivo gestionado:

  • tiene una cabecera que dice Managed by Exylia Staff Web — local edits are ignored, edit it on the web;
  • recibe los valores de la web escritos encima antes de cargarse, al arrancar, cuando se habilita su módulo y con /exyliastaff reload, así que una edición en disco nunca tiene efecto;
  • sigue funcionando mientras la web está caída, desde la última revisión guardada en caché en web/managed.json.

Los archivos que la web puede gestionar son config.yml y el modules/<id>/config.yml de cada módulo. Nunca gestiona los mensajes, los menús ni nada más bajo lang/, los archivos del marcador y de inspección, ni modules/web/config.yml. En config.yml, language se queda en local; los interruptores de módulos los envía la web aparte de los archivos. Un archivo que la web deja de gestionar conserva su contenido y pierde la cabecera. /staff web status muestra la revisión, cuántos archivos están gestionados y si la última aplicación funcionó.

LuckPerms

LuckPerms es opcional. Con él, la web lee quién es staff — todo el que tenga exyliastaff.staff, directamente o a través de un grupo, en cualquier servidor — y puede dar y quitar rangos desde la web, en toda la red o en los servidores elegidos.

Un rango dado a un servidor es un nodo de LuckPerms con el contexto server de ese servidor. Cada servidor informa del suyo: el valor server del config.yml de LuckPerms. Un servidor que se quedó en global no se puede distinguir, así que pon nombre a cada backend ahí antes de dar rangos por servidor.

Sin LuckPerms, solo se pueden comprobar los permisos de los jugadores conectados en ese momento, y los cambios de rango desde la web se rechazan.

Apelaciones

Un jugador sancionado abre una apelación en la web, que le muestra un código de seis caracteres. Entra y escribe /appeal <code>; el plugin le pasa el código a la web, que lo asocia a la cuenta. No necesita permiso, tiene un tiempo de espera de diez segundos contra los intentos a ciegas, y responde "Appeals cannot be confirmed right now" mientras la red no está vinculada.

Cuentas alternativas

Con alts activado, cada entrada guarda un hash de la dirección, para cruzar cuentas, y la dirección sellada bajo una clave que solo abre el secreto de la red, para la web. Las dos claves salen del secreto de la red, así que no se registra nada antes del vínculo, y volver a vincular empieza un historial nuevo. Cuánto tiempo se guarda una entrada se configura en la web: 90 días salvo que se cambie.

Cuando entra una cuenta que comparte dirección con otra que tiene un ban activo, se avisa al staff conectado con exyliastaff.alts, con un clic al /history de la cuenta baneada. Los bans son las sanciones BAN, TEMPBAN e IPBAN que registró el módulo de sanciones.

Detrás de un proxy, reenvía la dirección real

Un backend solo ve las direcciones reales de los jugadores con el modern forwarding de Velocity o el IP forwarding de BungeeCord. Sin él, todos los jugadores comparten la dirección del proxy y todas las cuentas parecen relacionadas.

plugins/ExyliaStaff/modules/alts/config.yml
alert-evasion: true
ignored-addresses:
  - 127.0.0.1
ClavePor defectoQué hace
alert-evasiontrueAvisar al staff con exyliastaff.alts de una posible evasión de ban.
ignored-addresses127.0.0.1Direcciones que nunca se registran: el propio proxy, una oficina compartida, un bot de pruebas.

Alertas del anticheat

Con anticheat activado, GrimAC, Vulcan y Matrix se enganchan cuando están instalados, y sus alertas se suman por jugador, comprobación y minuto para la web. Un jugador que dispara un pico — tantas alertas en un minuto como el umbral de la web, todas las comprobaciones juntas, 20 salvo que se cambie, 0 para nunca — tiene su repetición guardada y se le señala al staff con exyliastaff.anticheat, una vez por minuto, con un clic que teletransporta hasta él.

plugins/ExyliaStaff/modules/anticheat/config.yml
capture-replay: true
alert-staff: true
ClavePor defectoQué hace
capture-replaytrueGuardar la repetición de un jugador que dispara un pico. Necesita el módulo de repeticiones.
alert-stafftrueAvisar al staff conectado con exyliastaff.anticheat.

El archivo del módulo web

plugins/ExyliaStaff/modules/web/config.yml
gateway-url: https://staff-gateway.exylia.net
web-url: https://staff.exylia.net

Deja los dos como están salvo que el soporte de Exylia diga otra cosa. El secreto de la red nunca está en un archivo: está sellado en la base de datos, así que este archivo se puede pegar sin riesgo en un ticket de soporte.

Mensajes

lang/<language>/modules/web/messages.yml contiene las líneas del vínculo, de cuenta, de estado y de apelación; lang/<language>/modules/alts/messages.yml tiene evasion-alert con %player%, %banned% y %type%; lang/<language>/modules/anticheat/messages.yml tiene spike-alert con %player%, %alerts%, %anticheat% y %check%.

Almacenamiento

web_link, web_lease, web_outbox y web_commands_done para el vínculo, staff_alts para las entradas.

¿Falta algo en esta página? Dínoslo en Discord