Aller au contenu

Configuration

Toute la configuration tient dans plugins/CobaltiaAnnonces/annonces.json. Ce fichier est en JSON strict : pas de commentaires, des guillemets doubles et aucune virgule après le dernier élément d’une liste ou d’un objet.

{
"titre": { "texte": "...", "largeur": 44 },
"cadres": { "<id>": { ... } },
"annonces": { "<id>": { ... } },
"zones": { "<id>": { ... } },
"rotations": [ { ... } ],
"entrees": [ { ... } ]
}
Clé Type Rôle
titre objet Titre affiché en haut des annonces encadrées.
cadres objet d’objets Cadres décoratifs, indexés par identifiant.
annonces objet d’objets Les annonces, indexées par identifiant.
zones objet d’objets Zones nommées (région WorldGuard ou cube), utilisées par le ciblage et les entrées.
rotations liste Envois automatiques à intervalle régulier.
entrees liste Annonces affichées à l’entrée d’une zone.

Toutes les clés sont facultatives : une section absente est simplement vide. Les clés inconnues sont ignorées.

Les durées (toutes, delai_par_joueur) s’écrivent comme une suite de nombres suivis d’une unité : s (secondes), m (minutes), h (heures), d (jours). Les unités se combinent et les espaces sont ignorés.

Exemple Durée
"90s" 1 minute 30 secondes
"15m" 15 minutes
"1h30m" 1 heure 30 minutes
"1d" 24 heures

Une durée nulle, vide ou dans un autre format ("5 min", "1.5h") est refusée.

Le titre est inséré, centré, juste sous le haut du cadre de chaque annonce encadrée (sauf si l’annonce le désactive).

"titre": {
"texte": "<glyph:annonce_titre>",
"largeur": 44
}
Champ Type Obligatoire Description
texte texte MiniMessage oui Contenu du titre : un glyphe ou du texte mis en forme.
largeur entier (pixels) non Largeur affichée du titre, utilisée pour le centrer. 0 par défaut si absent.

Sans bloc titre, le plugin utilise <glyph:annonce_titre> avec une largeur de 44 pixels.

Un cadre ajoute une ligne décorative en haut et en bas de l’annonce et définit la largeur dans laquelle le titre et les lignes sont centrés.

"cadres": {
"simple": {
"haut": "<glyph:annonce_simple_haut_g><font:cobaltia:bandeau></font><glyph:annonce_simple_haut_d>",
"bas": "<glyph:annonce_simple_bas_g><font:cobaltia:bandeau></font><glyph:annonce_simple_bas_d>",
"largeur": 241
},
"simple_petit": {
"haut": "<glyph:annonce_simple_petit_haut>",
"bas": "<glyph:annonce_simple_petit_bas>",
"largeur": 129,
"vides_apres_haut": 1
}
}
Champ Type Obligatoire Description
haut texte MiniMessage oui Ligne affichée en premier.
bas texte MiniMessage oui Ligne affichée en dernier.
largeur entier (pixels) > 0 oui Largeur intérieure du cadre ; sert de référence pour centrer le titre et les lignes.
vides_apres_haut entier ≥ 0 non Nombre de lignes vides insérées sous le haut du cadre. 0 par défaut.

Le centrage mesure chaque ligne au pixel près (police Minecraft, gras compris, et glyphes connus du serveur Cobaltia) puis la décale de la moitié de l’espace libre. Une ligne plus large que le cadre n’est pas décalée.

Chaque annonce est un objet dont la clé est l’identifiant (utilisé dans les commandes, les rotations et les entrées).

"annonces": {
"vote": {
"nom": "Rappel vote",
"cadre": "simple",
"lignes": [
"<gray>Vote pour le serveur avec <click:run_command:'/vote'><hover:show_text:'<gray>Voter'><white><u>/vote</u></white></hover></click> !"
],
"son": "entity.experience_orb.pickup"
},
"bienvenue": {
"lignes": [
"<gradient:#5FD3FF:#1E6BFF>Bienvenue %player_name% !</gradient>",
"",
"<gray>Tapez <white>/aide</white> pour commencer."
]
}
}
Champ Type Obligatoire Description
lignes liste de textes MiniMessage oui (au moins une) Contenu de l’annonce, une entrée par ligne de chat. "" produit une ligne vide. Les placeholders PlaceholderAPI y sont remplacés pour chaque destinataire.
nom texte non Nom lisible affiché dans le menu et dans la confirmation d’envoi. Par défaut : l’identifiant.
cadre identifiant de cadre non Cadre à utiliser (doit exister dans cadres). Sans cadre, les lignes sont envoyées telles quelles, sans titre ni centrage.
titre booléen non Avec un cadre, true par défaut : affiche le titre. Mettez false pour l’omettre. Sans cadre, ce champ n’a pas d’effet.
son clé de son Minecraft non Son joué à chaque destinataire, par exemple entity.experience_orb.pickup ou block.note_block.pling. Une clé invalide est ignorée sans erreur.

Dans l’exemple, vote est encadrée et centrée, avec son titre et un son ; bienvenue est envoyée ligne par ligne, sans cadre.

Une zone est un espace nommé d’un monde. Elle sert de cible aux envois et aux rotations, et de déclencheur aux entrées. Deux types existent :

"zones": {
"spawn": {
"monde": "world",
"region": "spawn"
}
}
Champ Description
monde Nom du monde (obligatoire).
region Identifiant de la région WorldGuard dans ce monde.

Un joueur est dans la zone dès que la région s’applique à sa position. WorldGuard est requis : sans lui, ces zones sont toujours vides.

Si region est présent, il est prioritaire sur min/max. Une zone sans region ni coins valides est refusée.

Le champ cible d’une rotation accepte quatre formes :

Forme Destinataires
"tous" (ou champ absent) Tous les joueurs en ligne.
{ "monde": "survie" } Les joueurs d’un monde.
{ "mondes": ["survie", "survie_nether"] } Les joueurs de plusieurs mondes. monde et mondes peuvent être combinés.
{ "zone": "spawn" } Les joueurs présents dans la zone au moment de l’envoi. La zone doit exister dans zones.

Les destinataires sont calculés à chaque envoi. Si personne n’est dans la cible, l’envoi automatique est simplement sauté.

Une rotation envoie l’une de ses annonces à intervalle régulier.

"rotations": [
{
"id": "general",
"toutes": "10m",
"ordre": "hasard",
"annonces": ["vote", "boutique", "discord"],
"cible": "tous",
"actif": true
},
{
"id": "spawn",
"toutes": "5m",
"ordre": "suite",
"annonces": ["bienvenue"],
"cible": { "zone": "spawn" }
}
]
Champ Type Obligatoire Description
id texte oui Identifiant unique de la rotation, utilisé par /annonces rotation.
toutes durée oui Intervalle entre deux envois.
annonces liste d’identifiants oui (au moins une) Annonces diffusées ; chacune doit exister dans annonces.
ordre "suite" ou "hasard" non suite (par défaut) parcourt la liste dans l’ordre puis recommence ; hasard tire une annonce au sort sans jamais répéter la précédente.
cible cible non Destinataires (voir Ciblage). "tous" par défaut.
actif booléen non État initial, true par défaut.

Fonctionnement :

  • le premier envoi a lieu un intervalle complet après le démarrage ou le rechargement ;
  • le plugin vérifie les rotations chaque seconde ; plusieurs rotations peuvent tourner en parallèle, chacune avec son propre rythme ;
  • dans l’exemple, general diffuse une annonce au hasard toutes les 10 minutes à tout le serveur, et spawn envoie bienvenue toutes les 5 minutes aux seuls joueurs présents au spawn.

Une entrée affiche une annonce à un joueur au moment où il entre dans une zone.

"entrees": [
{
"zone": "arene",
"annonce": "regles_arene",
"delai_par_joueur": "30m"
}
]
Champ Type Obligatoire Description
zone identifiant de zone oui Zone surveillée (doit exister dans zones).
annonce identifiant d’annonce oui Annonce envoyée au joueur qui entre.
delai_par_joueur durée non Délai minimal avant qu’un même joueur ne reçoive à nouveau cette annonce pour cette zone. 30m par défaut.

Fonctionnement :

  • l’entrée est détectée quand le joueur change de bloc, se téléporte, change de monde ou se connecte directement dans la zone ;
  • l’annonce n’est envoyée qu’au joueur concerné, et seulement s’il n’était pas déjà dans la zone ;
  • plusieurs entrées peuvent viser la même zone (une annonce chacune) ;
  • le délai anti-répétition est conservé en mémoire au rechargement, mais remis à zéro au redémarrage du serveur.
{
"titre": { "texte": "<glyph:annonce_titre>", "largeur": 44 },
"cadres": {
"simple": {
"haut": "<glyph:annonce_simple_haut_g><font:cobaltia:bandeau></font><glyph:annonce_simple_haut_d>",
"bas": "<glyph:annonce_simple_bas_g><font:cobaltia:bandeau></font><glyph:annonce_simple_bas_d>",
"largeur": 241
}
},
"annonces": {
"vote": {
"nom": "Rappel vote",
"cadre": "simple",
"lignes": ["<gray>Vote pour le serveur avec <white>/vote</white> !"],
"son": "entity.experience_orb.pickup"
},
"bienvenue_spawn": {
"nom": "Bienvenue au spawn",
"lignes": ["<gray>Bienvenue au spawn, <white>%player_name%</white> !"]
}
},
"zones": {
"spawn": { "monde": "world", "region": "spawn" }
},
"rotations": [
{ "id": "general", "toutes": "10m", "annonces": ["vote"], "cible": "tous" }
],
"entrees": [
{ "zone": "spawn", "annonce": "bienvenue_spawn", "delai_par_joueur": "1h" }
]
}

Ce fichier diffuse le rappel de vote encadré toutes les 10 minutes à tout le serveur, et souhaite la bienvenue à chaque joueur qui entre dans la région spawn, au plus une fois par heure et par joueur.

27 résultats

  • titre.texteFichier annonces.jsonDéfaut <glyph:annonce_titre>

    Texte MiniMessage du titre affiché en tête des annonces encadrées, généralement un glyphe.

  • titre.largeurFichier annonces.jsonDéfaut 44

    Largeur en pixels du titre, utilisée pour le centrer dans le cadre.

  • cadres.<id>.hautFichier annonces.jsonDéfaut <glyph:annonce_simple_haut_g><font:cobaltia:bandeau></font><glyph:annonce_simple_haut_d>

    Ligne MiniMessage affichée en haut du cadre <id> (bordure supérieure).

  • cadres.<id>.basFichier annonces.jsonDéfaut <glyph:annonce_simple_bas_g><font:cobaltia:bandeau></font><glyph:annonce_simple_bas_d>

    Ligne MiniMessage affichée en bas du cadre <id> (bordure inférieure).

  • cadres.<id>.largeurFichier annonces.jsonDéfaut 241

    Largeur intérieure du cadre en pixels, obligatoire et positive, sur laquelle le titre et les lignes sont centrés.

  • cadres.<id>.vides_apres_hautFichier annonces.jsonDéfaut 0

    Nombre de lignes vides insérées sous la bordure supérieure du cadre (0 par défaut).

  • annonces.<id>.nomFichier annonces.jsonDéfaut Test : cadre simple

    Nom lisible de l'annonce, affiché dans le menu et les retours de commande ; l'identifiant est utilisé s'il est absent.

  • annonces.<id>.cadreFichier annonces.jsonDéfaut simple

    Identifiant d'un cadre défini dans cadres ; sans cadre, les lignes sont envoyées telles quelles, sans centrage.

  • annonces.<id>.lignesFichier annonces.json

    Liste des lignes MiniMessage de l'annonce, au moins une, avec placeholders PlaceholderAPI ; une ligne vide ajoute un espace.

  • annonces.<id>.sonFichier annonces.jsonDéfaut entity.experience_orb.pickup

    Son Minecraft joué à chaque destinataire (clé de son, par exemple entity.experience_orb.pickup) ; aucun son si absent.

  • annonces.<id>.titreFichier annonces.jsonDéfaut true

    Affiche le titre commun en tête de l'annonce encadrée (true par défaut) ; sans effet si l'annonce n'a pas de cadre.

  • zones.<id>.regionFichier annonces.jsonDéfaut spawn

    Région WorldGuard qui définit la zone ; à défaut, la zone est un cube défini par min et max.

  • zones.<id>.mondeFichier annonces.jsonDéfaut world

    Nom du monde où se trouve la zone, obligatoire.

  • zones.<id>.minFichier annonces.jsonDéfaut [100000,-64,100000]

    Premier coin [x, y, z] de la zone cubique, utilisé lorsqu'aucune région n'est indiquée.

  • zones.<id>.maxFichier annonces.jsonDéfaut [100010,320,100010]

    Coin opposé [x, y, z] de la zone cubique, utilisé lorsqu'aucune région n'est indiquée.

  • rotations[].idFichier annonces.jsonDéfaut tests

    Identifiant unique de la rotation, utilisé par /annonces rotation.

  • rotations[].toutesFichier annonces.jsonDéfaut 5m

    Intervalle entre deux annonces de la rotation, en durée combinable s, m, h, d (par exemple 5m ou 1h30m).

  • rotations[].ordreFichier annonces.jsonDéfaut suite

    Ordre de diffusion : suite (dans l'ordre de la liste) ou hasard (aléatoire, sans répéter la précédente).

  • rotations[].annoncesFichier annonces.jsonDéfaut ["test_simple","test_simple_petit"]

    Liste des identifiants d'annonces diffusées par la rotation, au moins une.

  • rotations[].cibleFichier annonces.jsonDéfaut tous

    Destinataires de la rotation : tous, ou un objet indiquant monde, mondes ou zone.

  • rotations[].actifFichier annonces.jsonDéfaut false

    État initial de la rotation (true par défaut) ; un état changé par /annonces rotation est prioritaire.

  • rotations[].cible.zoneFichier annonces.jsonDéfaut spawn

    Limite la rotation aux joueurs présents dans cette zone (identifiant défini dans zones).

  • rotations[].cible.mondeFichier annonces.json

    Limite la rotation aux joueurs présents dans ce monde.

  • rotations[].cible.mondesFichier annonces.json

    Limite la rotation aux joueurs présents dans l'un des mondes de cette liste.

  • entrees[].zoneFichier annonces.jsonDéfaut exemple_cube

    Zone dont l'entrée déclenche l'annonce pour le joueur qui y pénètre.

  • entrees[].annonceFichier annonces.jsonDéfaut test_simple_petit

    Identifiant de l'annonce envoyée au joueur lorsqu'il entre dans la zone.

  • entrees[].delai_par_joueurFichier annonces.jsonDéfaut 30m

    Délai minimal avant de renvoyer cette annonce au même joueur, en durée s, m, h, d (30m par défaut).