Integrações de Proteção do CannonRTP
O CannonRTP pode validar locais de pouso candidatos em relação a vários plugins de proteção antes de enfileirá-los para uso.
Integrações Suportadas
As dependências leves (soft dependencies) atuais são:
- WorldGuard
- Towny
- Lands
- GriefPrevention
- HuskTowns
- HuskClaims
Estas são declaradas como softdepend no plugin.yml. O CannonRTP funciona sem nenhuma delas instalada; plugins ausentes são simplesmente ignorados.
Como Funcionam as Verificações de Proteção
- Os adaptadores são verificados em uma ordem fixa: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
- Um adaptador de proteção só é registrado quando (a) seu toggle
enabledétrueemprotection.ymlE (b) o plugin está presente e carregado no servidor. - O primeiro adaptador que bloqueia um local interrompe a verificação e torna-se o motivo reportado.
- Se uma API de proteção lançar um erro, o CannonRTP bloqueia esse pouso por padrão (comportamento safe-open). Isto é governado por
failOpenOnProtectionErrorsemlanding.yml.
O toggle global de segurança para falhas de API é:
failOpenOnProtectionErrors(emlanding.yml)
Padrão: false
Quando definido como true, o CannonRTP permitirá que os pousos continuem quando um plugin de proteção não puder ser consultado com segurança.
O Comando /wc probe
Administradores podem ficar parados em qualquer local e executar /wc probe para testar se aquele local passa em todas as verificações de proteção ativadas. O resultado informa qual plugin bloqueou o local e por quê, ou confirma que o local é válido.
Arquivo de Configuração
Todos os toggles de proteção ficam em plugins/CannonRTP/protection.yml. As chaves são de nível superior (ex.: worldGuard.enabled, e não protection.worldGuard.enabled).
Comportamento por Plugin
WorldGuard
Chaves de configuração:
worldGuard.enabledworldGuard.allowGlobalRegionOnlyworldGuard.allowBuildAllowedRegionsworldGuard.allowPassthroughRegions
Comportamento padrão:
- ativado por padrão
- locais cobertos apenas por
__global__são permitidos por padrão - regiões com
build=ALLOWsão permitidas por padrão - regiões com
passthrough=ALLOWsão permitidas por padrão - outras regiões protegidas correspondentes são bloqueadas
Towny
Chaves de configuração:
towny.enabledtowny.allowWildernesstowny.allowNationZonestowny.allowClaimedTownBlocks
Comportamento padrão:
- ativado por padrão
- wilderness é permitida
- zonas de nação são bloqueadas
- blocos de cidade reivindicados são bloqueados
Lands
Chaves de configuração:
lands.enabledlands.allowUnclaimedAreaslands.allowClaimedAreas
Comportamento padrão:
- ativado por padrão
- áreas não reivindicadas são permitidas
- áreas reivindicadas são bloqueadas
GriefPrevention
Chaves de configuração:
griefPrevention.enabledgriefPrevention.allowWildernessgriefPrevention.allowAdminClaimsgriefPrevention.allowPlayerClaims
Comportamento padrão:
- ativado por padrão
- wilderness é permitida
- claims de administrador são bloqueados
- claims de jogador são bloqueados
HuskTowns
Chaves de configuração:
huskTowns.enabledhuskTowns.allowWildernesshuskTowns.allowAdminClaimshuskTowns.allowRegularClaimshuskTowns.allowFarmClaimshuskTowns.allowPlotClaims
Comportamento padrão:
- ativado por padrão
- wilderness é permitida
- claims de administrador são bloqueados
- claims regulares de cidade são bloqueados
- claims de fazenda são bloqueados
- claims de lote (plot) são bloqueados
HuskClaims
Chaves de configuração:
huskClaims.enabledhuskClaims.allowWildernesshuskClaims.allowAdminClaimshuskClaims.allowPlayerClaims
Comportamento padrão:
- ativado por padrão
- wilderness é permitida
- claims de administrador são bloqueados
- claims de jogador são bloqueados
A Validação Que Não é de Proteção Ainda se Aplica
As integrações de proteção são apenas uma parte da validação do pouso. Um local ainda pode ser rejeitado porque:
- está fora do limite do mundo
- não existe uma superfície segura
- o espaço dos pés ou da cabeça está bloqueado
- o terreno corresponde às listas de materiais inseguros configuradas
- um listener de
CannonRTPLocationValidationEvento veta (veja Eventos da API)
Reporte de Falhas
Quando um canhão fica esgotado (não consegue encontrar locais válidos suficientes antes de searchTimeoutAttempts acabar), a saída de status e as mensagens voltadas ao jogador incluem uma análise dos motivos de rejeição mais comuns. Se a maioria das rejeições veio de áreas protegidas, isso é informado. Isso ajuda administradores a diagnosticar se as configurações de proteção estão restritivas demais para o servidor.