Saltar para o conteúdo principal

Integrações de proteção do CannonRTP

O CannonRTP pode verificar destinos de aterragem candidatos em vários plugins de proteção antes de os colocar na fila.

Integrações suportadas​

São suportados os seguintes plugins de proteção:

  • WorldGuard (também precisa do WorldEdit, que já é um requisito do WorldGuard)
  • Towny
  • Lands
  • GriefPrevention
  • HuskTowns
  • HuskClaims

Todos estão declarados como softdepend no plugin.yml, juntamente com WorldEdit e FreeMinecraftModels. O CannonRTP funciona sem nenhum deles instalado; os plugins ausentes são ignorados sem aviso.

Funcionamento das verificações de proteção​

  • Os adaptadores são consultados por uma ordem fixa: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
  • Um adaptador só é registado quando (a) a sua opção enabled está a true em protection.yml E (b) o respetivo plugin está presente e carregado no servidor.
  • O primeiro adaptador que bloqueia um local termina a verificação e fornece o motivo apresentado.
  • Se uma API de proteção lançar um erro, o CannonRTP bloqueia a aterragem por predefinição. Este comportamento é controlado por failOpenOnProtectionErrors em landing.yml.
  • Se o adaptador estiver ativado e o plugin presente, mas o adaptador não conseguir carregar, por exemplo devido a uma classe em falta ou a uma versão de API incompatível, o CannonRTP regista Failed to hook into <plugin> e mantém um substituto para esse plugin na cadeia de verificações, para que a falha não seja tratada como se o plugin não estivesse instalado. failOpenOnProtectionErrors decide o que o substituto faz:
    • false (predefinição): o substituto bloqueia todos os locais com o motivo its adapter failed to initialize (...) e os canhões deixam de pesquisar. Cada canhão é marcado como Exhausted, com terreno protegido como motivo, em vez de analisar locais que não podem passar. Corrija a integração, ou desative-a em protection.yml, e depois execute /wc reload.
    • true: o substituto permite todos os locais e os outros adaptadores continuam a ser executados.

A opção global que controla as falhas das APIs é:

  • failOpenOnProtectionErrors (em landing.yml)

Predefinição: false

Com true, o CannonRTP permite continuar as aterragens quando não consegue consultar um plugin de proteção com segurança. Com false, um erro de consulta bloqueia esse local com o motivo its API could not be queried safely. Os erros de consulta são registados como avisos com qualquer uma das definições.

Comando /wc probe​

Um administrador pode colocar-se num local e executar /wc probe para verificar se esse local passa todas as verificações de proteção ativadas. O resultado identifica o plugin que o bloqueou e o motivo, ou confirma que os adaptadores o permitem. Este comando não valida o terreno, a coluna de queda, o raio de pesquisa nem o evento de validação de localizações da API.

Ficheiro de configuração​

Todas as opções de proteção estão em plugins/CannonRTP/protection.yml. As chaves partem do nível principal, por exemplo 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 predefinido:

  • ativado
  • locais abrangidos apenas por __global__ são permitidos
  • regiões com build=ALLOW são permitidas
  • regiões com passthrough=ALLOW são permitidas
  • outras regiões protegidas que abranjam o local são bloqueadas

Towny​

Chaves de configuração:

  • towny.enabled
  • towny.allowWilderness
  • towny.allowNationZones
  • towny.allowClaimedTownBlocks

Comportamento predefinido:

  • ativado
  • mundos onde o Towny não está ativo são sempre permitidos
  • áreas selvagens são permitidas
  • zonas de nações são bloqueadas
  • blocos reclamados por cidades são bloqueados

Lands​

Chaves de configuração:

  • lands.enabled
  • lands.allowUnclaimedAreas
  • lands.allowClaimedAreas

Comportamento predefinido:

  • ativado
  • áreas não reclamadas são permitidas
  • áreas reclamadas são bloqueadas

GriefPrevention​

Chaves de configuração:

  • griefPrevention.enabled
  • griefPrevention.allowWilderness
  • griefPrevention.allowAdminClaims
  • griefPrevention.allowPlayerClaims

Comportamento predefinido:

  • ativado
  • áreas selvagens são permitidas
  • terrenos reclamados por administradores são bloqueados
  • terrenos reclamados por jogadores são bloqueados

HuskTowns​

Chaves de configuração:

  • huskTowns.enabled
  • huskTowns.allowWilderness
  • huskTowns.allowAdminClaims
  • huskTowns.allowRegularClaims
  • huskTowns.allowFarmClaims
  • huskTowns.allowPlotClaims

Comportamento predefinido:

  • ativado
  • áreas selvagens são permitidas
  • terrenos reclamados por administradores são bloqueados
  • terrenos normais reclamados por cidades são bloqueados
  • terrenos agrícolas reclamados são bloqueados
  • lotes reclamados são bloqueados

HuskClaims​

Chaves de configuração:

  • huskClaims.enabled
  • huskClaims.allowWilderness
  • huskClaims.allowAdminClaims
  • huskClaims.allowPlayerClaims

Comportamento predefinido:

  • ativado
  • áreas selvagens são permitidas
  • terrenos reclamados por administradores são bloqueados
  • terrenos reclamados por jogadores são bloqueados

As restantes validações continuam a aplicar-se​

As integrações de proteção são apenas uma parte da validação de aterragem. Um local pode continuar a ser rejeitado porque:

  • fica fora do limite do mundo
  • não tem uma superfície segura
  • o espaço para os pés ou a cabeça está obstruído
  • o terreno contém materiais das listas de materiais inseguros configuradas
  • um listener de CannonRTPLocationValidationEvent o rejeita (consulte Eventos da API)

Comunicação de falhas​

Quando um canhão fica esgotado (não encontra destinos válidos suficientes antes de esgotar searchTimeoutAttempts, ou para antes disso porque uma integração de proteção não conseguiu carregar), o estado e as mensagens aos jogadores enumeram as categorias de rejeição encontradas nessa janela de pesquisa. Os terrenos protegidos aparecem mesmo que apenas uma amostra tenha sido rejeitada por esse motivo. O texto não inclui contagens nem ordena as categorias por frequência, apesar de expressões como «most samples» na mensagem predefinida. Use-o para identificar verificações a investigar, não para medir qual rejeitou mais locais.