Intégrations de Protection de CannonRTP
CannonRTP peut valider les emplacements d'atterrissage candidats par rapport à plusieurs plugins de protection avant de les mettre en file pour utilisation.
Intégrations Prises en Charge
Les dépendances logicielles actuelles sont :
- WorldGuard
- Towny
- Lands
- GriefPrevention
- HuskTowns
- HuskClaims
Elles sont déclarées en softdepend dans plugin.yml. CannonRTP fonctionne sans aucune d'entre elles ; les plugins manquants sont silencieusement ignorés.
Fonctionnement des Vérifications de Protection
- Les adaptateurs sont vérifiés dans un ordre fixe : WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
- Un adaptateur de protection n'est enregistré que lorsque (a) sa bascule
enabledesttruedansprotection.ymlET (b) le plugin est présent et chargé sur le serveur. - Le premier adaptateur qui bloque un emplacement arrête la vérification et devient la raison signalée.
- Si une API de protection lève une erreur, CannonRTP bloque cet atterrissage par défaut (comportement sûr). Ceci est régi par
failOpenOnProtectionErrorsdanslanding.yml.
La bascule globale de sécurité pour les échecs d'API est :
failOpenOnProtectionErrors(danslanding.yml)
Défaut : false
Lorsque définie sur true, CannonRTP autorisera les atterrissages à continuer lorsqu'un plugin de protection ne peut être interrogé en toute sécurité.
La Commande /wc probe
Les administrateurs peuvent se placer à n'importe quel endroit et lancer /wc probe pour tester si cet emplacement passe toutes les vérifications de protection activées. Le résultat indique quel plugin a bloqué l'emplacement et pourquoi, ou confirme que l'emplacement est valide.
Fichier de Configuration
Toutes les bascules de protection se trouvent dans plugins/CannonRTP/protection.yml. Les clés sont au niveau racine (par ex. worldGuard.enabled, pas protection.worldGuard.enabled).
Comportement par Plugin
WorldGuard
Clés de configuration :
worldGuard.enabledworldGuard.allowGlobalRegionOnlyworldGuard.allowBuildAllowedRegionsworldGuard.allowPassthroughRegions
Comportement par défaut :
- activé par défaut
- les emplacements couverts uniquement par
__global__sont autorisés par défaut - les régions avec
build=ALLOWsont autorisées par défaut - les régions avec
passthrough=ALLOWsont autorisées par défaut - les autres régions protégées correspondantes sont bloquées
Towny
Clés de configuration :
towny.enabledtowny.allowWildernesstowny.allowNationZonestowny.allowClaimedTownBlocks
Comportement par défaut :
- activé par défaut
- la nature sauvage (wilderness) est autorisée
- les zones de nation sont bloquées
- les blocs de villes revendiqués sont bloqués
Lands
Clés de configuration :
lands.enabledlands.allowUnclaimedAreaslands.allowClaimedAreas
Comportement par défaut :
- activé par défaut
- les zones non revendiquées sont autorisées
- les zones revendiquées sont bloquées
GriefPrevention
Clés de configuration :
griefPrevention.enabledgriefPrevention.allowWildernessgriefPrevention.allowAdminClaimsgriefPrevention.allowPlayerClaims
Comportement par défaut :
- activé par défaut
- la nature sauvage est autorisée
- les revendications administrateur sont bloquées
- les revendications de joueurs sont bloquées
HuskTowns
Clés de configuration :
huskTowns.enabledhuskTowns.allowWildernesshuskTowns.allowAdminClaimshuskTowns.allowRegularClaimshuskTowns.allowFarmClaimshuskTowns.allowPlotClaims
Comportement par défaut :
- activé par défaut
- la nature sauvage est autorisée
- les revendications administrateur sont bloquées
- les revendications de villes régulières sont bloquées
- les revendications de fermes sont bloquées
- les revendications de parcelles sont bloquées
HuskClaims
Clés de configuration :
huskClaims.enabledhuskClaims.allowWildernesshuskClaims.allowAdminClaimshuskClaims.allowPlayerClaims
Comportement par défaut :
- activé par défaut
- la nature sauvage est autorisée
- les revendications administrateur sont bloquées
- les revendications de joueurs sont bloquées
La Validation Hors-Protection S'Applique Toujours
Les intégrations de protection ne sont qu'une partie de la validation d'atterrissage. Un emplacement peut encore être rejeté car :
- il se trouve hors des limites du monde
- aucune surface sûre n'existe
- l'espace des pieds ou de la tête est obstrué
- le terrain correspond aux listes de matériaux dangereux configurées
- un listener
CannonRTPLocationValidationEventle rejette (voir Événements API)
Rapport d'Échec
Lorsqu'un canon devient épuisé (ne parvient pas à trouver suffisamment d'emplacements valides avant que searchTimeoutAttempts ne soit épuisé), la sortie de statut et les messages destinés aux joueurs incluent une analyse des raisons de rejet courantes. Si la plupart des rejets proviennent de terrains protégés, cela est signalé. Cela aide les administrateurs à diagnostiquer si les paramètres de protection sont trop restrictifs pour leur serveur.