Pular para o conteúdo principal

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 é true em protection.yml E (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 failOpenOnProtectionErrors em landing.yml.

O toggle global de segurança para falhas de API é:

  • failOpenOnProtectionErrors (em landing.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.enabled
  • worldGuard.allowGlobalRegionOnly
  • worldGuard.allowBuildAllowedRegions
  • worldGuard.allowPassthroughRegions

Comportamento padrão:

  • ativado por padrão
  • locais cobertos apenas por __global__ são permitidos por padrão
  • regiões com build=ALLOW são permitidas por padrão
  • regiões com passthrough=ALLOW são permitidas por padrão
  • outras regiões protegidas correspondentes são bloqueadas

Towny

Chaves de configuração:

  • towny.enabled
  • towny.allowWilderness
  • towny.allowNationZones
  • towny.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.enabled
  • lands.allowUnclaimedAreas
  • lands.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.enabled
  • griefPrevention.allowWilderness
  • griefPrevention.allowAdminClaims
  • griefPrevention.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.enabled
  • huskTowns.allowWilderness
  • huskTowns.allowAdminClaims
  • huskTowns.allowRegularClaims
  • huskTowns.allowFarmClaims
  • huskTowns.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.enabled
  • huskClaims.allowWilderness
  • huskClaims.allowAdminClaims
  • huskClaims.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 CannonRTPLocationValidationEvent o 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.