Skip to content

Affichage

syldium edited this page Jan 21, 2025 · 2 revisions

Le texte et les supports d'affichage sont configurables dans le fichier display.yml et en jeu pour le scoreboard depuis la version 2.22.0 du plugin.

Placeholders

Le plugin propose différentes valeurs de substitution — placeholders — pour afficher dynamiquement des valeurs :

Clef Rôle
{D} Jours en jeu depuis le début de la partie
{H} Heures en jeu selon le formatage sélectionné
{M} Minutes en jeu selon le formatage sélectionné
{TEAM} Nom de l'équipe du joueur
{DEATHS} Nombre de morts du joueur
{DEATHS_TEAM} Nombre de morts cumulées de l'équipe
{KILLS} Nombre de morts du joueur
{KILLS_TEAM} Nombre de joueurs tués cumulés de l'équipe
{DIST} Distance entière entre le joueur et le centre de la base ou sinon le dernier portail
{ARROW} Flèche directionnelle vers la base du joueur ou sinon le dernier portail
{BASE_PORTAL} Texte Base ou Portail selon la dimension
{ALLY} Nom de l'allié le plus proche
{ALLY_DIR} Flèche directionnelle vers l'allié le plus proche
{ALLY_DIST} Distance entière entre le joueur et l'allié le plus proche
{ENEMY_BASE} Nom de l'équipe ennemie ayant la base la plus proche
{ENEMY_DIR} Flèche directionnelle vers la base ennemie la plus proche
{PVP?} Si les dégâts joueur contre joueur sont activés
{TNT?} Si les assauts des bases peuvent commencer
{NETHER?} Si le Nether est accessible
{END?} Si l'End est accessible
{REGION} Phrase indiquant la base où se trouve le joueur, ou la base la plus proche si en dehors de toute base
{REGION_CHANGE} Phrase indiquant la dernière entrée/sortie d'une base ou d'une salle des coffres il y a moins de deux secondes

Supports d'affichage

Les supports d'affichage correspondent à différents éléments de l'interface utilisateur où le plugin peut afficher des informations.

Note : Le plugin supporte l'affichage sur de nombreux supports, mais qui peuvent avoir des capacités limitées avec certaines versions de Minecraft (< 1.9). Pour profiter de l'ensemble des paramètres, nous vous recommandons d'utiliser la dernière version en date de PaperMC.

Barre d'action

Clé de configuration : actionbar

Valeur : le texte affiché en jeu dès qu'un placeholder est mis à jour

Exemple :

# FallenKingdom/display.yml
GlobalDisplayService:
  actionbar: '§fBase: §e{DIST} §l{ARROW} §fAllié: {ALLY} {ALLY_DIR} {ALLY_DIST}'

Barre de boss

Clé de configuration : bossbar

Valeur : le style de la barre et le titre affiché

Exemple :

# FallenKingdom/display.yml
GlobalDisplayService:
  bossbar:
    color: YELLOW # La couleur de la barre parmi https://jd.papermc.io/paper/1.21.4/org/bukkit/boss/BarColor.html#enum-constant-summary
    style: SOLID # Le style de la barre parmi https://jd.papermc.io/paper/1.21.4/org/bukkit/boss/BarStyle.html#enum-constant-summary
    title: '§2{H}h{M} §f- Base: §e{DIST} §l{ARROW}'

Scoreboard

Clé de configuration : scoreboard

Valeur : le titre et les lignes affichées

Exemple :

# FallenKingdom/display.yml
GlobalDisplayService:
  scoreboard:
    title: '§7[§5Fk§7] '
    sidebar:
    - §f§a§k§e
    - §6Jour {D} §2{H}h{M}
    - §m------------
    - 'Équipe : §e{TEAM}'
    - 'Morts : §e{DEATHS}'
    - 'Kills : §e{KILLS}'
    - 'Ennemi : {ENEMY_BASE} {ENEMY_DIR}'
    - Pvp {PVP?}
    - Assauts {TNT?}
    - Nether {NETHER?}
    - End {END?}
    - §m------------
    - §1§odevsylone

Barres de progression

Lorsqu'un coffre est crocheté, une barre de progression entre 0 et 100% est affichée. En plus de contenir du texte, certaines peuvent faire varier un autre indicateur visuel.

Types existants :

  • actionbar : L'avancée du crochetage est affichée dans la barre d'action.
  • bossbar : Une barre de boss en haut de l'écran affiche la progression. Les mêmes paramètres qu'une barre de boss générique sont supportés.
  • hologram : Une entité invisible est placée au niveau du coffre pour seulement le joueur en train de crocheter.

Deux placeholders existent dans le contexte d'une barre de progression :

  • {PROGRESS} : la valeur entière de progression en pourcentage
  • {BARS} : des barres verticales colorées marquant la progression. Ce placeholder a pour valeurs optionnelles le nombre total de barres, la couleur des complétées et la couleur des non complétées.

Exemple :

# FallenKingdom/display.yml
GlobalDisplayService:
  progressbar:
    type: bossbar
    text: Ouverture… {BARS:15:rouge} §f{PROGRESS}%
    color: RED
    style: SOLID

Formats

Différents éléments peuvent être formatés différemment selon leur configuration.

Temps en partie

Par défaut, le temps est formaté pour correspondre à un cycle jour-nuit en jeu de 24 heures : il s'agit du formatage cycle. Il accepte comme paramètres l'heure de début avec start-time-day et s'il s'agit d'un cycle de deux fois 12 heures avec twelve-hours.

Le temps passé peut aussi être affiché comme une durée écoulée à la manière d'un chronomètre en heure réelle : il s'agit du formatage timer. Il peut être inversé avec la configuration de countdown.

Exemple d'un compte à rebours :

# FallenKingdom/display.yml
GlobalDisplayService:
  tick-format:
    countdown: true # Décompte le temps
    type: timer # Basé sur l'heure réelle

Sons

Les sons suivants sont configurables :

  • démarrage d'une partie : game-start-sound
  • mort d'un joueur après un évènement PvP : death-sound
  • élimination d'un joueur : elimination-sound
  • activation Nether/End/PvP/Assauts : event-sound

Le nom du son (sound), le volume (volume), la fréquence (pitch) et la catégorie (category, serveurs 1.9 et plus) sont configurables.

Exemple :

# FallenKingdom/display.yml
GlobalDisplayService:
  death-sound:
    sound: entity.wither.spawn # Le nom du son joué au format du /playsound
    volume: 0.8 # Le volume entre 0 et 1
    pitch: 1.0 # La fréquence entre 0 et 1
    category: PLAYERS # La catégorie parmi https://jd.papermc.io/paper/1.21.4/org/bukkit/SoundCategory.html#enum-constant-summary

Contenus à afficher

Par défaut, la plupart des contenus affichés sont des textes statiques où seuls les placeholders varient. Dans le fichier de configuration display.yml, ces contenus sont définis comme des valeurs directement assignées à un support d'affichage :

GlobalDisplayService:
  actionbar: 'texte en barre d''action'
  bossbar: :
    color: WHITE
    style: SOLID
    title: 'texte en barre de boss'

Ces textes sont constants hormis les placeholders qu'ils contiennent, peu importe le joueur ou l'instant dans la partie.

Depuis la version 2.24.0, il est possible de définir des affichages qui changent complétement selon le contexte. Ils peuvent être utilisés pour les barres de boss et barres d'action, et sont imbriquables les uns dans les autres. La manière d'y parvenir est détaillée ci-dessous.

Contenu dépendant de la base

Le type de contenu base permet de différencier le texte affiché selon si le joueur est dans une base ou non. Sa configuration prend deux paramètres, le contenu à présenter à l'intérieur de la base (inside) et celui à l'extérieur (outside).

Concrètement, cela permet de présenter une indication différente au joueur selon sa position sur la carte :

GlobalDisplayService:
  # Définit le contenu de la barre d'action
  actionbar:
    # Indique que le texte doit être rafraîchi constamment
    does-resend: true
    content:
      # Précise que le texte est différent selon si le joueur est dans une base ou non
      type: base
      # Affiche une phrase indiquant la base où se trouve le joueur
      inside: '{REGION}'
      # Affiche la direction vers la base du joueur, son allié le plus proche et la base ennemie la plus proche
      outside: 'Base: §e{DIST} §l{ARROW} {ALLY} §l{ALLY_DIR} §r- Ennemi: {ENEMY_BASE} {ENEMY_DIR}'

Contenu interruptible

Le type de contenu interruptible permet d'afficher un message différent selon si un placeholder a une valeur ou non.

Certains messages, comme les messages d'entrée/sortie de base ou de salle des coffres, sont éphémères. Le placeholder associé, {REGION_CHANGE}, est donc un exemple de contenu interruptible.

GlobalDisplayService:
  # Définit le contenu de la barre d'action
  actionbar:
    # Indique que le texte doit être rafraîchi constamment
    does-resend: true
    content:
      # Indique que le texte est différent…
      type: interruptible
      # …selon s'il y a une entrée/sortie de base ou de salle des coffres durant les deux dernières secondes
      interrupt: '{REGION_CHANGE}'
      inner:
        # Reprend le contenu dépendant de la base détaillé dans l'exemple précédent
        type: base
        inside: '{REGION}'
        outside: 'Base: §e{DIST} §l{ARROW} §rEnnemi: {ENEMY_BASE} {ENEMY_DIR}'

Notifications

Lorsque des placeholders comme {REGION_CHANGE} sont utilisés, il peut être intéressant de masquer l'affichage de ces mêmes messages dans le chat.

Pour cela, la configuration notification permet d'indiquer les messages à masquer dans le chat.

La valeur dummy précise au plugin d'adopter ce comportement. Pour {REGION_CHANGE}, cela donne :

GlobalDisplayService:
  notification:
    region-change: dummy