Integraciones de protección de CannonRTP
CannonRTP puede comprobar las ubicaciones candidatas de aterrizaje con varios plugins de protección antes de añadirlas a la cola.
Integraciones compatibles
Los plugins de protección compatibles son:
- WorldGuard, que también necesita WorldEdit como dependencia propia.
- Towny.
- Lands.
- GriefPrevention.
- HuskTowns.
- HuskClaims.
Todos se declaran como softdepend en plugin.yml, junto con WorldEdit y FreeMinecraftModels. CannonRTP funciona sin ninguno de ellos; los plugins ausentes se omiten silenciosamente.
Cómo funcionan las comprobaciones
- Los adaptadores se comprueban en un orden fijo: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns y HuskClaims.
- Un adaptador solo se registra si su ajuste
enabledestrueenprotection.ymly el plugin está presente y cargado en el servidor. - El primer adaptador que bloquea una ubicación detiene la comprobación y determina el motivo informado.
- Si una API de protección lanza un error, CannonRTP bloquea ese aterrizaje por defecto. Este comportamiento se controla mediante
failOpenOnProtectionErrorsenlanding.yml. - Si el adaptador está habilitado y su plugin está presente, pero el adaptador no puede cargarse por una clase ausente o una API incompatible, CannonRTP registra
Failed to hook into <plugin>y conserva un sustituto para ese plugin en la cadena de comprobaciones, de modo que el fallo no se trata como si el plugin no estuviera instalado.failOpenOnProtectionErrorsdecide qué hace el sustituto:false(predeterminado): el sustituto bloquea todas las ubicaciones con el motivoits adapter failed to initialize (...)y los cañones dejan de buscar. Cada cañón se marca como Agotado con los terrenos protegidos como motivo, en lugar de muestrear ubicaciones que no pueden superar la comprobación. Corrige la integración, o deshabilítala enprotection.yml, y después ejecuta/wc reload.true: el sustituto permite todas las ubicaciones y los demás adaptadores siguen ejecutándose.
El ajuste global de seguridad para fallos de API es:
failOpenOnProtectionErrors, enlanding.yml.
Valor predeterminado: false.
Con true, CannonRTP permite continuar el aterrizaje cuando no puede consultar de forma segura un plugin de protección. Con false, un error de consulta bloquea esa ubicación con el motivo its API could not be queried safely. Los errores de consulta se registran como avisos con cualquiera de los dos valores.
El comando /wc probe
Los administradores pueden situarse en cualquier ubicación y ejecutar /wc probe para comprobar si supera todas las protecciones habilitadas. El resultado indica qué plugin la ha bloqueado y por qué, o confirma que los adaptadores de protección la permiten. Este comando no valida el terreno, la columna de descenso, el radio de búsqueda ni el evento de validación de ubicaciones de la API.
Archivo de configuración
Todos los ajustes de protección están en plugins/CannonRTP/protection.yml. Las claves parten del nivel superior: por ejemplo, worldGuard.enabled, no protection.worldGuard.enabled.
Comportamiento de cada plugin
WorldGuard
Claves de configuración:
worldGuard.enabledworldGuard.allowGlobalRegionOnlyworldGuard.allowBuildAllowedRegionsworldGuard.allowPassthroughRegions
Comportamiento predeterminado:
- Habilitado.
- Permite ubicaciones cubiertas únicamente por
__global__. - Permite regiones con
build=ALLOW. - Permite regiones con
passthrough=ALLOW. - Bloquea las demás regiones protegidas coincidentes.
Towny
Claves de configuración:
towny.enabledtowny.allowWildernesstowny.allowNationZonestowny.allowClaimedTownBlocks
Comportamiento predeterminado:
- Habilitado.
- Siempre permite los mundos en los que Towny no está habilitado.
- Permite terrenos sin reclamar.
- Bloquea zonas de naciones.
- Bloquea bloques reclamados por ciudades.
Lands
Claves de configuración:
lands.enabledlands.allowUnclaimedAreaslands.allowClaimedAreas
Comportamiento predeterminado:
- Habilitado.
- Permite áreas sin reclamar.
- Bloquea áreas reclamadas.
GriefPrevention
Claves de configuración:
griefPrevention.enabledgriefPrevention.allowWildernessgriefPrevention.allowAdminClaimsgriefPrevention.allowPlayerClaims
Comportamiento predeterminado:
- Habilitado.
- Permite terrenos sin reclamar.
- Bloquea terrenos reclamados por administradores.
- Bloquea terrenos reclamados por jugadores.
HuskTowns
Claves de configuración:
huskTowns.enabledhuskTowns.allowWildernesshuskTowns.allowAdminClaimshuskTowns.allowRegularClaimshuskTowns.allowFarmClaimshuskTowns.allowPlotClaims
Comportamiento predeterminado:
- Habilitado.
- Permite terrenos sin reclamar.
- Bloquea terrenos reclamados por administradores.
- Bloquea terrenos normales reclamados por ciudades.
- Bloquea terrenos reclamados como granjas.
- Bloquea terrenos reclamados como parcelas.
HuskClaims
Claves de configuración:
huskClaims.enabledhuskClaims.allowWildernesshuskClaims.allowAdminClaimshuskClaims.allowPlayerClaims
Comportamiento predeterminado:
- Habilitado.
- Permite terrenos sin reclamar.
- Bloquea terrenos reclamados por administradores.
- Bloquea terrenos reclamados por jugadores.
Se siguen aplicando las demás validaciones
Las protecciones son solo una parte de la validación del aterrizaje. Una ubicación puede rechazarse porque:
- Está fuera del borde del mundo.
- No hay una superficie segura.
- El espacio de los pies o de la cabeza está bloqueado.
- El terreno coincide con las listas de materiales inseguros configuradas.
- Un listener de
CannonRTPLocationValidationEventla rechaza; consulta Eventos de la API.
Información sobre fallos
Cuando un cañón queda agotado (agota searchTimeoutAttempts sin encontrar suficientes ubicaciones válidas, o se detiene antes porque una integración de protección no pudo cargarse), el estado y los mensajes para jugadores enumeran las categorías de rechazo detectadas durante ese periodo. Los terrenos protegidos aparecen aunque solo se haya rechazado una muestra por ese motivo. El texto no incluye recuentos ni ordena las categorías por frecuencia, pese a expresiones como «most samples» en el mensaje predeterminado. Úsalo para identificar qué comprobaciones investigar, no para medir cuál rechazó más ubicaciones.