Integraciones de Protección de CannonRTP
CannonRTP puede validar ubicaciones de aterrizaje candidatas contra varios plugins de protección antes de ponerlas en cola para su uso.
Integraciones Compatibles
Las dependencias opcionales actuales son:
- WorldGuard
- Towny
- Lands
- GriefPrevention
- HuskTowns
- HuskClaims
Estas se declaran como softdepend en plugin.yml. CannonRTP funciona sin ninguna de ellas instalada; los plugins ausentes se omiten silenciosamente.
Cómo Funcionan las Comprobaciones de Protección
- Los adaptadores se revisan en un orden fijo: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
- Un adaptador de protección solo se registra cuando (a) su interruptor
enabledestrueenprotection.ymlY (b) el plugin está presente y cargado en el servidor. - El primer adaptador que bloquea una ubicación detiene la comprobación y se convierte en el motivo reportado.
- Si una API de protección lanza un error, CannonRTP bloquea ese aterrizaje por defecto (comportamiento safe-open). Esto se controla mediante
failOpenOnProtectionErrorsenlanding.yml.
El interruptor global de seguridad para fallos de API es:
failOpenOnProtectionErrors(enlanding.yml)
Predeterminado: false
Cuando se establece en true, CannonRTP permitirá que los aterrizajes continúen cuando un plugin de protección no se pueda consultar de forma segura.
El Comando /wc probe
Los administradores pueden situarse en cualquier ubicación y ejecutar /wc probe para probar si esa ubicación pasa todas las comprobaciones de protección habilitadas. El resultado informa qué plugin bloqueó la ubicación y por qué, o confirma que la ubicación es válida.
Archivo de Configuración
Todos los interruptores de protección están en plugins/CannonRTP/protection.yml. Las claves están en el nivel superior (p. ej. worldGuard.enabled, no protection.worldGuard.enabled).
Comportamiento por Plugin
WorldGuard
Claves de configuración:
worldGuard.enabledworldGuard.allowGlobalRegionOnlyworldGuard.allowBuildAllowedRegionsworldGuard.allowPassthroughRegions
Comportamiento predeterminado:
- activado por defecto
- las ubicaciones cubiertas solo por
__global__se permiten por defecto - las regiones con
build=ALLOWse permiten por defecto - las regiones con
passthrough=ALLOWse permiten por defecto - otras regiones protegidas coincidentes se bloquean
Towny
Claves de configuración:
towny.enabledtowny.allowWildernesstowny.allowNationZonestowny.allowClaimedTownBlocks
Comportamiento predeterminado:
- activado por defecto
- las zonas salvajes se permiten
- las zonas de nación se bloquean
- los bloques de ciudad reclamados se bloquean
Lands
Claves de configuración:
lands.enabledlands.allowUnclaimedAreaslands.allowClaimedAreas
Comportamiento predeterminado:
- activado por defecto
- las áreas no reclamadas se permiten
- las áreas reclamadas se bloquean
GriefPrevention
Claves de configuración:
griefPrevention.enabledgriefPrevention.allowWildernessgriefPrevention.allowAdminClaimsgriefPrevention.allowPlayerClaims
Comportamiento predeterminado:
- activado por defecto
- las zonas salvajes se permiten
- las reivindicaciones de administrador se bloquean
- las reivindicaciones de jugador se bloquean
HuskTowns
Claves de configuración:
huskTowns.enabledhuskTowns.allowWildernesshuskTowns.allowAdminClaimshuskTowns.allowRegularClaimshuskTowns.allowFarmClaimshuskTowns.allowPlotClaims
Comportamiento predeterminado:
- activado por defecto
- las zonas salvajes se permiten
- las reivindicaciones de administrador se bloquean
- las reivindicaciones normales de ciudad se bloquean
- las reivindicaciones de granja se bloquean
- las reivindicaciones de parcela se bloquean
HuskClaims
Claves de configuración:
huskClaims.enabledhuskClaims.allowWildernesshuskClaims.allowAdminClaimshuskClaims.allowPlayerClaims
Comportamiento predeterminado:
- activado por defecto
- las zonas salvajes se permiten
- las reivindicaciones de administrador se bloquean
- las reivindicaciones de jugador se bloquean
La Validación no Relacionada con Protección Sigue Aplicándose
Las integraciones de protección son solo una parte de la validación del aterrizaje. Una ubicación aún puede ser rechazada porque:
- está fuera del borde del mundo
- no existe una superficie segura
- el espacio de pies o cabeza está bloqueado
- el terreno coincide con las listas configuradas de materiales inseguros
- un listener de
CannonRTPLocationValidationEventla veta (consulta Eventos de la API)
Informe de Fallos
Cuando un cañón se agota (no puede encontrar suficientes ubicaciones válidas antes de que se acaben los searchTimeoutAttempts), la salida de estado y los mensajes dirigidos a los jugadores incluyen un desglose de las razones de rechazo comunes. Si la mayoría de los rechazos provienen de terreno protegido, eso se informa. Esto ayuda a los administradores a diagnosticar si los ajustes de protección son demasiado restrictivos para su servidor.