Aller au contenu principal

Intégrations de protection de CannonRTP

CannonRTP peut vérifier les emplacements d'atterrissage candidats auprès de plusieurs plugins de protection avant de les mettre en file.

Intégrations prises en charge​

Les plugins de protection pris en charge sont :

  • WorldGuard, qui nécessite également WorldEdit
  • Towny
  • Lands
  • GriefPrevention
  • HuskTowns
  • HuskClaims

Ils sont tous déclarés en softdepend dans plugin.yml, aux côtés de WorldEdit et FreeMinecraftModels. CannonRTP fonctionne même si aucun d'eux n'est installé ; les plugins absents sont ignorés silencieusement.

Fonctionnement des vérifications de protection​

  • Les adaptateurs sont interrogés dans un ordre fixe : WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, puis HuskClaims.
  • Un adaptateur de protection n'est enregistré que si son réglage enabled vaut true dans protection.yml et si le plugin est présent et chargé sur le serveur.
  • Le premier adaptateur qui bloque un emplacement arrête la vérification et fournit la raison signalée.
  • Si une API de protection provoque une erreur, CannonRTP bloque l'atterrissage par défaut. Ce comportement est contrôlé par failOpenOnProtectionErrors dans landing.yml.
  • Si un adaptateur est activé et son plugin présent, mais que l'adaptateur ne parvient pas à se charger, par exemple à cause d'une classe manquante ou d'une version d'API incompatible, CannonRTP consigne Failed to hook into <plugin> et conserve un substitut pour ce plugin dans la chaîne de vérification : l'échec n'est donc pas traité comme si le plugin n'était pas installé. failOpenOnProtectionErrors détermine le comportement du substitut :
    • false (par défaut) : le substitut bloque tous les emplacements avec le motif its adapter failed to initialize (...), et les canons cessent leur recherche. Chaque canon est marqué Exhausted avec les terrains protégés comme motif, au lieu d'examiner des emplacements qui ne peuvent pas passer. Corrigez l'intégration, ou désactivez-la dans protection.yml, puis exécutez /wc reload.
    • true : le substitut autorise tous les emplacements, et les autres adaptateurs s'exécutent toujours.

Le réglage global de sécurité en cas d'échec d'API est :

  • failOpenOnProtectionErrors, dans landing.yml

Valeur par défaut : false

Avec la valeur true, CannonRTP autorise la poursuite des atterrissages lorsqu'il ne peut pas interroger correctement un plugin de protection. Avec false, une erreur de requête bloque cet emplacement avec le motif its API could not be queried safely. Les erreurs de requête sont consignées comme avertissements quel que soit le réglage.

Commande /wc probe​

Les administrateurs peuvent se placer à n'importe quel endroit et exécuter /wc probe pour vérifier si cet emplacement passe toutes les protections activées. Le résultat indique quel plugin bloque l'emplacement et pourquoi, ou confirme que les adaptateurs de protection l'autorisent. Cette commande ne vérifie ni le terrain, ni la colonne de largage, ni le rayon de recherche, et ne déclenche pas l'événement de validation de localisation de l'API.

Fichier de configuration​

Tous les réglages de protection se trouvent dans plugins/CannonRTP/protection.yml. Les clés partent de la racine du fichier : par exemple worldGuard.enabled, et non protection.worldGuard.enabled.

Comportement par plugin​

WorldGuard​

Clés de configuration :

  • worldGuard.enabled
  • worldGuard.allowGlobalRegionOnly
  • worldGuard.allowBuildAllowedRegions
  • worldGuard.allowPassthroughRegions

Comportement par défaut :

  • intégration activée
  • emplacements couverts uniquement par __global__ autorisés
  • régions avec build=ALLOW autorisées
  • régions avec passthrough=ALLOW autorisées
  • autres régions protégées correspondantes bloquées

Towny​

Clés de configuration :

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

Comportement par défaut :

  • intégration activée
  • mondes où Towny n'est pas activé toujours autorisés
  • zones sauvages autorisées
  • zones de nation bloquées
  • terrains revendiqués par une ville bloqués

Lands​

Clés de configuration :

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

Comportement par défaut :

  • intégration activée
  • zones non revendiquées autorisées
  • zones revendiquées bloquées

GriefPrevention​

Clés de configuration :

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

Comportement par défaut :

  • intégration activée
  • zones sauvages autorisées
  • territoires d'administration bloqués
  • territoires de joueurs bloqués

HuskTowns​

Clés de configuration :

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

Comportement par défaut :

  • intégration activée
  • zones sauvages autorisées
  • territoires d'administration bloqués
  • territoires de ville ordinaires bloqués
  • territoires agricoles bloqués
  • parcelles revendiquées bloquées

HuskClaims​

Clés de configuration :

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

Comportement par défaut :

  • intégration activée
  • zones sauvages autorisées
  • territoires d'administration bloqués
  • territoires de joueurs bloqués

Les autres validations restent applicables​

Les intégrations de protection ne constituent qu'une partie de la validation de l'atterrissage. Un emplacement peut encore être refusé pour les raisons suivantes :

  • il se trouve hors de la bordure du monde
  • aucune surface sûre n'existe
  • l'espace destiné aux pieds ou à la tête est obstrué
  • le terrain correspond aux listes configurées de matériaux dangereux
  • un écouteur de CannonRTPLocationValidationEvent le rejette ; voir Événements de l'API

Signalement des échecs​

Lorsqu'un canon est épuisé, parce qu'il atteint searchTimeoutAttempts sans trouver assez d'emplacements valides ou parce qu'il s'arrête plus tôt après l'échec du chargement d'une intégration de protection, le statut et les messages aux joueurs listent les catégories de rejet rencontrées pendant cette période de recherche. Les terrains protégés apparaissent même si un seul candidat a été refusé pour cette raison. Le texte ne donne ni nombres ni classement par fréquence, malgré des expressions comme « most samples » dans le message par défaut. Utilisez-le pour identifier les vérifications à examiner, pas pour mesurer laquelle a rejeté le plus d'emplacements.