Aller au contenu principal

Configuration de CannonRTP

CannonRTP utilise un fichier de configuration global plus un fichier de configuration par canon.

Structure des fichiers

  • Configuration globale : plugins/CannonRTP/config.yml
  • Configurations par canon : plugins/CannonRTP/custom/fun_rtps/<id>.yml

Le plugin inclut également un paquet de canon d’exemple nommé example_world_cannon. Il est désactivé par défaut.

Structure de la configuration globale

La configuration principale est organisée sous :

  • runtime.*
  • landing.*
  • messages.*
  • protection.*

Paramètres d’exécution

CléPar défautComportement
runtime.scanIntervalTicks2Fréquence à laquelle les canons vérifient les joueurs à proximité (minimum 2)
runtime.particleIntervalTicks15Fréquence de rendu des particules de canon inactif (minimum 5)

Paramètres de recherche d’atterrissage

CléPar défautComportement
landing.searchAttemptsPerTick2Tentatives de recherche par canon par tick pendant le préchargement (minimum 1)
landing.preloadedLocationsPerCannon10Nombre total de destinations sûres que le plugin essaie de maintenir en file d’attente par canon (minimum 1)
landing.chargedLocationsPerCannon5Combien d’emplacements un canon doit avoir avant d’être considéré chargé et prêt au lancement (minimum 1, plafonné à preloadedLocationsPerCannon)
landing.searchTimeoutSeconds1000Temps en secondes avant qu’un canon encore en recherche soit marqué comme épuisé (minimum 10)
landing.slowFallingSeconds60Durée de la Chute Lente après l’arrivée en secondes ; l’effet est retiré prématurément quand le joueur atterrit (minimum 1)
landing.failOpenOnProtectionErrorsfalseSi une API de protection génère une erreur, l’atterrissage est bloqué par défaut

Sons d’atterrissage

Les clés de son suivantes sont configurables :

  • landing.sounds.levitationStart.sound (par défaut : BLOCK_BEACON_ACTIVATE)
  • landing.sounds.levitationStart.volume (par défaut : 1.0)
  • landing.sounds.levitationStart.pitch (par défaut : 1.15)
  • landing.sounds.blastOff.sound (par défaut : ENTITY_GENERIC_EXPLODE)
  • landing.sounds.blastOff.volume (par défaut : 1.0)
  • landing.sounds.blastOff.pitch (par défaut : 0.9)

Les valeurs de son utilisent les noms de registre Sound de Bukkit ou des clés avec espace de noms. Les noms de son invalides sont enregistrés comme avertissements et le son est silencieusement ignoré.

Listes de matériaux dangereux

CannonRTP rejette les emplacements d’atterrissage candidats basé sur deux listes de matériaux :

  • landing.unsafeGroundMaterials -- blocs sur lesquels on ne devrait jamais se tenir
  • landing.unsafeBodyMaterials -- blocs qui ne devraient jamais occuper l’espace des pieds ou de la tête

Matériaux de sol dangereux par défaut :

  • LAVA
  • MAGMA_BLOCK
  • CAMPFIRE
  • SOUL_CAMPFIRE
  • CACTUS
  • POWDER_SNOW

Matériaux de corps dangereux par défaut :

  • LAVA
  • WATER
  • FIRE
  • SOUL_FIRE
  • SWEET_BERRY_BUSH
  • POWDER_SNOW
  • COBWEB

Paramètres de messages

Tous les messages supportent les dégradés MagmaCore, les balises MiniMessage et les codes de couleur hérités. Le marqueur $prefix est remplacé par la valeur de préfixe configurée.

Le plugin expose les clés de messages sous :

CléMarqueursDescription
messages.prefix--Préfixe utilisé par tous les messages CannonRTP
messages.helpHeader$prefixEn-tête affiché par /cannonrtp
messages.createdCannon$prefix, $cannon, $id, $pathEnvoyé après la création d’un canon
messages.deletedCannon$prefix, $cannonEnvoyé après la suppression d’un canon
messages.movedCannon$prefix, $cannonEnvoyé après le déplacement d’un canon
messages.targetWorldUpdated$prefix, $cannon, $worldEnvoyé après le changement du monde cible d’un canon
messages.searchCenterUpdated$prefix, $cannonEnvoyé après le changement du centre de recherche d’un canon
messages.reload$prefix, $countEnvoyé après le rechargement
messages.noPermission$prefix, $cannonEnvoyé quand un joueur peut voir un canon mais ne peut pas l’utiliser
messages.cannonDisabled$prefix, $cannonEnvoyé quand un joueur entre dans un canon désactivé
messages.queueCalibration$prefix, $cannon, $queued, $target, $secondsEnvoyé pendant qu’un canon précharge encore
messages.noValidLocationYet$prefix, $cannonEnvoyé quand aucun emplacement sûr n’a encore été trouvé
messages.noValidLocationFound$prefix, $cannon, $reasonEnvoyé quand CannonRTP abandonne après expiration du délai
messages.invalidConfiguration$prefix, $cannon, $reasonEnvoyé quand une erreur de configuration est détectée
messages.statusLine$prefix, $cannon, $status, $queued, $target, $reasonFormat de ligne utilisé par /wc status et /wc list
messages.probeAllowed$prefixEnvoyé par /wc probe quand l’emplacement est valide
messages.probeBlocked$prefix, $plugin, $reasonEnvoyé par /wc probe quand l’emplacement est bloqué
messages.unknownCommand$prefixEnvoyé quand un admin utilise une sous-commande non reconnue

Messages de titre

CléMarqueursDescription
messages.titles.launchQueuedTitle$cannonTitre affiché quand un lancement commence
messages.titles.launchQueuedSubtitle$cannonSous-titre affiché quand un lancement commence
messages.titles.destinationPreviewTitle$x, $y, $zTitre affiché pendant le compte à rebours de préchauffage
messages.titles.destinationPreviewSubtitle$x, $y, $zSous-titre affiché pendant le compte à rebours de préchauffage
messages.titles.destinationConfirmedTitle$x, $y, $z, $worldTitre affiché juste avant la téléportation
messages.titles.destinationConfirmedSubtitle$x, $y, $z, $worldSous-titre affiché juste avant la téléportation
messages.titles.arrivalSubtitles--Liste de sous-titres ; un est choisi au hasard après chaque lancement

L’aperçu des coordonnées pendant le préchauffage ne montre pas la destination réelle -- il affiche des coordonnées aléatoires dans la zone de recherche du canon comme effet visuel. La vraie destination n’est révélée que dans le titre confirmé.

Champs de configuration par canon

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

ChampPar défautNotes
isEnabledtrue pour les canons nouvellement créésLes canons désactivés ne se déclenchent pas
displayNameCannonRTP (ou le nom fourni à la création)Utilisé dans les messages, la sortie de statut et l’étiquette flottante
cannonLocationRequisOù le déclencheur du canon existe
targetWorldMonde actuel au moment de la créationDoit être chargé à l’exécution
searchCenternull (revient au spawn du monde cible)Si non défini, le plugin utilise l’emplacement de spawn du monde cible
triggerRadius1.75Rayon utilisé pour détecter les joueurs à proximité (minimum 0.5)
minSearchRadius500Distance minimale de recherche d’atterrissage depuis le centre de recherche (minimum 0)
maxSearchRadius5000Distance maximale de recherche d’atterrissage depuis le centre de recherche (toujours au moins minSearchRadius + 1)
launchWarmupSeconds6Temps de lévitation/compte à rebours avant le lancement (minimum 0 ; si 0, le lancement est instantané)
verticalBoostTicks45Ticks de vélocité ascendante avant la téléportation (minimum 0)
verticalBoostVelocity1.35Vélocité ascendante appliquée pendant le lancement (minimum 0)
enableParticlestrueContrôle l’animation des particules du canon inactif
requiredPermissionvidePorte de permission supplémentaire optionnelle pour ce canon spécifique
customModelvideNom optionnel du modèle FreeMinecraftModels à afficher à l’emplacement du canon

Valeurs par défaut à la création d’un canon

Quand vous exécutez /wc create <id> :

  • l’ID du canon est mis en minuscules et les caractères autres que a-z, 0-9, _ et - sont remplacés par _
  • le nom d’affichage est CannonRTP par défaut si non spécifié, ou le nom fourni avec les underscores convertis en espaces
  • cannonLocation est défini à votre emplacement actuel
  • targetWorld est défini à votre monde actuel
  • searchCenter n’est pas défini (revient au spawn du monde cible)

Après la création, le plugin affiche le chemin du fichier de configuration et suggère quels champs modifier manuellement : displayName, customModel, requiredPermission, launchWarmupSeconds, verticalBoostTicks et verticalBoostVelocity.

Intégration FreeMinecraftModels

Si une configuration de canon définit customModel avec un nom de modèle FreeMinecraftModels valide et que FreeMinecraftModels est installé :

  • Une entité de modèle statique est générée à l’emplacement du canon
  • L’étiquette de texte flottante est relevée pour éviter le chevauchement avec le modèle
  • Si un modèle nommé fire existe aussi, une animation de lancement alternative est utilisée : le joueur est téléporté au siège du canon et maintenu en place pendant une séquence de charge de 3 secondes (60 ticks) avant le décollage avec un effet de particules d’explosion

Comportement de validation à l’exécution

CannonRTP rejette les emplacements d’atterrissage candidats quand 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 en dehors de la bordure du monde
  • aucune surface solide sûre n’est trouvée
  • l’espace des pieds ou de la tête est bloqué
  • le terrain ou les blocs du corps correspondent aux listes de matériaux dangereux configurées
  • une intégration de protection bloque l’atterrissage

Si un canon ne peut pas trouver assez d’emplacements valides avant landing.searchTimeoutSeconds, il devient épuisé et commence à retourner 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.

La fenêtre de recherche du canon redémarre quand il doit remplir les emplacements consommés (ex. après qu’un joueur se lance et qu’un emplacement se libère).

Cooldown d’interaction

CannonRTP applique un cooldown de 3 secondes entre les interactions par joueur. Ce cooldown s’applique que l’interaction soit un lancement réussi, un refus de permission ou toute autre vérification de canon. Le cooldown n’est pas configurable.