Aller au contenu principal

Configuration de CannonRTP

CannonRTP répartit ses paramètres globaux dans plusieurs fichiers de plugins/CannonRTP/, ainsi qu'un fichier de configuration par canon dans plugins/CannonRTP/cannons/.

Organisation des Fichiers

FichierRôle
plugins/CannonRTP/config.ymlIndicateurs d'exécution de haut niveau (état du setup, langue, intervalle des particules, priorité des modèles de canon, identifiant de ressource Spigot)
plugins/CannonRTP/landing.ymlRéglages de la recherche d'atterrissage (taille de la file, tentatives avant timeout, durée de chute lente, listes de matériaux dangereux, comportement en cas d'échec)
plugins/CannonRTP/sounds.ymlSons joués durant la séquence de lancement
plugins/CannonRTP/messages.ymlTous les messages destinés aux joueurs, préfixes et listes de titres
plugins/CannonRTP/protection.ymlBascules d'intégration de protection par plugin
plugins/CannonRTP/cannons/<id>.ymlUn fichier par canon (chacun pouvant piloter plusieurs placements)
plugins/CannonRTP/cannons_disabled/Dossier de conservation pour les configurations de canons fournies avec des packages de contenu mais actuellement désactivées. Le menu /wc setup déplace les fichiers entre cannons/ et cannons_disabled/ lorsque vous activez ou désactivez un package de contenu.
plugins/CannonRTP/content_packages/<package>.ymlMétadonnées générées pour chaque package de contenu Nightbreak (version, lien de téléchargement, préfixes utilisés pour trouver ses fichiers). Pas modifié à la main normalement.

Le plugin fournit par défaut trois exemples de configurations de canon :

  • example_cannonrtp.yml -- modèle de référence vide, désactivé par défaut. À utiliser comme référence YAML lors de la rédaction manuelle de fichiers de canon.
  • cannonrtp_free_cannon.yml -- activé, aucun placement, pointe vers le modèle FMM cannonrtp gratuit.
  • cannonrtp_premium_cannon.yml -- activé, aucun placement, pointe vers le modèle FMM cannonrtp_premium premium.

Aucun d'entre eux n'a cannonLocations renseigné par défaut, donc rien n'apparaît dans le monde tant qu'un administrateur n'exécute pas /wc create ou /wc place.

config.yml

CléDéfautComportement
setupDonefalseIndique si la première configuration Nightbreak a été effectuée
languageenglishFichier de traduction à charger. La Release 1 ne fournit que l'anglais ; la clé existe pour de futurs packs de traduction
runtime.particleIntervalTicks15Fréquence d'affichage des particules de canon au repos (minimum 5)
runtime.cannonModelPriority[cannonrtp_premium, cannonrtp]Liste de priorité des noms de modèles FreeMinecraftModels, vérifiée de haut en bas. Le premier modèle trouvé sur le serveur est utilisé pour tout canon qui ne définit pas son propre customModel. Si aucun n'est trouvé, le repli sur les particules orbitales est utilisé.
runtime.spigotResourceId""Identifiant de ressource Spigot utilisé par le vérificateur de version. Laissez vide pour désactiver.

landing.yml

CléDéfautComportement
preloadedLocationsPerCannon10Nombre total de destinations sûres que le plugin tente de conserver en file par canon (minimum 1)
chargedLocationsPerCannon1Nombre d'emplacements qu'un canon doit détenir avant que son étiquette de statut bascule sur Ready (minimum 1, plafonné à preloadedLocationsPerCannon). Les canons lancent les joueurs dès que la file contient au moins un emplacement -- ce seuil n'affecte que l'étiquette visuelle.
searchTimeoutAttempts100Nombre de tentatives de recherche échouées avant qu'un canon soit marqué Exhausted (minimum 10). Les tentatives sont limitées globalement à une par tick (20 par seconde), réparties équitablement entre tous les canons actifs.
slowFallingSeconds60Durée maximale de Chute Lente après le largage (minimum 1). L'effet est retiré plus tôt lorsque le joueur atterrit.
failOpenOnProtectionErrorsfalseSi une API de plugin de protection génère une erreur, bloquer l'atterrissage par défaut. Mettez true pour autoriser les atterrissages à continuer lorsqu'un plugin de protection ne peut être interrogé en toute sécurité.
unsafeGroundMaterials[LAVA, MAGMA_BLOCK, CAMPFIRE, SOUL_CAMPFIRE, CACTUS, POWDER_SNOW]Matériaux qui disqualifient une surface d'atterrissage
unsafeBodyMaterials[LAVA, WATER, FIRE, SOUL_FIRE, SWEET_BERRY_BUSH, POWDER_SNOW, COBWEB]Matériaux qui disqualifient l'espace des pieds ou de la tête d'un atterrissage

Les matériaux sont des noms d'énumération Bukkit Material. Les entrées invalides sont consignées comme avertissements et ignorées.

sounds.yml

CléDéfautComportement
levitationStart.soundBLOCK_BEACON_ACTIVATESon joué au début de la phase de recherche
levitationStart.volume1.0
levitationStart.pitch1.15
blastOff.soundENTITY_GENERIC_EXPLODESon joué au début de la phase de tir
blastOff.volume1.0
blastOff.pitch0.9

Les valeurs de son peuvent être des noms d'énumération Bukkit Sound (par ex. BLOCK_BEACON_ACTIVATE) ou des clés à espace de noms (par ex. minecraft:block.beacon.activate). Les noms de son invalides sont consignés comme avertissements et le son est silencieusement ignoré à cette étape.

messages.yml

Tous les messages prennent en charge les dégradés MagmaCore, les balises MiniMessage et les codes couleur hérités &. Le placeholder $prefix est remplacé par le préfixe configuré.

Pour la liste complète des clés de message, des placeholders et des listes de titres utilisées par la séquence de lancement, consultez la page Messages et Titres.

Champs de Configuration par Canon

Chaque fichier de canon (plugins/CannonRTP/cannons/<id>.yml) stocke ces champs :

ChampDéfautNotes
isEnabledtrue (pour les canons nouvellement créés)Les canons désactivés ne se déclenchent pas et apparaissent comme Disabled
displayNameCannonRTP (ou le nom passé à la création)Utilisé dans les messages, la sortie de statut et l'étiquette flottante
cannonLocationsliste videListe de chaînes sérialisées world,x,y,z,pitch,yaw. Une configuration de canon peut générer plusieurs placements en jeu. Géré par /wc create, /wc place, /wc remove.
targetWorldmonde actuel au moment de la créationLe ciblage inter-mondes est pris en charge -- définissez ceci pour faire atterrir les joueurs dans un monde différent du canon. Doit être chargé à l'exécution, sinon le canon apparaît comme Invalid.
searchCenternullSi non défini, le plugin rayonne depuis l'emplacement propre du canon (lorsque le canon est dans le monde cible) ou depuis le spawn du monde cible
triggerRadius1.75Rayon autour du canon utilisé pour détecter les joueurs proches (minimum 0,5 bloc)
minSearchRadius500Distance minimale de recherche d'atterrissage depuis le centre de recherche (minimum 0)
maxSearchRadius5000Distance maximale de recherche d'atterrissage (toujours plafonnée à au moins minSearchRadius + 1)
launchWarmupTicks42Durée de la phase Searching en ticks (minimum 1)
verticalBoostTicks45Durée de la phase Firing en ticks (minimum 0)
verticalBoostVelocity1.35Vélocité ascendante appliquée à chaque tick de la phase de tir (minimum 0)
enableParticlestrueContrôle l'animation orbitale de particules au repos. Rendue uniquement lorsqu'aucun modèle personnalisé n'est actif et qu'un joueur se trouve dans un rayon de 36 blocs.
requiredPermission""Verrou de permission supplémentaire optionnel pour ce canon spécifique. Les joueurs avec cannonrtp.use mais sans ce nœud voient le message de non-permission configuré.
customModel""Nom de modèle FreeMinecraftModels optionnel pour ce canon spécifique. Si vide, le plugin se rabat sur runtime.cannonModelPriority.

Valeurs par Défaut à la Création d'un Canon

Lorsque vous lancez /wc create <id> :

  • l'identifiant du canon est mis en minuscules et les caractères autres que a-z, 0-9, _, - sont remplacés par _
  • displayName vaut CannonRTP par défaut, sauf si /wc create <id> <display_name> a été utilisé (les underscores dans <display_name> sont convertis en espaces)
  • la position actuelle du joueur est ajoutée à cannonLocations
  • targetWorld est défini sur le monde actuel du joueur
  • searchCenter n'est pas défini (se rabat sur la position propre du canon s'il est dans le monde cible, sinon sur le spawn du monde cible)

Après la création, le plugin renvoie le chemin absolu du fichier de configuration afin que vous puissiez modifier manuellement displayName, customModel, requiredPermission, les rayons de recherche et les réglages de lancement.

Intégration FreeMinecraftModels

Lorsqu'un canon résout vers un modèle FreeMinecraftModels valide -- soit via son propre champ customModel, soit via la liste globale runtime.cannonModelPriority -- et que FreeMinecraftModels est installé :

  • une entité modèle statique est générée à l'emplacement du canon
  • l'étiquette de texte flottante est élevée à 2,0 blocs au-dessus du canon (contre 1,2 sans modèle) afin de ne pas chevaucher le modèle
  • l'animation orbitale de particules au repos est supprimée tant qu'un modèle est actif
  • pendant un lancement, le canon joue son animation fire (si elle existe) au début de la phase de recherche ; le joueur est masqué avec Invisibilité durant la phase de recherche pour que l'animation soit lisible

Si FreeMinecraftModels est activé ou désactivé pendant que le serveur tourne, le cache de modèles du canon est invalidé et les visuels sont rafraîchis au tick suivant.

Repli sur Particules au Repos

Lorsqu'aucun modèle n'est actif, le canon rend une paire de particules DUST_COLOR_TRANSITION + FIREWORK en orbite autour du centre du canon. Les couleurs varient selon l'état effectif du canon :

ÉtatPrimaireAccent
Readyorangedoré
Searching (charging / maintaining)orange chauddoré
Exhaustedrougerouge chaud
Invalid configurationrouge profondrouge

Les particules au repos ne sont rendues que lorsqu'un joueur se trouve dans un rayon de 36 blocs du canon.

Étiquette de Statut Flottante

Chaque canon génère un TextDisplay en panneau d'affichage au-dessus de sa base, affichant le nom d'affichage et le statut actuel (Ready, Charging, Maintaining, Exhausted, Disabled ou Invalid). L'étiquette est non persistante (elle n'est jamais enregistrée dans les données de chunk) et est recréée automatiquement au rechargement du chunk.

Comportement de Validation à l'Exécution

CannonRTP rejette les emplacements d'atterrissage candidats lorsque l'une de ces vérifications échoue :

  • le monde cible n'est pas chargé
  • le centre de recherche est invalide
  • l'échantillon aléatoire tombe hors des limites du monde
  • le chunk candidat ne parvient pas à se charger
  • aucune surface solide non liquide sûre n'est trouvée
  • l'espace des pieds ou de la tête est obstrué
  • le terrain ou les blocs corporels correspondent aux listes de matériaux dangereux configurées
  • une intégration de protection bloque l'atterrissage
  • un listener CannonRTPLocationValidationEvent rejette le candidat

Si un canon épuise searchTimeoutAttempts (100 par défaut) sans remplir sa réserve, il devient Exhausted et commence à renvoyer le message d'échec configuré au lieu de lancer les joueurs. Le message d'échec inclut un résumé des raisons de rejet les plus courantes. Le canon réinitialise son compteur de timeout chaque fois qu'un emplacement de la file se libère (par ex. après un lancement).

Garde d'Interaction

CannonRTP empêche un joueur de déclencher un canon alors qu'il est déjà dans une séquence de lancement active. Une fois le lancement en cours terminé (atterrissage ou déconnexion), le joueur peut à nouveau utiliser un canon. Il n'existe aucun temps de recharge supplémentaire.