Skip to content

Sistema de flags ​

NXGuard muestra y permite editar las flags de WorldGuard registradas en el servidor. Este documento explica cómo funcionan los tres estados, qué tipos de flags existen y cuáles son editables desde el GUI.


Los tres estados de una flag ​

WorldGuard trabaja con flags que pueden tener o no un valor asignado. NXGuard los representa con tres estados visuales:

NONE — Neutral (tinte gris) ​

La flag no tiene ningún valor asignado en esta región. WorldGuard aplicará su comportamiento predeterminado para esa flag, que puede ser heredado de una región padre o simplemente el valor por defecto del plugin.

Este es el estado inicial de todas las flags en una región recién creada.

ALLOW — Activada (tinte lima) ​

La flag tiene asignado el valor ALLOW (para StateFlag) o true (para BooleanFlag). Indica que el comportamiento asociado está explícitamente permitido en la región.

DENY — Desactivada (tinte rojo) ​

La flag tiene asignado el valor DENY (para StateFlag) o false (para BooleanFlag). Indica que el comportamiento asociado está explícitamente denegado en la región.


Tipos de flags en WorldGuard ​

WorldGuard registra diferentes tipos de flags según el valor que almacenan:

TipoDescripciónEditable en GUI
StateFlagAcepta ALLOW, DENY o sin valor. Es la más común.✅ Sí
BooleanFlagAcepta true o false.✅ Sí
StringFlagAlmacena texto libre (ej: mensajes de entrada/salida).❌ No (requiere comando)
IntegerFlagAlmacena un número entero (ej: cantidad de curación).❌ No (requiere comando)
DoubleFlagAlmacena un número decimal.❌ No (requiere comando)
LocationFlagAlmacena coordenadas.❌ No (requiere comando)
SetFlagAlmacena un conjunto de valores.❌ No (requiere comando)

Las flags StringFlag, IntegerFlag, etc. se muestran en el GUI con su estado actual (su valor se muestra como texto), pero los botones de click no están disponibles para ellas porque su lógica no es booleana. Para modificarlas usa el comando de WorldGuard:

/rg flag <región> <flag> <valor>

Flags comunes de WorldGuard ​

Estas son algunas de las flags más usadas. Todas son StateFlag y por tanto editables desde el GUI:

FlagDescripciónEstado por defecto
pvpPermite o deniega el combate entre jugadores.DENY en __global__
mob-spawningPermite o deniega el spawn de mobs.ALLOW
fire-spreadPermite o deniega la propagación del fuego.ALLOW
lava-firePermite o deniega que la lava cause fuego.ALLOW
block-breakPermite o deniega romper bloques.ALLOW para miembros
block-placePermite o deniega colocar bloques.ALLOW para miembros
usePermite o deniega usar cofres, palancas, etc.ALLOW para miembros
interactPermite o deniega interacción general.ALLOW para miembros
chest-accessPermite o deniega acceso a cofres específicamente.ALLOW para miembros
creeper-explosionPermite o deniega explosiones de creepers.ALLOW
tntPermite o deniega explosiones de TNT.ALLOW
vehicle-placePermite o deniega colocar vehículos (barcas, minecarts).ALLOW
vehicle-destroyPermite o deniega destruir vehículos.ALLOW
sleepPermite o deniega dormir en camas.ALLOW
greetingMensaje al entrar a la región (StringFlag).Sin valor
farewellMensaje al salir de la región (StringFlag).Sin valor
heal-amountCantidad de corazones que se regeneran (IntegerFlag).Sin valor
feed-amountCantidad de comida que se regenera (IntegerFlag).Sin valor

Cómo se guardan los cambios ​

Cada vez que se hace click en una flag editable desde el GUI, NXGuard:

  1. Aplica el nuevo valor a la región en memoria mediante la API de WorldGuard.
  2. Llama a RegionManager.saveChanges() para persistir los cambios en el archivo de regiones del mundo (normalmente world/region/).
  3. Actualiza el ítem en el inventario para reflejar el nuevo estado visualmente.

Si saveChanges() lanza una excepción, se registra una advertencia en la consola y se notifica al jugador, pero el valor en memoria puede haberse aplicado igualmente.


La región __global__ ​

WorldGuard tiene una región especial llamada __global__ que aplica a todo el mundo. Sus flags afectan a todas las áreas que no estén cubiertas por otra región. NXGuard la muestra en el GUI como cualquier otra región y permite editar sus flags de la misma manera.

Cambiar flags en __global__ tiene efecto en todo el mundo, no solo en una zona. Úsala con cuidado.

Desarrollado con ❤️ por Naxito's Studios