<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.nefald.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiob</id>
	<title>Nefald - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nefald.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiob"/>
	<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/Sp%C3%A9cial:Contributions/Hiob"/>
	<updated>2026-06-20T11:07:27Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=%C3%89veill%C3%A9s_de_fer&amp;diff=5785</id>
		<title>Éveillés de fer</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=%C3%89veill%C3%A9s_de_fer&amp;diff=5785"/>
		<updated>2026-06-18T05:28:50Z</updated>

		<summary type="html">&lt;p&gt;Hiob : gallerie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Créatures mécaniques utilisées pour le transport de charges lourdes ou de personnes}}&lt;br /&gt;
{{Infobox Transport&lt;br /&gt;
| nom           = Éveillés de fer&lt;br /&gt;
| soustitre     = Transport vers le continent ressource&lt;br /&gt;
| image         = Eveillé poulpe.png&lt;br /&gt;
| tailleimage   = 300px&lt;br /&gt;
| legende       = Eveillé de Glemdäl&lt;br /&gt;
| type          = Animal mécanique&lt;br /&gt;
| mode          = Transport collectif&lt;br /&gt;
| utilisation   = Transport de citoyen vers le continent ressource&lt;br /&gt;
| vitesse       = NC&lt;br /&gt;
| disponibilite = Tous les citoyens&lt;br /&gt;
| statut        = Fonctionnel&lt;br /&gt;
| localisation  = Chaque Cité-État&lt;br /&gt;
}}&lt;br /&gt;
{{Lettrine|L|texte=es Éveillés de fer}} ont été conçus par le Maître Artificier Veythas, ces créatures sont des assemblages de métal et d’énergie magique, capables de se déplacer avec une grâce presque vivante. Leur fonctionnement repose sur des runes gravées dans leur structure, alimentées par une essence cristalline rare, le Souffle du Dragon.&lt;br /&gt;
&lt;br /&gt;
Personne ne maîtrise pleinement leur création. Les artificiers actuels ne savent que les réparer et les alimenter, mais leur origine exacte reste un secret jalousement gardé.&lt;br /&gt;
&lt;br /&gt;
Ces créatures mécaniques sont principalement utilisées pour le transport de charges lourdes ou de personnes. Elles sont aujourd&#039;hui surtout utilisée pour assurer les liens depuis les [[Cités-États]] avec [[Kaldrah]], continent dont sont extraits une grande partie des ressources de [[Fendral]].&lt;br /&gt;
&lt;br /&gt;
Ainsi chaque Cité-État est dotée d&#039;un éveillé :&lt;br /&gt;
&lt;br /&gt;
* [[Mahj&#039;Akar]] dispose d&#039;une Abeille &lt;br /&gt;
* [[Ald&#039;Vidsom|Ald&#039;Vidsom]] bénéfice d&#039;une Grenouille&lt;br /&gt;
* [[Glemdäl]] est dotée d&#039;un Poulpe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Eveillé abeille.png|Eveillé de fer abeille&lt;br /&gt;
Eveillé grenouille.png|Eveillé de fer grenouille&lt;br /&gt;
Eveillé poulpe.png|Eveillé de fer poulpe&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Catégorie:Transport]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5784</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5784"/>
		<updated>2026-06-12T22:39:22Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion d&#039;écuries RP : mise en pension, acheminements de montures et stockage physique de compagnons}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
# Déposer &amp;lt;code&amp;gt;Ecurie-&amp;amp;lt;version&amp;amp;gt;.jar&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;plugins/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Redémarrer le serveur&lt;br /&gt;
# Éditer &amp;lt;code&amp;gt;plugins/Ecurie/config.yml&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
# Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== config.yml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  # &#039;sqlite&#039; ou &#039;mysql&#039;&lt;br /&gt;
  type: &amp;quot;sqlite&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  # Configuration SQLite&lt;br /&gt;
  sqlite:&lt;br /&gt;
    file: &amp;quot;ecurie.db&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  # Configuration MySQL / MariaDB (HikariCP)&lt;br /&gt;
  mysql:&lt;br /&gt;
    host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
    port: 3306&lt;br /&gt;
    database: &amp;quot;ecurie&amp;quot;&lt;br /&gt;
    username: &amp;quot;root&amp;quot;&lt;br /&gt;
    password: &amp;quot;password&amp;quot;&lt;br /&gt;
    pool:&lt;br /&gt;
      maximum-pool-size: 10&lt;br /&gt;
      minimum-idle: 2&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l&#039;écurie&lt;br /&gt;
# Compagnon aquatique -&amp;gt; Écurie AQUATIQUE uniquement&lt;br /&gt;
# Compagnon volant -&amp;gt; Écurie VOLIERE uniquement&lt;br /&gt;
# Compagnon terrestre -&amp;gt; Écurie TERRESTRE/STABLE uniquement&lt;br /&gt;
restrict-stable-types: true&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lang.yml ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (&amp;lt;code&amp;gt;&amp;amp;lt;red&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;gold&amp;amp;gt;&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
Variables disponibles selon le message : &amp;lt;code&amp;gt;{name}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{amount}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{dest}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{time}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{count}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{stable_id}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{n}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{x}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{y}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{z}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Commandes ==&lt;br /&gt;
&lt;br /&gt;
=== Commandes joueurs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie gui [dialog/inventory]&amp;lt;/code&amp;gt; || Modifie le type d&#039;interface préféré du joueur (sauvegardé en PDC) || &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie wand [on/off]&amp;lt;/code&amp;gt; || Active ou désactive le wand (bâton de sélection pour délimiter les étables) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; || Crée une étable dans la sélection wand et scanne automatiquement les boxes. Types : &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RELAY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie delete &amp;amp;lt;id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime l&#039;étable spécifiée (rend ses compagnons orphelins) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Lie le NPC Citizens le plus proche (&amp;amp;le;5 blocs) à l&#039;étable en lui attribuant son nom/skin par défaut || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie list&amp;lt;/code&amp;gt; || Liste toutes les étables enregistrées || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie tp &amp;amp;lt;stable_id/nom&amp;amp;gt;&amp;lt;/code&amp;gt; || Téléporte le joueur en face du NPC de l&#039;étable spécifiée (sécurité anticollision intégrée) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box scan &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Relance la détection des blocs cibles (box) dans la sélection wand pour cette étable || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box list &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Liste les coordonnées de toutes les boxes de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box delete &amp;amp;lt;box_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement la box spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie show [on/off]&amp;lt;/code&amp;gt; || Active ou désactive l&#039;affichage de particules colorées sur les blocs de box (vert=libre, rouge=occupé) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse free &amp;amp;lt;horse_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement un compagnon de la base de données || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse orphans&amp;lt;/code&amp;gt; || Liste tous les compagnons orphelins (sans écurie suite à une suppression) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse reassign &amp;amp;lt;horse_id&amp;amp;gt; &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Réassigne un compagnon orphelin à une box libre de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie reload&amp;lt;/code&amp;gt; || Recharge les fichiers de configuration &amp;lt;code&amp;gt;config.yml&amp;lt;/code&amp;gt; et de traduction &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les blocs cibles de boxes détectés par défaut selon le type d&#039;écurie sont :&lt;br /&gt;
* &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès complet aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les NPCs Maître d&#039;Écurie et utilisation de &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: &amp;lt;code&amp;gt;WATER_CAULDRON&amp;lt;/code&amp;gt; pour TERRESTRE, &amp;lt;code&amp;gt;PRISMARINE&amp;lt;/code&amp;gt; pour AQUATIQUE).&lt;br /&gt;
# &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie wand on&amp;lt;/code&amp;gt; → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
# &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
# &#039;&#039;&#039;Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;amp;lt; 5 blocs : &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; (le nom et le skin par défaut sont appliqués automatiquement).&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
# Amener le compagnon à côté ou le monter&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
# &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
# &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.store&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
# Choisir le compagnon dans la liste&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.retrieve&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
# Choisir le compagnon dans la liste&lt;br /&gt;
# Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.rename&amp;lt;/code&amp;gt; en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via &amp;lt;code&amp;gt;/ecurie setnpc&amp;lt;/code&amp;gt;. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans &amp;lt;code&amp;gt;npc&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans &amp;lt;code&amp;gt;groom&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;. Les familiers volants dans une &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. Les familiers terrestres dans une &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;. Les restrictions sont activables via l&#039;option &amp;lt;code&amp;gt;restrict-stable-types&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via &amp;lt;code&amp;gt;/petsendaway&amp;lt;/code&amp;gt;) pour éviter les doublons dans le monde, et restaure correctement ses états.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l&#039;activité MyPet, et restrictions par type d&#039;écurie.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5783</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5783"/>
		<updated>2026-06-12T22:37:59Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
# Déposer &amp;lt;code&amp;gt;Ecurie-&amp;amp;lt;version&amp;amp;gt;.jar&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;plugins/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Redémarrer le serveur&lt;br /&gt;
# Éditer &amp;lt;code&amp;gt;plugins/Ecurie/config.yml&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
# Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== config.yml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  # &#039;sqlite&#039; ou &#039;mysql&#039;&lt;br /&gt;
  type: &amp;quot;sqlite&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  # Configuration SQLite&lt;br /&gt;
  sqlite:&lt;br /&gt;
    file: &amp;quot;ecurie.db&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  # Configuration MySQL / MariaDB (HikariCP)&lt;br /&gt;
  mysql:&lt;br /&gt;
    host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
    port: 3306&lt;br /&gt;
    database: &amp;quot;ecurie&amp;quot;&lt;br /&gt;
    username: &amp;quot;root&amp;quot;&lt;br /&gt;
    password: &amp;quot;password&amp;quot;&lt;br /&gt;
    pool:&lt;br /&gt;
      maximum-pool-size: 10&lt;br /&gt;
      minimum-idle: 2&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l&#039;écurie&lt;br /&gt;
# Compagnon aquatique -&amp;gt; Écurie AQUATIQUE uniquement&lt;br /&gt;
# Compagnon volant -&amp;gt; Écurie VOLIERE uniquement&lt;br /&gt;
# Compagnon terrestre -&amp;gt; Écurie TERRESTRE/STABLE uniquement&lt;br /&gt;
restrict-stable-types: true&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lang.yml ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (&amp;lt;code&amp;gt;&amp;amp;lt;red&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;gold&amp;amp;gt;&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
Variables disponibles selon le message : &amp;lt;code&amp;gt;{name}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{amount}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{dest}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{time}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{count}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{stable_id}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{n}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{x}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{y}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{z}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Commandes ==&lt;br /&gt;
&lt;br /&gt;
=== Commandes joueurs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie gui [dialog/inventory]&amp;lt;/code&amp;gt; || Modifie le type d&#039;interface préféré du joueur (sauvegardé en PDC) || &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie wand [on/off]&amp;lt;/code&amp;gt; || Active ou désactive le wand (bâton de sélection pour délimiter les étables) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; || Crée une étable dans la sélection wand et scanne automatiquement les boxes. Types : &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RELAY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie delete &amp;amp;lt;id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime l&#039;étable spécifiée (rend ses compagnons orphelins) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Lie le NPC Citizens le plus proche (&amp;amp;le;5 blocs) à l&#039;étable en lui attribuant son nom/skin par défaut || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie list&amp;lt;/code&amp;gt; || Liste toutes les étables enregistrées || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie tp &amp;amp;lt;stable_id/nom&amp;amp;gt;&amp;lt;/code&amp;gt; || Téléporte le joueur en face du NPC de l&#039;étable spécifiée (sécurité anticollision intégrée) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box scan &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Relance la détection des blocs cibles (box) dans la sélection wand pour cette étable || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box list &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Liste les coordonnées de toutes les boxes de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box delete &amp;amp;lt;box_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement la box spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie show [on/off]&amp;lt;/code&amp;gt; || Active ou désactive l&#039;affichage de particules colorées sur les blocs de box (vert=libre, rouge=occupé) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse free &amp;amp;lt;horse_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement un compagnon de la base de données || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse orphans&amp;lt;/code&amp;gt; || Liste tous les compagnons orphelins (sans écurie suite à une suppression) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse reassign &amp;amp;lt;horse_id&amp;amp;gt; &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Réassigne un compagnon orphelin à une box libre de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie reload&amp;lt;/code&amp;gt; || Recharge les fichiers de configuration &amp;lt;code&amp;gt;config.yml&amp;lt;/code&amp;gt; et de traduction &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les blocs cibles de boxes détectés par défaut selon le type d&#039;écurie sont :&lt;br /&gt;
* &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès complet aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les NPCs Maître d&#039;Écurie et utilisation de &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: &amp;lt;code&amp;gt;WATER_CAULDRON&amp;lt;/code&amp;gt; pour TERRESTRE, &amp;lt;code&amp;gt;PRISMARINE&amp;lt;/code&amp;gt; pour AQUATIQUE).&lt;br /&gt;
# &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie wand on&amp;lt;/code&amp;gt; → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
# &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
# &#039;&#039;&#039;Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;amp;lt; 5 blocs : &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; (le nom et le skin par défaut sont appliqués automatiquement).&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
# Amener le compagnon à côté ou le monter&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
# &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
# &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.store&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
# Choisir le compagnon dans la liste&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.retrieve&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
# Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
# Choisir le compagnon dans la liste&lt;br /&gt;
# Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
# Coût : &amp;lt;code&amp;gt;prices.rename&amp;lt;/code&amp;gt; en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via &amp;lt;code&amp;gt;/ecurie setnpc&amp;lt;/code&amp;gt;. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans &amp;lt;code&amp;gt;npc&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans &amp;lt;code&amp;gt;groom&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;. Les familiers volants dans une &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. Les familiers terrestres dans une &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;. Les restrictions sont activables via l&#039;option &amp;lt;code&amp;gt;restrict-stable-types&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via &amp;lt;code&amp;gt;/petsendaway&amp;lt;/code&amp;gt;) pour éviter les doublons dans le monde, et restaure correctement ses états.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l&#039;activité MyPet, et restrictions par type d&#039;écurie.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5782</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5782"/>
		<updated>2026-06-12T22:36:45Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer &amp;lt;code&amp;gt;Ecurie-&amp;amp;lt;version&amp;amp;gt;.jar&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;plugins/&amp;lt;/code&amp;gt;&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer &amp;lt;code&amp;gt;plugins/Ecurie/config.yml&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== config.yml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  # &#039;sqlite&#039; ou &#039;mysql&#039;&lt;br /&gt;
  type: &amp;quot;sqlite&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  # Configuration SQLite&lt;br /&gt;
  sqlite:&lt;br /&gt;
    file: &amp;quot;ecurie.db&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  # Configuration MySQL / MariaDB (HikariCP)&lt;br /&gt;
  mysql:&lt;br /&gt;
    host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
    port: 3306&lt;br /&gt;
    database: &amp;quot;ecurie&amp;quot;&lt;br /&gt;
    username: &amp;quot;root&amp;quot;&lt;br /&gt;
    password: &amp;quot;password&amp;quot;&lt;br /&gt;
    pool:&lt;br /&gt;
      maximum-pool-size: 10&lt;br /&gt;
      minimum-idle: 2&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l&#039;écurie&lt;br /&gt;
# Compagnon aquatique -&amp;gt; Écurie AQUATIQUE uniquement&lt;br /&gt;
# Compagnon volant -&amp;gt; Écurie VOLIERE uniquement&lt;br /&gt;
# Compagnon terrestre -&amp;gt; Écurie TERRESTRE/STABLE uniquement&lt;br /&gt;
restrict-stable-types: true&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lang.yml ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (&amp;lt;code&amp;gt;&amp;amp;lt;red&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;gold&amp;amp;gt;&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
Variables disponibles selon le message : &amp;lt;code&amp;gt;{name}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{amount}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{dest}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{time}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{count}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{stable_id}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{n}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{x}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{y}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{z}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Commandes ==&lt;br /&gt;
&lt;br /&gt;
=== Commandes joueurs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie gui [dialog/inventory]&amp;lt;/code&amp;gt; || Modifie le type d&#039;interface préféré du joueur (sauvegardé en PDC) || &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie wand [on/off]&amp;lt;/code&amp;gt; || Active ou désactive le wand (bâton de sélection pour délimiter les étables) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; || Crée une étable dans la sélection wand et scanne automatiquement les boxes. Types : &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RELAY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie delete &amp;amp;lt;id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime l&#039;étable spécifiée (rend ses compagnons orphelins) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Lie le NPC Citizens le plus proche (&amp;amp;le;5 blocs) à l&#039;étable en lui attribuant son nom/skin par défaut || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie list&amp;lt;/code&amp;gt; || Liste toutes les étables enregistrées || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie tp &amp;amp;lt;stable_id/nom&amp;amp;gt;&amp;lt;/code&amp;gt; || Téléporte le joueur en face du NPC de l&#039;étable spécifiée (sécurité anticollision intégrée) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box scan &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Relance la détection des blocs cibles (box) dans la sélection wand pour cette étable || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box list &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Liste les coordonnées de toutes les boxes de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box delete &amp;amp;lt;box_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement la box spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie show [on/off]&amp;lt;/code&amp;gt; || Active ou désactive l&#039;affichage de particules colorées sur les blocs de box (vert=libre, rouge=occupé) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse free &amp;amp;lt;horse_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement un compagnon de la base de données || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse orphans&amp;lt;/code&amp;gt; || Liste tous les compagnons orphelins (sans écurie suite à une suppression) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse reassign &amp;amp;lt;horse_id&amp;amp;gt; &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Réassigne un compagnon orphelin à une box libre de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie reload&amp;lt;/code&amp;gt; || Recharge les fichiers de configuration &amp;lt;code&amp;gt;config.yml&amp;lt;/code&amp;gt; et de traduction &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les blocs cibles de boxes détectés par défaut selon le type d&#039;écurie sont :&lt;br /&gt;
* &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt; : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès complet aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les NPCs Maître d&#039;Écurie et utilisation de &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: &amp;lt;code&amp;gt;WATER_CAULDRON&amp;lt;/code&amp;gt; pour TERRESTRE, &amp;lt;code&amp;gt;PRISMARINE&amp;lt;/code&amp;gt; pour AQUATIQUE).&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie wand on&amp;lt;/code&amp;gt; → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
4. &#039;&#039;&#039;Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;amp;lt; 5 blocs : &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; (le nom et le skin par défaut sont appliqués automatiquement).&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
1. Amener le compagnon à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
4. &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
5. Coût : &amp;lt;code&amp;gt;prices.store&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Coût : &amp;lt;code&amp;gt;prices.retrieve&amp;lt;/code&amp;gt; en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : &amp;lt;code&amp;gt;prices.rename&amp;lt;/code&amp;gt; en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;amp;lt;n&amp;amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via &amp;lt;code&amp;gt;/ecurie setnpc&amp;lt;/code&amp;gt;. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans &amp;lt;code&amp;gt;npc&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans &amp;lt;code&amp;gt;groom&amp;lt;/code&amp;gt; (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;. Les familiers volants dans une &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. Les familiers terrestres dans une &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;. Les restrictions sont activables via l&#039;option &amp;lt;code&amp;gt;restrict-stable-types&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via &amp;lt;code&amp;gt;/petsendaway&amp;lt;/code&amp;gt;) pour éviter les doublons dans le monde, et restaure correctement ses états.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l&#039;activité MyPet, et restrictions par type d&#039;écurie.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5781</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5781"/>
		<updated>2026-06-12T22:34:37Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== `config.yml` ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  # &#039;sqlite&#039; ou &#039;mysql&#039;&lt;br /&gt;
  type: &amp;quot;sqlite&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  # Configuration SQLite&lt;br /&gt;
  sqlite:&lt;br /&gt;
    file: &amp;quot;ecurie.db&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  # Configuration MySQL / MariaDB (HikariCP)&lt;br /&gt;
  mysql:&lt;br /&gt;
    host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
    port: 3306&lt;br /&gt;
    database: &amp;quot;ecurie&amp;quot;&lt;br /&gt;
    username: &amp;quot;root&amp;quot;&lt;br /&gt;
    password: &amp;quot;password&amp;quot;&lt;br /&gt;
    pool:&lt;br /&gt;
      maximum-pool-size: 10&lt;br /&gt;
      minimum-idle: 2&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l&#039;écurie&lt;br /&gt;
# Compagnon aquatique -&amp;gt; Écurie AQUATIQUE uniquement&lt;br /&gt;
# Compagnon volant -&amp;gt; Écurie VOLIERE uniquement&lt;br /&gt;
# Compagnon terrestre -&amp;gt; Écurie TERRESTRE/STABLE uniquement&lt;br /&gt;
restrict-stable-types: true&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== `lang.yml` ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
== Commandes ==&lt;br /&gt;
&lt;br /&gt;
=== Commandes joueurs ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie gui [dialog/inventory]&amp;lt;/code&amp;gt; || Modifie le type d&#039;interface préféré du joueur (sauvegardé en PDC) || &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie wand [on/off]&amp;lt;/code&amp;gt; || Active ou désactive le wand (bâton de sélection pour délimiter les étables) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie create &amp;amp;lt;nom&amp;amp;gt; [type]&amp;lt;/code&amp;gt; || Crée une étable dans la sélection wand et scanne automatiquement les boxes. Types : &amp;lt;code&amp;gt;STABLE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RELAY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TERRESTRE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AQUATIQUE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;VOLIERE&amp;lt;/code&amp;gt;. || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie delete &amp;amp;lt;id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime l&#039;étable spécifiée (rend ses compagnons orphelins) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie setnpc &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Lie le NPC Citizens le plus proche (&amp;amp;le;5 blocs) à l&#039;étable en lui attribuant son nom/skin par défaut || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie list&amp;lt;/code&amp;gt; || Liste toutes les étables enregistrées || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie tp &amp;amp;lt;stable_id/nom&amp;amp;gt;&amp;lt;/code&amp;gt; || Téléporte le joueur en face du NPC de l&#039;étable spécifiée (sécurité anticollision intégrée) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box scan &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Relance la détection des blocs cibles (box) dans la sélection wand pour cette étable || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box list &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Liste les coordonnées de toutes les boxes de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie box delete &amp;amp;lt;box_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement la box spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie show [on/off]&amp;lt;/code&amp;gt; || Active ou désactive l&#039;affichage de particules colorées sur les blocs de box (vert=libre, rouge=occupé) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse free &amp;amp;lt;horse_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Supprime définitivement un compagnon de la base de données || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse orphans&amp;lt;/code&amp;gt; || Liste tous les compagnons orphelins (sans écurie suite à une suppression) || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie horse reassign &amp;amp;lt;horse_id&amp;amp;gt; &amp;amp;lt;stable_id&amp;amp;gt;&amp;lt;/code&amp;gt; || Réassigne un compagnon orphelin à une box libre de l&#039;étable spécifiée || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/ecurie reload&amp;lt;/code&amp;gt; || Recharge les fichiers de configuration &amp;lt;code&amp;gt;config.yml&amp;lt;/code&amp;gt; et de traduction &amp;lt;code&amp;gt;lang.yml&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les blocs cibles de boxes détectés par défaut selon le type d&#039;écurie sont :&lt;br /&gt;
* `STABLE` / `TERRESTRE` : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* `AQUATIQUE` : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* `VOLIERE` : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès complet aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les NPCs Maître d&#039;Écurie et utilisation de &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` pour AQUATIQUE).&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : `/ecurie create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
4. &#039;&#039;&#039;Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie setnpc &amp;lt;stable_id&amp;gt;` (le nom et le skin par défaut sont appliqués automatiquement).&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
1. Amener le compagnon à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
4. &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
5. Coût : `prices.store` en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Coût : `prices.retrieve` en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `prices.rename` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via `/ecurie setnpc`. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans `groom` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie `AQUATIQUE`. Les familiers volants dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE` ou `STABLE`. Les restrictions sont activables via l&#039;option `restrict-stable-types`.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via `/petsendaway`) pour éviter les doublons dans le monde, et restaure correctement ses états.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via `/ecurie gui` sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l&#039;activité MyPet, et restrictions par type d&#039;écurie.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5780</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5780"/>
		<updated>2026-06-12T22:32:07Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== `config.yml` ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  # &#039;sqlite&#039; ou &#039;mysql&#039;&lt;br /&gt;
  type: &amp;quot;sqlite&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  # Configuration SQLite&lt;br /&gt;
  sqlite:&lt;br /&gt;
    file: &amp;quot;ecurie.db&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  # Configuration MySQL / MariaDB (HikariCP)&lt;br /&gt;
  mysql:&lt;br /&gt;
    host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
    port: 3306&lt;br /&gt;
    database: &amp;quot;ecurie&amp;quot;&lt;br /&gt;
    username: &amp;quot;root&amp;quot;&lt;br /&gt;
    password: &amp;quot;password&amp;quot;&lt;br /&gt;
    pool:&lt;br /&gt;
      maximum-pool-size: 10&lt;br /&gt;
      minimum-idle: 2&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l&#039;écurie&lt;br /&gt;
# Compagnon aquatique -&amp;gt; Écurie AQUATIQUE uniquement&lt;br /&gt;
# Compagnon volant -&amp;gt; Écurie VOLIERE uniquement&lt;br /&gt;
# Compagnon terrestre -&amp;gt; Écurie TERRESTRE/STABLE uniquement&lt;br /&gt;
restrict-stable-types: true&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== `lang.yml` ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
== Commandes admin ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`&lt;br /&gt;
&lt;br /&gt;
=== Sélection de région ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie wand [on|off]                 — Active/désactive le wand (bâton). Clic G = pt 1, clic D = pt 2.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Étables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie create &amp;lt;nom&amp;gt; [type]           — Crée l&#039;étable et scanne automatiquement les boxes. Types : STABLE, TERRESTRE, AQUATIQUE, VOLIERE.&lt;br /&gt;
/ecurie delete &amp;lt;id&amp;gt;                   — Supprime une étable (met les compagnons en statut orphelin)&lt;br /&gt;
/ecurie setnpc &amp;lt;stable_id&amp;gt;            — Lie le NPC Citizens le plus proche (≤5 blocs) à l&#039;étable (applique nom et skin auto)&lt;br /&gt;
/ecurie list                          — Liste toutes les étables&lt;br /&gt;
/ecurie tp &amp;lt;stable_id|nom&amp;gt;            — Téléporte le joueur en face du NPC associé à l&#039;étable (sécurité anti-collision)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boxes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie box scan &amp;lt;stable_id&amp;gt;          — Rescanne les blocs cibles dans la sélection wand&lt;br /&gt;
/ecurie box list &amp;lt;stable_id&amp;gt;          — Liste les boxes d&#039;une étable&lt;br /&gt;
/ecurie box delete &amp;lt;box_id&amp;gt;           — Supprime une box&lt;br /&gt;
/ecurie show [on|off]                 — Affiche les boxes en surbrillance (particules colorées : vertes=libre, rouges=occupée)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détection : chaque stalle doit contenir un bloc spécifique configuré dans `config.yml` (`box-blocks`). Par défaut :&lt;br /&gt;
* `STABLE` / `TERRESTRE` : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* `AQUATIQUE` : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* `VOLIERE` : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
La commande `create` ou `box scan` détecte automatiquement ces blocs dans la région wand et enregistre les boxes immédiatement.&lt;br /&gt;
&lt;br /&gt;
=== Compagnons ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie horse free &amp;lt;horse_id&amp;gt;         — Supprime définitivement un compagnon de la DB (urgence admin)&lt;br /&gt;
/ecurie horse orphans                 — Liste les compagnons orphelins (étable d&#039;origine supprimée)&lt;br /&gt;
/ecurie horse reassign &amp;lt;h_id&amp;gt; &amp;lt;s_id&amp;gt;  — Réassigne un compagnon orphelin à une nouvelle étable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Divers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie reload                        — Recharge config.yml et lang.yml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commandes joueurs ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.use` (true par défaut).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie gui [dialog|inventory]        — Change votre type d&#039;interface (persistant via PDC)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` pour AQUATIQUE).&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : `/ecurie create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
4. &#039;&#039;&#039;Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie setnpc &amp;lt;stable_id&amp;gt;` (le nom et le skin par défaut sont appliqués automatiquement).&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
1. Amener le compagnon à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
4. &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
5. Coût : `prices.store` en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Coût : `prices.retrieve` en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `prices.rename` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les PNJ et &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via `/ecurie setnpc`. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans `groom` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie `AQUATIQUE`. Les familiers volants dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE` ou `STABLE`. Les restrictions sont activables via l&#039;option `restrict-stable-types`.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via `/petsendaway`) pour éviter les doublons dans le monde, et restaure correctement ses états.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via `/ecurie gui` sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|-&lt;br /&gt;
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l&#039;activité MyPet, et restrictions par type d&#039;écurie.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=MediaWiki:Citizen.css&amp;diff=5779</id>
		<title>MediaWiki:Citizen.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=MediaWiki:Citizen.css&amp;diff=5779"/>
		<updated>2026-06-12T19:29:15Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Harmonisation avec Blog / Forum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ============================================================&lt;br /&gt;
 * Mediawiki:Citizen.css — Nefald Wiki&lt;br /&gt;
 * Palette centralisée OKLCH + support light/dark/auto&lt;br /&gt;
 * Harmonisé avec Ghost Jaeger et Flarum Hyvan&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
/* 1. Typographie &amp;amp; Polices Nefald (Importation Google Fonts) */&lt;br /&gt;
@import url(&#039;https://fonts.googleapis.com/css2?family=VT323&amp;amp;family=Oswald:wght@300;400;500;600;700&amp;amp;display=swap&#039;);&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 1. PALETTE NEFALD — Variables personnalisées&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
/* -- Typographie globale Citizen -- */&lt;br /&gt;
--font-family-citizen-base: &#039;Oswald&#039;;&lt;br /&gt;
--font-family-citizen-monospace: &#039;VT323&#039;, monospace;&lt;br /&gt;
&lt;br /&gt;
/* -- Angles droits rigides (Esthétique Nefald / Hyvan / Jaeger) -- */&lt;br /&gt;
--border-radius-base: 2px;&lt;br /&gt;
&lt;br /&gt;
/* -- Couleur progressive Citizen (#5a8db8 en OKLCH pour l&#039;accentuation) -- */&lt;br /&gt;
--color-progressive-oklch__l: 60.15%;&lt;br /&gt;
--color-progressive-oklch__c: 0.134;&lt;br /&gt;
--color-progressive-oklch__h: 246.33;&lt;br /&gt;
&lt;br /&gt;
/* -- Palette sémantique Nefald (light par défaut) -- */&lt;br /&gt;
&lt;br /&gt;
/* Success */&lt;br /&gt;
--nefald-success-bg:     oklch(93% 0.08 145);&lt;br /&gt;
--nefald-success-text:   oklch(35% 0.12 145);&lt;br /&gt;
--nefald-success-border: oklch(75% 0.14 145);&lt;br /&gt;
&lt;br /&gt;
/* Danger */&lt;br /&gt;
--nefald-danger-bg:      oklch(93% 0.07 25);&lt;br /&gt;
--nefald-danger-text:    oklch(38% 0.14 25);&lt;br /&gt;
--nefald-danger-border:  oklch(70% 0.16 25);&lt;br /&gt;
&lt;br /&gt;
/* Warning */&lt;br /&gt;
--nefald-warning-bg:     oklch(95% 0.09 85);&lt;br /&gt;
--nefald-warning-text:   oklch(42% 0.13 75);&lt;br /&gt;
--nefald-warning-border: oklch(78% 0.15 85);&lt;br /&gt;
&lt;br /&gt;
/* Info */&lt;br /&gt;
--nefald-info-bg:        oklch(93% 0.06 230);&lt;br /&gt;
--nefald-info-text:      oklch(38% 0.12 230);&lt;br /&gt;
--nefald-info-border:    oklch(72% 0.14 230);&lt;br /&gt;
&lt;br /&gt;
/* Neutral */&lt;br /&gt;
--nefald-neutral-bg:     oklch(94% 0.01 230);&lt;br /&gt;
--nefald-neutral-text:   oklch(40% 0.02 230);&lt;br /&gt;
--nefald-neutral-border: oklch(78% 0.02 230);&lt;br /&gt;
&lt;br /&gt;
/* Tip (violet) */&lt;br /&gt;
--nefald-tip-bg:         oklch(94% 0.06 310);&lt;br /&gt;
--nefald-tip-text:       oklch(35% 0.14 310);&lt;br /&gt;
--nefald-tip-border:     oklch(55% 0.18 310);&lt;br /&gt;
&lt;br /&gt;
/* Question (cyan) */&lt;br /&gt;
--nefald-question-bg:     oklch(94% 0.06 200);&lt;br /&gt;
--nefald-question-text:   oklch(35% 0.12 200);&lt;br /&gt;
--nefald-question-border: oklch(55% 0.16 200);&lt;br /&gt;
&lt;br /&gt;
/* Accent */&lt;br /&gt;
--nefald-accent:         oklch(53.25% 0.1679 230);&lt;br /&gt;
--nefald-accent-subtle:  oklch(93% 0.05 230);&lt;br /&gt;
&lt;br /&gt;
/* Recherche dans la page */&lt;br /&gt;
--nefald-highlight-bg:             oklch(90% 0.18 85);&lt;br /&gt;
--nefald-highlight-text:           oklch(25% 0.08 75);&lt;br /&gt;
--nefald-highlight-active-bg:      oklch(78% 0.20 60);&lt;br /&gt;
--nefald-highlight-active-text:    oklch(20% 0.10 55);&lt;br /&gt;
--nefald-highlight-active-outline: oklch(65% 0.22 55);&lt;br /&gt;
&lt;br /&gt;
/* -- Variables Roadmap (dérivées de la palette) -- */&lt;br /&gt;
--roadmap-idea-bg:           var(--nefald-neutral-bg);&lt;br /&gt;
--roadmap-idea-text:         var(--nefald-neutral-text);&lt;br /&gt;
--roadmap-idea-border:       var(--nefald-neutral-border);&lt;br /&gt;
&lt;br /&gt;
--roadmap-planned-bg:        var(--nefald-warning-bg);&lt;br /&gt;
--roadmap-planned-text:      var(--nefald-warning-text);&lt;br /&gt;
--roadmap-planned-border:    var(--nefald-warning-border);&lt;br /&gt;
&lt;br /&gt;
--roadmap-inprogress-bg:     var(--nefald-info-bg);&lt;br /&gt;
--roadmap-inprogress-text:   var(--nefald-info-text);&lt;br /&gt;
--roadmap-inprogress-border: var(--nefald-info-border);&lt;br /&gt;
&lt;br /&gt;
--roadmap-done-bg:           var(--nefald-success-bg);&lt;br /&gt;
--roadmap-done-text:         var(--nefald-success-text);&lt;br /&gt;
--roadmap-done-border:       var(--nefald-success-border);&lt;br /&gt;
&lt;br /&gt;
--roadmap-cancelled-bg:      var(--nefald-danger-bg);&lt;br /&gt;
--roadmap-cancelled-text:    var(--nefald-danger-text);&lt;br /&gt;
--roadmap-cancelled-border:  var(--nefald-danger-border);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -- Mode sombre (manuel) -- */&lt;br /&gt;
:root.skin-theme-clientpref-night {&lt;br /&gt;
/* Surcharges des surfaces Citizen pour le thème sombre Nefald (Jaeger/Hyvan) */&lt;br /&gt;
--color-surface-0: #0a0c10; /* Fond de page principal (nefald-ink) */&lt;br /&gt;
--color-surface-1: #11161d; /* Cartes, modales et menus déroulants (nefald-ink-2) */&lt;br /&gt;
--color-surface-2: #1a2230; /* Éléments surélevés (nefald-ink-3) */&lt;br /&gt;
--color-surface-3: #1c2532; /* Zones de survol / lignes subtiles (nefald-rule) */&lt;br /&gt;
--color-surface-4: #2a3a4e; /* Éléments actifs / acier (nefald-steel) */&lt;br /&gt;
&lt;br /&gt;
/* Textes */&lt;br /&gt;
--color-base: #c8d1de;        /* Texte général (nefald-cream) */&lt;br /&gt;
--color-emphasized: #e6ecf3;  /* Titres et en-têtes (nefald-cream-bright) */&lt;br /&gt;
--color-subtle: #7c8694;      /* Légendes et métadonnées (nefald-muted) */&lt;br /&gt;
--color-link: #8eb4d4;        /* Liens (nefald-blue-light) */&lt;br /&gt;
--color-link-hover: #5a8db8;  /* Liens survolés (nefald-blue-bright) */&lt;br /&gt;
&lt;br /&gt;
/* Frontières */&lt;br /&gt;
--border-color-base: #2a3a4e;&lt;br /&gt;
--border-color-subtle: #1c2532;&lt;br /&gt;
--border-color-interactive: #5a8db8;&lt;br /&gt;
&lt;br /&gt;
/* Sémantique Nefald */&lt;br /&gt;
--nefald-success-bg:     oklch(28% 0.09 145);&lt;br /&gt;
--nefald-success-text:   oklch(82% 0.12 145);&lt;br /&gt;
--nefald-success-border: oklch(45% 0.12 145);&lt;br /&gt;
&lt;br /&gt;
--nefald-danger-bg:      oklch(28% 0.09 25);&lt;br /&gt;
--nefald-danger-text:    oklch(85% 0.10 25);&lt;br /&gt;
--nefald-danger-border:  oklch(48% 0.14 25);&lt;br /&gt;
&lt;br /&gt;
--nefald-warning-bg:     oklch(30% 0.09 75);&lt;br /&gt;
--nefald-warning-text:   oklch(88% 0.12 85);&lt;br /&gt;
--nefald-warning-border: oklch(52% 0.14 80);&lt;br /&gt;
&lt;br /&gt;
--nefald-info-bg:        oklch(28% 0.07 230);&lt;br /&gt;
--nefald-info-text:      oklch(84% 0.10 230);&lt;br /&gt;
--nefald-info-border:    oklch(48% 0.12 230);&lt;br /&gt;
&lt;br /&gt;
--nefald-neutral-bg:     oklch(28% 0.01 230);&lt;br /&gt;
--nefald-neutral-text:   oklch(82% 0.02 230);&lt;br /&gt;
--nefald-neutral-border: oklch(45% 0.02 230);&lt;br /&gt;
&lt;br /&gt;
--nefald-tip-bg:         oklch(25% 0.07 310);&lt;br /&gt;
--nefald-tip-text:       oklch(80% 0.12 310);&lt;br /&gt;
--nefald-tip-border:     oklch(50% 0.16 310);&lt;br /&gt;
&lt;br /&gt;
--nefald-question-bg:     oklch(25% 0.06 200);&lt;br /&gt;
--nefald-question-text:   oklch(80% 0.11 200);&lt;br /&gt;
--nefald-question-border: oklch(50% 0.14 200);&lt;br /&gt;
&lt;br /&gt;
--nefald-accent:         oklch(65% 0.18 230);&lt;br /&gt;
--nefald-accent-subtle:  oklch(28% 0.07 230);&lt;br /&gt;
&lt;br /&gt;
/* Recherche dans la page */&lt;br /&gt;
--nefald-highlight-bg:             oklch(45% 0.18 85);&lt;br /&gt;
--nefald-highlight-text:           oklch(95% 0.05 85);&lt;br /&gt;
--nefald-highlight-active-bg:      oklch(58% 0.22 60);&lt;br /&gt;
--nefald-highlight-active-text:    oklch(98% 0.02 60);&lt;br /&gt;
--nefald-highlight-active-outline: oklch(70% 0.22 55);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -- Mode automatique (suit le système) -- */&lt;br /&gt;
@media (prefers-color-scheme: dark) {&lt;br /&gt;
:root.skin-theme-clientpref-os {&lt;br /&gt;
/* Surcharges des surfaces Citizen pour le thème sombre Nefald (Jaeger/Hyvan) */&lt;br /&gt;
--color-surface-0: #0a0c10;&lt;br /&gt;
--color-surface-1: #11161d;&lt;br /&gt;
--color-surface-2: #1a2230;&lt;br /&gt;
--color-surface-3: #1c2532;&lt;br /&gt;
--color-surface-4: #2a3a4e;&lt;br /&gt;
&lt;br /&gt;
--color-base: #c8d1de;&lt;br /&gt;
--color-emphasized: #e6ecf3;&lt;br /&gt;
--color-subtle: #7c8694;&lt;br /&gt;
--color-link: #8eb4d4;&lt;br /&gt;
--color-link-hover: #5a8db8;&lt;br /&gt;
&lt;br /&gt;
--border-color-base: #2a3a4e;&lt;br /&gt;
--border-color-subtle: #1c2532;&lt;br /&gt;
--border-color-interactive: #5a8db8;&lt;br /&gt;
&lt;br /&gt;
/* Sémantique Nefald */&lt;br /&gt;
--nefald-success-bg:     oklch(28% 0.09 145);&lt;br /&gt;
--nefald-success-text:   oklch(82% 0.12 145);&lt;br /&gt;
--nefald-success-border: oklch(45% 0.12 145);&lt;br /&gt;
&lt;br /&gt;
--nefald-danger-bg:      oklch(28% 0.09 25);&lt;br /&gt;
--nefald-danger-text:    oklch(85% 0.10 25);&lt;br /&gt;
--nefald-danger-border:  oklch(48% 0.14 25);&lt;br /&gt;
&lt;br /&gt;
--nefald-warning-bg:     oklch(30% 0.09 75);&lt;br /&gt;
--nefald-warning-text:   oklch(88% 0.12 85);&lt;br /&gt;
--nefald-warning-border: oklch(52% 0.14 80);&lt;br /&gt;
&lt;br /&gt;
--nefald-info-bg:        oklch(28% 0.07 230);&lt;br /&gt;
--nefald-info-text:      oklch(84% 0.10 230);&lt;br /&gt;
--nefald-info-border:    oklch(48% 0.12 230);&lt;br /&gt;
&lt;br /&gt;
--nefald-neutral-bg:     oklch(28% 0.01 230);&lt;br /&gt;
--nefald-neutral-text:   oklch(82% 0.02 230);&lt;br /&gt;
--nefald-neutral-border: oklch(45% 0.02 230);&lt;br /&gt;
&lt;br /&gt;
--nefald-tip-bg:         oklch(25% 0.07 310);&lt;br /&gt;
--nefald-tip-text:       oklch(80% 0.12 310);&lt;br /&gt;
--nefald-tip-border:     oklch(50% 0.16 310);&lt;br /&gt;
&lt;br /&gt;
--nefald-question-bg:     oklch(25% 0.06 200);&lt;br /&gt;
--nefald-question-text:   oklch(80% 0.11 200);&lt;br /&gt;
--nefald-question-border: oklch(50% 0.14 200);&lt;br /&gt;
&lt;br /&gt;
--nefald-accent:         oklch(65% 0.18 230);&lt;br /&gt;
--nefald-accent-subtle:  oklch(28% 0.07 230);&lt;br /&gt;
&lt;br /&gt;
/* Recherche dans la page */&lt;br /&gt;
--nefald-highlight-bg:             oklch(45% 0.18 85);&lt;br /&gt;
--nefald-highlight-text:           oklch(95% 0.05 85);&lt;br /&gt;
--nefald-highlight-active-bg:      oklch(58% 0.22 60);&lt;br /&gt;
--nefald-highlight-active-text:    oklch(98% 0.02 60);&lt;br /&gt;
--nefald-highlight-active-outline: oklch(70% 0.22 55);&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -- Mode Noir Pur (OLED) -- */&lt;br /&gt;
.skin-theme-clientpref-night.citizen-feature-pure-black-clientpref-1 {&lt;br /&gt;
--color-surface-0: #000000;&lt;br /&gt;
--color-surface-1: #0a0c10;&lt;br /&gt;
--color-surface-2: #11161d;&lt;br /&gt;
--color-surface-3: #1a2230;&lt;br /&gt;
--color-surface-4: #2a3a4e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -- Mode Clair -- */&lt;br /&gt;
.skin-theme-clientpref-day {&lt;br /&gt;
/* Progressive color assombrie en mode clair pour l&#039;accessibilité */&lt;br /&gt;
--color-progressive-oklch__l: 43.15%;&lt;br /&gt;
--color-progressive-oklch__c: 0.114;&lt;br /&gt;
--color-progressive-oklch__h: 246.33;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* -- Jaeger background gradient (Effet cinématique du fond) -- */&lt;br /&gt;
.skin-theme-clientpref-night body {&lt;br /&gt;
    background: radial-gradient(ellipse at top, #0e1822 0%, #0a0c10 60%, #0a0c10 100%) !important;&lt;br /&gt;
    background-attachment: fixed !important;&lt;br /&gt;
}&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
    .skin-theme-clientpref-os body {&lt;br /&gt;
        background: radial-gradient(ellipse at top, #0e1822 0%, #0a0c10 60%, #0a0c10 100%) !important;&lt;br /&gt;
        background-attachment: fixed !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 2. TYPOGRAPHIE&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
h1, h2, h3, h4, h5, h6,&lt;br /&gt;
.citizen-sticky-header-page-title {&lt;br /&gt;
font-weight: var(--font-weight-medium);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h4, h5, h6 {&lt;br /&gt;
letter-spacing: 0.0125em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 3. TABLEAUX — Classes sémantiques&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
.table-color-success {&lt;br /&gt;
background-color: var(--nefald-success-bg) !important;&lt;br /&gt;
color:            var(--nefald-success-text) !important;&lt;br /&gt;
border-left: 3px solid var(--nefald-success-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-danger {&lt;br /&gt;
background-color: var(--nefald-danger-bg) !important;&lt;br /&gt;
color:            var(--nefald-danger-text) !important;&lt;br /&gt;
border-left: 3px solid var(--nefald-danger-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-warning {&lt;br /&gt;
background-color: var(--nefald-warning-bg) !important;&lt;br /&gt;
color:            var(--nefald-warning-text) !important;&lt;br /&gt;
border-left: 3px solid var(--nefald-warning-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-info {&lt;br /&gt;
background-color: var(--nefald-info-bg) !important;&lt;br /&gt;
color:            var(--nefald-info-text) !important;&lt;br /&gt;
border-left: 3px solid var(--nefald-info-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-secondary {&lt;br /&gt;
background-color: var(--nefald-neutral-bg) !important;&lt;br /&gt;
color:            var(--nefald-neutral-text) !important;&lt;br /&gt;
border-left: 3px solid var(--nefald-neutral-border) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-success,&lt;br /&gt;
.table-color-danger,&lt;br /&gt;
.table-color-warning,&lt;br /&gt;
.table-color-info,&lt;br /&gt;
.table-color-secondary {&lt;br /&gt;
transition: filter 0.2s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable tr:hover .table-color-success,&lt;br /&gt;
.wikitable tr:hover .table-color-danger,&lt;br /&gt;
.wikitable tr:hover .table-color-warning,&lt;br /&gt;
.wikitable tr:hover .table-color-info,&lt;br /&gt;
.wikitable tr:hover .table-color-secondary {&lt;br /&gt;
filter: brightness(0.95);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-success code,&lt;br /&gt;
.table-color-danger code,&lt;br /&gt;
.table-color-warning code,&lt;br /&gt;
.table-color-info code,&lt;br /&gt;
.table-color-secondary code {&lt;br /&gt;
background-color: rgba(0, 0, 0, 0.1) !important;&lt;br /&gt;
color: inherit !important;&lt;br /&gt;
border: 1px solid rgba(0, 0, 0, 0.15);&lt;br /&gt;
padding: 2px 6px;&lt;br /&gt;
border-radius: 3px;&lt;br /&gt;
font-size: 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root.skin-theme-clientpref-night .table-color-success code,&lt;br /&gt;
:root.skin-theme-clientpref-night .table-color-danger code,&lt;br /&gt;
:root.skin-theme-clientpref-night .table-color-warning code,&lt;br /&gt;
:root.skin-theme-clientpref-night .table-color-info code,&lt;br /&gt;
:root.skin-theme-clientpref-night .table-color-secondary code {&lt;br /&gt;
background-color: rgba(255, 255, 255, 0.1) !important;&lt;br /&gt;
border-color: rgba(255, 255, 255, 0.15);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.table-color-success:focus-within,&lt;br /&gt;
.table-color-danger:focus-within,&lt;br /&gt;
.table-color-warning:focus-within,&lt;br /&gt;
.table-color-info:focus-within,&lt;br /&gt;
.table-color-secondary:focus-within {&lt;br /&gt;
outline: 2px solid currentColor;&lt;br /&gt;
outline-offset: -2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 4. COMMAND PALETTE — Repositionnement desktop&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 1000px) {&lt;br /&gt;
.citizen-command-palette {&lt;br /&gt;
left: calc(56px + var(--space-xs)) !important;&lt;br /&gt;
top: 2rem !important;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 5. MENU LATÉRAL (Drawer)&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
.citizen-drawer__menu {&lt;br /&gt;
margin-bottom: 0;&lt;br /&gt;
padding-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-portlet-External {&lt;br /&gt;
position: sticky;&lt;br /&gt;
bottom: 0;&lt;br /&gt;
margin-top: var(--space-md);&lt;br /&gt;
margin-inline: calc(var(--space-xs) * -1);&lt;br /&gt;
padding: var(--space-xs);&lt;br /&gt;
border-top: var(--border-base);&lt;br /&gt;
backdrop-filter: var(--backdrop-filter-frosted-glass);&lt;br /&gt;
font-size: var(--font-size-x-small);&lt;br /&gt;
grid-column: 1 / -1;&lt;br /&gt;
white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-portlet-External .citizen-menu__heading {&lt;br /&gt;
display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-portlet-External ul {&lt;br /&gt;
display: flex;&lt;br /&gt;
overflow: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-portlet-External .mw-list-item a {&lt;br /&gt;
gap: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-drawer__menu [id^=&amp;quot;n-sidebar-label-&amp;quot;] a {&lt;br /&gt;
pointer-events: none;&lt;br /&gt;
margin-left: var(--space-xs);&lt;br /&gt;
padding-left: var(--space-md);&lt;br /&gt;
padding-right: var(--space-xs);&lt;br /&gt;
border-left: 1px solid var(--border-color-base);&lt;br /&gt;
border-radius: 0;&lt;br /&gt;
letter-spacing: 0.05em;&lt;br /&gt;
font-weight: var(--font-weight-normal);&lt;br /&gt;
color: var(--color-subtle) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-drawer__menu [id^=&amp;quot;n-sidebar-icon-&amp;quot;] a {&lt;br /&gt;
font-size: 0;&lt;br /&gt;
content-visibility: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-drawer__menu [id^=&amp;quot;n-sidebar-icon-&amp;quot;] a:before {&lt;br /&gt;
display: block;&lt;br /&gt;
content: &amp;quot;&amp;quot;;&lt;br /&gt;
width: var(--size-icon);&lt;br /&gt;
height: var(--size-icon);&lt;br /&gt;
background-color: currentColor;&lt;br /&gt;
mask-size: contain;&lt;br /&gt;
mask-repeat: no-repeat;&lt;br /&gt;
mask-position: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#n-sidebar-icon-bluesky a:before   { mask-image: url(https://wiki.nefald.fr/images/2/21/IconButton-bluesky.svg); }&lt;br /&gt;
#n-sidebar-icon-discord a:before   { mask-image: url(https://wiki.nefald.fr/images/9/9c/Discord_Icons.svg); }&lt;br /&gt;
#n-sidebar-icon-facebook a:before  { mask-image: url(https://wiki.nefald.fr/images/9/9c/IconButton-facebook.svg); }&lt;br /&gt;
#n-sidebar-icon-ghost a:before     { mask-image: url(https://wiki.nefald.fr/images/f/f6/IconButton-ghost.svg); }&lt;br /&gt;
#n-sidebar-icon-gitlab a:before    { mask-image: url(https://wiki.nefald.fr/images/0/01/IconButton-gitlab.svg); }&lt;br /&gt;
#n-sidebar-icon-helloasso a:before { mask-image: url(https://wiki.nefald.fr/images/c/c3/IconButton-helloasso.svg); }&lt;br /&gt;
#n-sidebar-icon-instagram a:before { mask-image: url(https://wiki.nefald.fr/images/f/f9/ButtonLink-instagram.svg); }&lt;br /&gt;
#n-sidebar-icon-mastodon a:before  { mask-image: url(https://wiki.nefald.fr/images/b/b0/IconButton-mastodon.svg); }&lt;br /&gt;
#n-sidebar-icon-patreon a:before   { mask-image: url(); }&lt;br /&gt;
#n-sidebar-icon-tiktok a:before    { mask-image: url(https://wiki.nefald.fr/images/0/07/IconButton-tiktok.svg); }&lt;br /&gt;
#n-sidebar-icon-twitter a:before   { mask-image: url(https://wiki.nefald.fr/images/3/35/ButtonLink-twitter.svg); }&lt;br /&gt;
#n-sidebar-icon-youtube a:before   { mask-image: url(https://wiki.nefald.fr/images/6/64/IconButton-youtube.svg); }&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 6. FOOTER&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
.citizen-footer {&lt;br /&gt;
padding-block: 6rem;&lt;br /&gt;
background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.citizen-footer__siteinfo {&lt;br /&gt;
justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-icons a {&lt;br /&gt;
border: 0;&lt;br /&gt;
padding: 0;&lt;br /&gt;
background: transparent;&lt;br /&gt;
opacity: var(--opacity-icon-base);&lt;br /&gt;
transition: opacity 250ms ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-icons a:hover  { opacity: var(--opacity-icon-base--hover); }&lt;br /&gt;
#footer-icons a:active { opacity: var(--opacity-icon-base--active); }&lt;br /&gt;
&lt;br /&gt;
#footer-icons ul,&lt;br /&gt;
#footer-icons li {&lt;br /&gt;
column-gap: var(--space-md);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-icons img {&lt;br /&gt;
width: auto;&lt;br /&gt;
height: 32px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ============================================================&lt;br /&gt;
 * 7. MODÈLE:RECHERCHE — Surlignage&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
.nefald-highlight {&lt;br /&gt;
background-color: var(--nefald-highlight-bg);&lt;br /&gt;
color: var(--nefald-highlight-text);&lt;br /&gt;
border-radius: 2px;&lt;br /&gt;
padding: 0 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nefald-highlight--active {&lt;br /&gt;
background-color: var(--nefald-highlight-active-bg);&lt;br /&gt;
color: var(--nefald-highlight-active-text);&lt;br /&gt;
outline: 2px solid var(--nefald-highlight-active-outline);&lt;br /&gt;
outline-offset: 1px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5778</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5778"/>
		<updated>2026-06-11T23:37:33Z</updated>

		<summary type="html">&lt;p&gt;Hiob : style: aligner le formatage sur Plugin:Banco (H1, gras intro, type infobox, séparateurs, code dans tableaux) (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=roleplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Écurie&#039;&#039;&#039; est un plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== `config.yml` ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  file: &amp;quot;ecurie.db&amp;quot;          # Chemin relatif au dossier du plugin&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
routes:&lt;br /&gt;
  on-road-speed: 0.35        # Vitesse cheval sur route (vanilla ≈ 0.225)&lt;br /&gt;
  enabled: false             # Routes RP (désactivé en V1)&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie stable setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== `lang.yml` ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
== Commandes admin ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`&lt;br /&gt;
&lt;br /&gt;
=== Wand — sélection de région ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie wand [on|off]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Active/désactive le wand bâton. Clic gauche = point 1, clic droit = point 2. Utilisé pour scanner les boxes d&#039;une étable.&lt;br /&gt;
&lt;br /&gt;
=== Étables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie stable create &amp;lt;nom&amp;gt; [type]    — Crée l&#039;étable ET scanne automatiquement les boxes. Type: STABLE, TERRESTRE, AQUATIQUE, VOLIERE.&lt;br /&gt;
/ecurie stable delete &amp;lt;id&amp;gt;            — Supprime une étable&lt;br /&gt;
/ecurie stable setnpc &amp;lt;stable_id&amp;gt;     — Lie le NPC Citizens le plus proche (≤5 blocs) à l&#039;étable&lt;br /&gt;
/ecurie stable list                   — Liste toutes les étables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boxes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie box list &amp;lt;stable_id&amp;gt;          — Liste les boxes d&#039;une étable&lt;br /&gt;
/ecurie box delete &amp;lt;box_id&amp;gt;           — Supprime une box&lt;br /&gt;
/ecurie show [on|off]                 — Affiche les boxes en surbrillance (particules colorées : vertes=libre, rouges=occupée)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détection : chaque stalle doit contenir un bloc spécifique configuré dans `config.yml` (`box-blocks`). Par défaut :&lt;br /&gt;
* `STABLE` / `TERRESTRE` : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* `AQUATIQUE` : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* `VOLIERE` : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
La commande `stable create` détecte automatiquement tous ces blocs dans la région wand et enregistre les boxes immédiatement.&lt;br /&gt;
&lt;br /&gt;
=== Chevaux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie horse free &amp;lt;horse_id&amp;gt;         — Libère un compagnon de la DB (urgence admin)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Divers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie reload                        — Recharge config.yml et le cache ShowManager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Commandes joueurs ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.use` (true par défaut).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie gui [dialog|inventory]        — Change votre type d&#039;interface (persistant via PDC)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` pour AQUATIQUE).&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : `/ecurie stable create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
4. &#039;&#039;&#039;(Optionnel) Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie stable setnpc &amp;lt;stable_id&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
1. Amener le compagnon à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
4. &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
5. Coût : `prices.store` en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Coût : `prices.retrieve` en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `prices.rename` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horses_count%&amp;lt;/code&amp;gt; || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_name_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_stable_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%ecurie_horse_health_&amp;lt;n&amp;gt;%&amp;lt;/code&amp;gt; || Santé (ex : &amp;lt;code&amp;gt;18.0/20.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration &amp;lt;code&amp;gt;/ecurie&amp;lt;/code&amp;gt; || op&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ecurie.use&amp;lt;/code&amp;gt; || Interaction avec les PNJ et &amp;lt;code&amp;gt;/ecurie gui&amp;lt;/code&amp;gt; || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (shadowed, pas de dépendance runtime)&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via `/ecurie stable setnpc`. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans `groom` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie `AQUATIQUE`. Les familiers volants dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE` ou `STABLE`.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin stocke correctement l&#039;UUID du MyPet et s&#039;assure qu&#039;il est révoqué automatiquement pour éviter les doublons lors du stockage.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via `/ecurie gui` sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5777</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5777"/>
		<updated>2026-06-11T23:29:21Z</updated>

		<summary type="html">&lt;p&gt;Hiob : docs: mise à jour terminologie RP, NPC Maître/Palefrenier, TextDisplay, config npc/groom, changelog 1.3.0, infobox (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Gestion des écuries RP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Écurie&lt;br /&gt;
|type=gameplay&lt;br /&gt;
|dev=[[Scriptomancien|Nefald]]&lt;br /&gt;
|status=Installé&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|sources=https://git.nefald.fr/minecraft/plugins/ecurie&lt;br /&gt;
|dépendance=[[Plugin:Vault|Vault]] (optionnel), [[Plugin:Banco|Banco]] (optionnel, recommandé), [[Plugin:Citizens|Citizens]] (optionnel), [[Plugin:PlaceholderAPI|PlaceholderAPI]] (optionnel), [[Plugin:MyPet|MyPet]] (optionnel)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Ecurie =&lt;br /&gt;
&lt;br /&gt;
Plugin PaperMC de gestion des compagnons RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs montures en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables (&#039;&#039;acheminements&#039;&#039;), la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== `config.yml` ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  file: &amp;quot;ecurie.db&amp;quot;          # Chemin relatif au dossier du plugin&lt;br /&gt;
&lt;br /&gt;
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)&lt;br /&gt;
# &#039;dialog&#039;    = Interface textuelle native Paper (1.21.6+, recommandé)&lt;br /&gt;
# &#039;inventory&#039; = Menu d&#039;inventaire classique&lt;br /&gt;
gui-type: &amp;quot;dialog&amp;quot;&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un acheminement (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
  animation-distance: 15.0   # Distance (blocs) pour l&#039;animation de départ/arrivée&lt;br /&gt;
&lt;br /&gt;
routes:&lt;br /&gt;
  on-road-speed: 0.35        # Vitesse cheval sur route (vanilla ≈ 0.225)&lt;br /&gt;
  enabled: false             # Routes RP (désactivé en V1)&lt;br /&gt;
&lt;br /&gt;
# Tarifs des services en écus/sols (0 = gratuit)&lt;br /&gt;
prices:&lt;br /&gt;
  store: 10                  # Mise en pension&lt;br /&gt;
  retrieve: 5                # Récupération d&#039;un compagnon&lt;br /&gt;
  rename: 50                 # Modification du registre (renommage)&lt;br /&gt;
  transfer-base: 20          # Coût de base d&#039;un acheminement&lt;br /&gt;
  transfer-per-100: 5        # Coût additionnel par tranche de 100 blocs&lt;br /&gt;
  # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Maître d&#039;Écurie&amp;quot; : PNJ d&#039;interface lié à l&#039;étable (via /ecurie stable setnpc)&lt;br /&gt;
npc:&lt;br /&gt;
  default-name: &amp;quot;Maître d&#039;Écurie&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;   # Valeur de texture NameMC&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot; # Signature de la texture&lt;br /&gt;
  animation:&lt;br /&gt;
    enabled: false           # Animation périodique du bras (secouage)&lt;br /&gt;
    delay-ticks: 300&lt;br /&gt;
&lt;br /&gt;
# NPC &amp;quot;Palefrenier&amp;quot; : PNJ temporaire, spawné uniquement pour l&#039;animation de départ/arrivée&lt;br /&gt;
groom:&lt;br /&gt;
  default-name: &amp;quot;Palefrenier&amp;quot;&lt;br /&gt;
  default-skin-value: &amp;quot;&amp;lt;base64 skin&amp;gt;&amp;quot;&lt;br /&gt;
  default-skin-signature: &amp;quot;&amp;lt;signature&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du compagnon fantôme en box&lt;br /&gt;
&lt;br /&gt;
box-blocks:&lt;br /&gt;
  # Blocs de ciblage (wand) selon le type d&#039;écurie&lt;br /&gt;
  STABLE: WATER_CAULDRON&lt;br /&gt;
  TERRESTRE: WATER_CAULDRON&lt;br /&gt;
  AQUATIQUE: PRISMARINE&lt;br /&gt;
  VOLIERE: DAYLIGHT_DETECTOR&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== `lang.yml` ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Commandes admin ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`&lt;br /&gt;
&lt;br /&gt;
=== Wand — sélection de région ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie wand [on|off]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Active/désactive le wand bâton. Clic gauche = point 1, clic droit = point 2. Utilisé pour scanner les boxes d&#039;une étable.&lt;br /&gt;
&lt;br /&gt;
=== Étables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie stable create &amp;lt;nom&amp;gt; [type]    — Crée l&#039;étable ET scanne automatiquement les boxes. Type: STABLE, TERRESTRE, AQUATIQUE, VOLIERE.&lt;br /&gt;
/ecurie stable delete &amp;lt;id&amp;gt;            — Supprime une étable&lt;br /&gt;
/ecurie stable setnpc &amp;lt;stable_id&amp;gt;     — Lie le NPC Citizens le plus proche (≤5 blocs) à l&#039;étable&lt;br /&gt;
/ecurie stable list                   — Liste toutes les étables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boxes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie box list &amp;lt;stable_id&amp;gt;          — Liste les boxes d&#039;une étable&lt;br /&gt;
/ecurie box delete &amp;lt;box_id&amp;gt;           — Supprime une box&lt;br /&gt;
/ecurie show [on|off]                 — Affiche les boxes en surbrillance (particules colorées : vertes=libre, rouges=occupée)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détection : chaque stalle doit contenir un bloc spécifique configuré dans `config.yml` (`box-blocks`). Par défaut :&lt;br /&gt;
* `STABLE` / `TERRESTRE` : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* `AQUATIQUE` : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* `VOLIERE` : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
La commande `stable create` détecte automatiquement tous ces blocs dans la région wand et enregistre les boxes immédiatement.&lt;br /&gt;
&lt;br /&gt;
=== Chevaux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie horse free &amp;lt;horse_id&amp;gt;         — Libère un compagnon de la DB (urgence admin)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Divers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie reload                        — Recharge config.yml et le cache ShowManager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Commandes joueurs ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.use` (true par défaut).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie gui [dialog|inventory]        — Change votre type d&#039;interface (persistant via PDC)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible dans chaque stalle (ex: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` pour AQUATIQUE).&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : `/ecurie stable create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées.&lt;br /&gt;
4. &#039;&#039;&#039;(Optionnel) Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie stable setnpc &amp;lt;stable_id&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; (NPC Citizens de l&#039;étable). Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (préférence persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Inventaire classique sous forme de coffre.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Mettre en pension ===&lt;br /&gt;
1. Amener le compagnon à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Mettre en pension&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le compagnon n&#039;a pas de nom custom&#039;&#039;&#039; (nom générique ou absent) → une enclume s&#039;ouvre pour le nommer&lt;br /&gt;
4. &#039;&#039;&#039;Si le compagnon a déjà un nom custom&#039;&#039;&#039; → mise en pension directe sans nommage&lt;br /&gt;
5. Coût : `prices.store` en sols&lt;br /&gt;
&lt;br /&gt;
=== Reprendre un compagnon ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Reprendre un compagnon&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Coût : `prices.retrieve` en sols&lt;br /&gt;
&lt;br /&gt;
=== Demander un acheminement ===&lt;br /&gt;
L&#039;acheminement peut être initié depuis l&#039;écurie de départ ou d&#039;arrivée :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (envoi sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, sélectionner le compagnon, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Demander un acheminement&#039;&#039;&#039;, le plugin liste vos compagnons situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai et le coût s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Modifier le registre ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Modifier le registre&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le compagnon dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `prices.rename` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes compagnons ===&lt;br /&gt;
Vue globale de tous les compagnons du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horses_count%` || Nombre de compagnons en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_name_&amp;lt;n&amp;gt;%` || Nom du n-ième compagnon (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_stable_&amp;lt;n&amp;gt;%` || Nom de l&#039;étable du n-ième compagnon&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_health_&amp;lt;n&amp;gt;%` || Santé (ex : `18.0/20.0`)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| `ecurie.admin` || Accès aux commandes d&#039;administration `/ecurie` || op&lt;br /&gt;
|-&lt;br /&gt;
| `ecurie.use` || Interaction avec les PNJ et `/ecurie gui` || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (shadowed, pas de dépendance runtime)&lt;br /&gt;
* &#039;&#039;&#039;Compagnons fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le compagnon en box. Toute monte ou interaction est strictement bloquée. Spawné à côté du bloc de box (pas dessus).&lt;br /&gt;
* &#039;&#039;&#039;Affichage du nom&#039;&#039;&#039; : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent via un &#039;&#039;&#039;TextDisplay&#039;&#039;&#039; passager, nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Maître d&#039;Écurie&#039;&#039;&#039; : NPC Citizens permanent lié à l&#039;étable via `/ecurie stable setnpc`. Sert d&#039;interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Palefrenier&#039;&#039;&#039; : NPC Citizens temporaire spawné uniquement pendant l&#039;animation de départ ou d&#039;arrivée d&#039;un acheminement. Nom et skin configurables dans `groom` (config.yml).&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques ne peuvent aller que dans une écurie `AQUATIQUE`. Les familiers volants dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE` ou `STABLE`.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Le plugin stocke correctement l&#039;UUID du MyPet et s&#039;assure qu&#039;il est révoqué automatiquement pour éviter les doublons lors du stockage.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si compagnon déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; rapatriement depuis l&#039;écurie de destination ; animations de départ/arrivée via pathfinding ; attribution automatique de nom/skin pour les NPCs lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : API native Paper Dialog (1.21.6+) en interface par défaut, InventoryFramework en fallback. Choix joueur via `/ecurie gui` sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|-&lt;br /&gt;
| 1.3.0 || 2026-06-12 || Terminologie RP : &amp;quot;Mettre en pension&amp;quot;, &amp;quot;Acheminement&amp;quot;, &amp;quot;Compagnon&amp;quot; ; séparation Maître d&#039;Écurie (interface) / Palefrenier (animation) avec skins distincts ; TextDisplay remplace ArmorStand passager pour les noms en box ; correction spawn fantôme à côté du cauldron (non dessus).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin développé pour Nefald]]&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5776</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5776"/>
		<updated>2026-06-11T23:20:04Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ecurie =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Plugin PaperMC de gestion des chevaux RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs chevaux en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables, la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Dépendance !! Rôle !! Type&lt;br /&gt;
|-&lt;br /&gt;
| PaperMC 1.21.x || Serveur || Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| Vault || API économie || Optionnel (fallback si Banco absent)&lt;br /&gt;
|-&lt;br /&gt;
| Banco || Économie item-based (écus) || Optionnel (recommandé)&lt;br /&gt;
|-&lt;br /&gt;
| Citizens || NPCs d&#039;interface || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| PlaceholderAPI || Placeholders || Optionnel&lt;br /&gt;
|-&lt;br /&gt;
| MyPet || Détection familiers || Optionnel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== `config.yml` ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
database:&lt;br /&gt;
  file: &amp;quot;ecurie.db&amp;quot;          # Chemin relatif au dossier du plugin&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un transfert (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
&lt;br /&gt;
routes:&lt;br /&gt;
  on-road-speed: 0.35        # Vitesse cheval sur route (vanilla ≈ 0.225)&lt;br /&gt;
  enabled: false             # Routes RP (désactivé en V1)&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du cheval fantôme en box&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== `lang.yml` ===&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Commandes admin ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`&lt;br /&gt;
&lt;br /&gt;
=== Wand — sélection de région ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie wand [on|off]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Active/désactive le wand bâton. Clic gauche = point 1, clic droit = point 2. Utilisé pour scanner les boxes d&#039;une étable.&lt;br /&gt;
&lt;br /&gt;
=== Étables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie stable create &amp;lt;nom&amp;gt; [type]    — Crée l&#039;étable ET scanne automatiquement les boxes. Type: STABLE, TERRESTRE, AQUATIQUE, VOLIERE.&lt;br /&gt;
/ecurie stable delete &amp;lt;id&amp;gt;            — Supprime une étable&lt;br /&gt;
/ecurie stable setnpc &amp;lt;stable_id&amp;gt;     — Lie le NPC Citizens le plus proche (≤5 blocs) à l&#039;étable&lt;br /&gt;
/ecurie stable list                   — Liste toutes les étables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Boxes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie box list &amp;lt;stable_id&amp;gt;          — Liste les boxes d&#039;une étable&lt;br /&gt;
/ecurie box delete &amp;lt;box_id&amp;gt;           — Supprime une box&lt;br /&gt;
/ecurie show [on|off]                 — Affiche les boxes en surbrillance (particules colorées : vertes=libre, rouges=occupée)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Détection : chaque stalle doit contenir un bloc spécifique configuré dans `config.yml` (`box-blocks`). Par défaut :&lt;br /&gt;
* `STABLE` / `TERRESTRE` : &#039;&#039;&#039;WATER_CAULDRON&#039;&#039;&#039;&lt;br /&gt;
* `AQUATIQUE` : &#039;&#039;&#039;PRISMARINE&#039;&#039;&#039;&lt;br /&gt;
* `VOLIERE` : &#039;&#039;&#039;DAYLIGHT_DETECTOR&#039;&#039;&#039;&lt;br /&gt;
La commande `stable create` détecte automatiquement tous ces blocs dans la région wand et enregistre les boxes immédiatement.&lt;br /&gt;
=== Chevaux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie horse free &amp;lt;horse_id&amp;gt;         — Libère un cheval de la DB (urgence admin)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Divers ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie reload                        — Recharge config.yml et le cache ShowManager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Commandes joueurs ==&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.use` (true par défaut).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie gui [dialog|inventory]        — Change votre type d&#039;interface (persistant via PDC)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Workflow admin — Créer une étable ==&lt;br /&gt;
&lt;br /&gt;
=== Étapes ===&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Construire l&#039;étable&#039;&#039;&#039; — poser le bloc cible de la box (ex: `WATER_CAULDRON`, `PRISMARINE`) dans chaque stalle.&lt;br /&gt;
2. &#039;&#039;&#039;Activer le wand&#039;&#039;&#039; : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. &#039;&#039;&#039;Créer et scanner&#039;&#039;&#039; : `/ecurie stable create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées (selon le type `TERRESTRE`, `AQUATIQUE` ou `VOLIERE`).&lt;br /&gt;
4. &#039;&#039;&#039;(Optionnel) Lier un NPC&#039;&#039;&#039; : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie stable setnpc &amp;lt;stable_id&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
=== Visualiser les boxes ===&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show on&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Particules &#039;&#039;&#039;vertes&#039;&#039;&#039; = box libre&lt;br /&gt;
* Particules &#039;&#039;&#039;rouges&#039;&#039;&#039; = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/ecurie show off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Workflow joueur — Interagir avec une étable ==&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le NPC Citizens de l&#039;étable. Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (la préférence est persistante) :&lt;br /&gt;
* &#039;&#039;&#039;Dialog (par défaut)&#039;&#039;&#039; : Une fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
* &#039;&#039;&#039;Inventory&#039;&#039;&#039; : Un inventaire classique sous forme de coffre pour les habitués.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
=== Stocker un cheval ===&lt;br /&gt;
1. Amener le cheval à côté ou le monter&lt;br /&gt;
2. Cliquer &#039;&#039;&#039;Stocker mon cheval&#039;&#039;&#039; dans la GUI&lt;br /&gt;
3. &#039;&#039;&#039;Si le cheval n&#039;a pas de nom custom&#039;&#039;&#039; (nom &amp;quot;Horse&amp;quot; ou absent) → une enclume s&#039;ouvre pour nommer le cheval&lt;br /&gt;
4. &#039;&#039;&#039;Si le cheval a déjà un nom custom&#039;&#039;&#039; → stockage direct sans nommage&lt;br /&gt;
5. Coût : `price-in` de l&#039;étable en sols&lt;br /&gt;
&lt;br /&gt;
=== Récupérer un cheval ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Récupérer un cheval&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le cheval dans la liste&lt;br /&gt;
3. Coût : `price-out` de l&#039;étable&lt;br /&gt;
&lt;br /&gt;
=== Transférer ou Rapatrier un cheval ===&lt;br /&gt;
Le transfert peut être initié depuis l&#039;écurie de départ ou de destination :&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;origine (Transfert sortant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Transférer vers...&#039;&#039;&#039;, sélectionner le cheval, puis choisir l&#039;écurie de destination.&lt;br /&gt;
* &#039;&#039;&#039;Depuis l&#039;écurie d&#039;arrivée (Rapatriement entrant) :&#039;&#039;&#039; Cliquer &#039;&#039;&#039;Transférer vers...&#039;&#039;&#039;, le plugin liste vos chevaux situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement vers l&#039;écurie actuelle.&lt;br /&gt;
* &#039;&#039;&#039;Calcul de distance :&#039;&#039;&#039; Le délai de transfert et le coût en écus s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (délai/coût de base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
=== Renommer un cheval ===&lt;br /&gt;
1. Cliquer &#039;&#039;&#039;Renommer un cheval&#039;&#039;&#039;&lt;br /&gt;
2. Choisir le cheval dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `rename-price` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
=== Mes chevaux ===&lt;br /&gt;
Vue globale de tous les chevaux du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Placeholders (PlaceholderAPI) ==&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horses_count%` || Nombre de chevaux en pension du joueur&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_name_&amp;lt;n&amp;gt;%` || Nom du n-ième cheval (1-indexé, trié par nom)&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_stable_&amp;lt;n&amp;gt;%` || Nom de l&#039;étable du n-ième cheval&lt;br /&gt;
|-&lt;br /&gt;
| `%ecurie_horse_health_&amp;lt;n&amp;gt;%` || Santé (ex : `18.0/20.0`)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Permission !! Description !! Défaut&lt;br /&gt;
|-&lt;br /&gt;
| `ecurie.admin` || Accès aux commandes d&#039;administration `/ecurie` || op&lt;br /&gt;
|-&lt;br /&gt;
| `ecurie.use` || Interaction avec les PNJ et `/ecurie gui` || true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Notes techniques ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stockage&#039;&#039;&#039; : SQLite embarqué (shadowed, pas de dépendance runtime)&lt;br /&gt;
* &#039;&#039;&#039;Chevaux fantômes&#039;&#039;&#039; : entités invulnérables, sans gravité ni IA, représentant le cheval en box. Toute monte ou interaction (inventaire du cheval, etc.) est strictement bloquée pour des raisons de sécurité.&lt;br /&gt;
* &#039;&#039;&#039;Double étiquette de nom&#039;&#039;&#039; : Le nom du cheval (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent au-dessus du cheval en box grâce à un Armor Stand passager invisible (`Marker`), nettoyé automatiquement lors du despawn.&lt;br /&gt;
* &#039;&#039;&#039;Mort en box&#039;&#039;&#039; : perte définitive, slot libéré&lt;br /&gt;
* &#039;&#039;&#039;Banco&#039;&#039;&#039; : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
* &#039;&#039;&#039;Stockage universel&#039;&#039;&#039; : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers &#039;&#039;&#039;MyPet&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Typage des écuries (RPG)&#039;&#039;&#039; : Les familiers aquatiques (Dauphin, Calamar MyPet, etc.) ne peuvent aller que dans une écurie de type `AQUATIQUE`. Les familiers volants (Perroquet, Phantom, etc.) dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE`.&lt;br /&gt;
* &#039;&#039;&#039;MyPet&#039;&#039;&#039; : Ecurie stocke correctement le `UUID` du MyPet et s&#039;assure qu&#039;il est révoqué automatiquement pour éviter les doublons lors du stockage.&lt;br /&gt;
* &#039;&#039;&#039;Transferts&#039;&#039;&#039; : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Date !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.0 || 2026-05-15 || V1 : pension, récupération, transfert, GUI&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.1 || 2026-05-16 || PlaceholderAPI + garde MyPet&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.2 || 2026-05-18 || Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.3 || 2026-05-19 || Nommage : skip enclume si cheval déjà nommé au stockage ; fix renommage (slot résultat pré-rempli)&lt;br /&gt;
|-&lt;br /&gt;
| 1.0.4 || 2026-06-11 || Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; possibilité d&#039;initier un transfert (rapatriement) depuis l&#039;écurie de destination ; animations de départ et d&#039;arrivée des chevaux avec PNJ montés via pathfinding local ; attribution automatique de nom/skin configurables par défaut pour les NPCs d&#039;écurie lors du setnpc&lt;br /&gt;
|-&lt;br /&gt;
| 1.1.0 || 2026-06-11 || Support de tous les familiers montables et des MyPet, configuration des prix en jeu depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage wand configurables et validations RPG pour le stockage.&lt;br /&gt;
|-&lt;br /&gt;
| 1.2.0 || 2026-06-11 || Architecture GUI hybride : intégration de l&#039;API native Paper Dialog (1.21.6+) en interface par défaut, et maintien d&#039;InventoryFramework en fallback. Choix laissé aux joueurs via `/ecurie gui [dialog|inventory]` sauvegardé par PDC. Affichage ostensible des tarifs et gestion asynchrone sécurisée.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5775</id>
		<title>Plugin:Écurie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:%C3%89curie&amp;diff=5775"/>
		<updated>2026-06-11T23:17:36Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « # Ecurie  &amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;   &amp;lt;img src=&amp;quot;nanobanana-output/Ecurie_logo.png&amp;quot; alt=&amp;quot;Ecurie Logo&amp;quot; width=&amp;quot;300&amp;quot; /&amp;gt; &amp;lt;/p&amp;gt;  Plugin PaperMC de gestion des chevaux RP pour le serveur Nefald.  Permet aux joueurs de mettre leurs chevaux en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables, la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.  ---  ## Prérequis  | Dépendance | Rôle | Type | |---|--... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Ecurie&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;nanobanana-output/Ecurie_logo.png&amp;quot; alt=&amp;quot;Ecurie Logo&amp;quot; width=&amp;quot;300&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Plugin PaperMC de gestion des chevaux RP pour le serveur Nefald.&lt;br /&gt;
&lt;br /&gt;
Permet aux joueurs de mettre leurs chevaux en pension dans des étables gérées par des NPCs Citizens. Supporte les transferts inter-étables, la tarification en écus (Banco/Vault), et expose des placeholders PlaceholderAPI.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Prérequis&lt;br /&gt;
&lt;br /&gt;
| Dépendance | Rôle | Type |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| PaperMC 1.21.x | Serveur | Obligatoire |&lt;br /&gt;
| Vault | API économie | Optionnel (fallback si Banco absent) |&lt;br /&gt;
| Banco | Économie item-based (écus) | Optionnel (recommandé) |&lt;br /&gt;
| Citizens | NPCs d&#039;interface | Optionnel |&lt;br /&gt;
| PlaceholderAPI | Placeholders | Optionnel |&lt;br /&gt;
| MyPet | Détection familiers | Optionnel |&lt;br /&gt;
&lt;br /&gt;
Le plugin charge sans aucune de ces dépendances optionnelles.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Installation&lt;br /&gt;
&lt;br /&gt;
1. Déposer `Ecurie-&amp;lt;version&amp;gt;.jar` dans `plugins/`&lt;br /&gt;
2. Redémarrer le serveur&lt;br /&gt;
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`&lt;br /&gt;
4. Créer les étables via les commandes admin (voir ci-dessous)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Configuration&lt;br /&gt;
&lt;br /&gt;
### `config.yml`&lt;br /&gt;
&lt;br /&gt;
```yaml&lt;br /&gt;
database:&lt;br /&gt;
  file: &amp;quot;ecurie.db&amp;quot;          # Chemin relatif au dossier du plugin&lt;br /&gt;
&lt;br /&gt;
transfer:&lt;br /&gt;
  base-delay-seconds: 600    # Délai de base pour un transfert (10 min)&lt;br /&gt;
  delay-per-100-blocks: 30   # Délai additionnel par 100 blocs de distance&lt;br /&gt;
&lt;br /&gt;
routes:&lt;br /&gt;
  on-road-speed: 0.35        # Vitesse cheval sur route (vanilla ≈ 0.225)&lt;br /&gt;
  enabled: false             # Routes RP (désactivé en V1)&lt;br /&gt;
&lt;br /&gt;
phantom-horse:&lt;br /&gt;
  health: 20.0               # PV du cheval fantôme en box&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### `lang.yml`&lt;br /&gt;
&lt;br /&gt;
Tous les messages joueurs. Supporte les balises MiniMessage (`&amp;lt;red&amp;gt;`, `&amp;lt;gold&amp;gt;`, etc.).&lt;br /&gt;
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Commandes admin&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`&lt;br /&gt;
&lt;br /&gt;
### Wand — sélection de région&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie wand [on|off]&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Active/désactive le wand bâton. Clic gauche = point 1, clic droit = point 2. Utilisé pour scanner les boxes d&#039;une étable.&lt;br /&gt;
&lt;br /&gt;
### Étables&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie stable create &amp;lt;nom&amp;gt; [type]    — Crée l&#039;étable ET scanne automatiquement les boxes. Type: STABLE, TERRESTRE, AQUATIQUE, VOLIERE.&lt;br /&gt;
/ecurie stable delete &amp;lt;id&amp;gt;            — Supprime une étable&lt;br /&gt;
/ecurie stable setnpc &amp;lt;stable_id&amp;gt;     — Lie le NPC Citizens le plus proche (≤5 blocs) à l&#039;étable&lt;br /&gt;
/ecurie stable list                   — Liste toutes les étables&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Boxes&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie box list &amp;lt;stable_id&amp;gt;          — Liste les boxes d&#039;une étable&lt;br /&gt;
/ecurie box delete &amp;lt;box_id&amp;gt;           — Supprime une box&lt;br /&gt;
/ecurie show [on|off]                 — Affiche les boxes en surbrillance (particules colorées : vertes=libre, rouges=occupée)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Détection : chaque stalle doit contenir un bloc spécifique configuré dans `config.yml` (`box-blocks`). Par défaut :&lt;br /&gt;
- `STABLE` / `TERRESTRE` : **WATER_CAULDRON**&lt;br /&gt;
- `AQUATIQUE` : **PRISMARINE**&lt;br /&gt;
- `VOLIERE` : **DAYLIGHT_DETECTOR**&lt;br /&gt;
La commande `stable create` détecte automatiquement tous ces blocs dans la région wand et enregistre les boxes immédiatement.&lt;br /&gt;
### Chevaux&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie horse free &amp;lt;horse_id&amp;gt;         — Libère un cheval de la DB (urgence admin)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### Divers&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie reload                        — Recharge config.yml et le cache ShowManager&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Commandes joueurs&lt;br /&gt;
&lt;br /&gt;
Permission requise : `ecurie.use` (true par défaut).&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
/ecurie gui [dialog|inventory]        — Change votre type d&#039;interface (persistant via PDC)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Workflow admin — Créer une étable&lt;br /&gt;
&lt;br /&gt;
### Étapes&lt;br /&gt;
&lt;br /&gt;
1. **Construire l&#039;étable** — poser le bloc cible de la box (ex: `WATER_CAULDRON`, `PRISMARINE`) dans chaque stalle.&lt;br /&gt;
2. **Activer le wand** : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région&lt;br /&gt;
3. **Créer et scanner** : `/ecurie stable create &amp;lt;nom&amp;gt; [type]` — crée l&#039;étable ET enregistre automatiquement les boxes détectées (selon le type `TERRESTRE`, `AQUATIQUE` ou `VOLIERE`).&lt;br /&gt;
4. **(Optionnel) Lier un NPC** : placer un Citizens devant l&#039;étable, s&#039;en approcher à &amp;lt; 5 blocs : `/ecurie stable setnpc &amp;lt;stable_id&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
### Visualiser les boxes&lt;br /&gt;
&lt;br /&gt;
Après création, afficher les boxes avec particules colorées :&lt;br /&gt;
```&lt;br /&gt;
/ecurie show on&lt;br /&gt;
```&lt;br /&gt;
- Particules **vertes** = box libre&lt;br /&gt;
- Particules **rouges** = box occupée&lt;br /&gt;
&lt;br /&gt;
Désactiver l&#039;affichage :&lt;br /&gt;
```&lt;br /&gt;
/ecurie show off&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Workflow joueur — Interagir avec une étable&lt;br /&gt;
&lt;br /&gt;
Le joueur interagit via clic droit sur le NPC Citizens de l&#039;étable. Le plugin propose deux types d&#039;interfaces, configurables librement par chaque joueur (la préférence est persistante) :&lt;br /&gt;
- **Dialog (par défaut)** : Une fenêtre de dialogue textuelle native (Paper 1.21.6+). Immersif et orienté RPG.&lt;br /&gt;
- **Inventory** : Un inventaire classique sous forme de coffre pour les habitués.&lt;br /&gt;
&lt;br /&gt;
Une GUI s&#039;ouvre avec les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
### Stocker un cheval&lt;br /&gt;
1. Amener le cheval à côté ou le monter&lt;br /&gt;
2. Cliquer **Stocker mon cheval** dans la GUI&lt;br /&gt;
3. **Si le cheval n&#039;a pas de nom custom** (nom &amp;quot;Horse&amp;quot; ou absent) → une enclume s&#039;ouvre pour nommer le cheval&lt;br /&gt;
4. **Si le cheval a déjà un nom custom** → stockage direct sans nommage&lt;br /&gt;
5. Coût : `price-in` de l&#039;étable en sols&lt;br /&gt;
&lt;br /&gt;
### Récupérer un cheval&lt;br /&gt;
1. Cliquer **Récupérer un cheval**&lt;br /&gt;
2. Choisir le cheval dans la liste&lt;br /&gt;
3. Coût : `price-out` de l&#039;étable&lt;br /&gt;
&lt;br /&gt;
### Transférer ou Rapatrier un cheval&lt;br /&gt;
Le transfert peut être initié depuis l&#039;écurie de départ ou de destination :&lt;br /&gt;
- **Depuis l&#039;écurie d&#039;origine (Transfert sortant) :** Cliquer **Transférer vers...**, sélectionner le cheval, puis choisir l&#039;écurie de destination.&lt;br /&gt;
- **Depuis l&#039;écurie d&#039;arrivée (Rapatriement entrant) :** Cliquer **Transférer vers...**, le plugin liste vos chevaux situés dans d&#039;autres étables. Cliquer sur l&#039;un d&#039;eux lance directement le rapatriement vers l&#039;écurie actuelle.&lt;br /&gt;
- **Calcul de distance :** Le délai de transfert et le coût en écus s&#039;ajustent dynamiquement selon la distance réelle (calculée en blocs 3D) entre les deux étables (délai/coût de base + ajustement par tranche de 100 blocs).&lt;br /&gt;
&lt;br /&gt;
### Renommer un cheval&lt;br /&gt;
1. Cliquer **Renommer un cheval**&lt;br /&gt;
2. Choisir le cheval dans la liste&lt;br /&gt;
3. Une enclume s&#039;ouvre pré-remplie avec le nom actuel — modifier ou confirmer&lt;br /&gt;
4. Coût : `rename-price` en sols (défaut 50)&lt;br /&gt;
&lt;br /&gt;
### Mes chevaux&lt;br /&gt;
Vue globale de tous les chevaux du joueur, toutes étables confondues.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Placeholders (PlaceholderAPI)&lt;br /&gt;
&lt;br /&gt;
Requiert PlaceholderAPI installé.&lt;br /&gt;
&lt;br /&gt;
| Placeholder | Valeur |&lt;br /&gt;
|---|---|&lt;br /&gt;
| `%ecurie_horses_count%` | Nombre de chevaux en pension du joueur |&lt;br /&gt;
| `%ecurie_horse_name_&amp;lt;n&amp;gt;%` | Nom du n-ième cheval (1-indexé, trié par nom) |&lt;br /&gt;
| `%ecurie_horse_stable_&amp;lt;n&amp;gt;%` | Nom de l&#039;étable du n-ième cheval |&lt;br /&gt;
| `%ecurie_horse_health_&amp;lt;n&amp;gt;%` | Santé (ex : `18.0/20.0`) |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Permissions&lt;br /&gt;
&lt;br /&gt;
| Permission | Description | Défaut |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| `ecurie.admin` | Accès aux commandes d&#039;administration `/ecurie` | op |&lt;br /&gt;
| `ecurie.use` | Interaction avec les PNJ et `/ecurie gui` | true |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Notes techniques&lt;br /&gt;
&lt;br /&gt;
- **Stockage** : SQLite embarqué (shadowed, pas de dépendance runtime)&lt;br /&gt;
- **Chevaux fantômes** : entités invulnérables, sans gravité ni IA, représentant le cheval en box. Toute monte ou interaction (inventaire du cheval, etc.) est strictement bloquée pour des raisons de sécurité.&lt;br /&gt;
- **Double étiquette de nom** : Le nom du cheval (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s&#039;affichent au-dessus du cheval en box grâce à un Armor Stand passager invisible (`Marker`), nettoyé automatiquement lors du despawn.&lt;br /&gt;
- **Mort en box** : perte définitive, slot libéré&lt;br /&gt;
- **Banco** : intégré par réflexion pure (aucun jar requis à la compilation)&lt;br /&gt;
- **Stockage universel** : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers **MyPet**.&lt;br /&gt;
- **Typage des écuries (RPG)** : Les familiers aquatiques (Dauphin, Calamar MyPet, etc.) ne peuvent aller que dans une écurie de type `AQUATIQUE`. Les familiers volants (Perroquet, Phantom, etc.) dans une `VOLIERE`. Les familiers terrestres dans une `TERRESTRE`.&lt;br /&gt;
- **MyPet** : Ecurie stocke correctement le `UUID` du MyPet et s&#039;assure qu&#039;il est révoqué automatiquement pour éviter les doublons lors du stockage.&lt;br /&gt;
- **Transferts** : vérifiés toutes les 10 secondes en async&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Build&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
./gradlew shadowJar&lt;br /&gt;
# Sortie : build/libs/Ecurie-&amp;lt;version&amp;gt;.jar&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Requiert Java 21. La compilation locale sous Java 26+ peut échouer (incompatibilité Groovy/ASM) — utiliser la CI GitLab.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Changelog&lt;br /&gt;
&lt;br /&gt;
| Version | Date | Notes |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| 1.0.0 | 2026-05-15 | V1 : pension, récupération, transfert, GUI |&lt;br /&gt;
| 1.0.1 | 2026-05-16 | PlaceholderAPI + garde MyPet |&lt;br /&gt;
| 1.0.2 | 2026-05-18 | Détection boxes : WATER_CAULDRON remplace HAY_BLOCK+Sign, scan+création fusionnés en une commande |&lt;br /&gt;
| 1.0.3 | 2026-05-19 | Nommage : skip enclume si cheval déjà nommé au stockage ; fix renommage (slot résultat pré-rempli) |&lt;br /&gt;
| 1.0.4 | 2026-06-11 | Fix validation renommage ; noms fantômes 2 lignes (ArmorStand passager) ; blocage monte ; correction calcul distance transferts ; possibilité d&#039;initier un transfert (rapatriement) depuis l&#039;écurie de destination ; animations de départ et d&#039;arrivée des chevaux avec PNJ montés via pathfinding local ; attribution automatique de nom/skin configurables par défaut pour les NPCs d&#039;écurie lors du setnpc |&lt;br /&gt;
| 1.1.0 | 2026-06-11 | Support de tous les familiers montables et des MyPet, configuration des prix en jeu depuis config.yml, ajout des types d&#039;écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage wand configurables et validations RPG pour le stockage. |&lt;br /&gt;
| 1.2.0 | 2026-06-11 | Architecture GUI hybride : intégration de l&#039;API native Paper Dialog (1.21.6+) en interface par défaut, et maintien d&#039;InventoryFramework en fallback. Choix laissé aux joueurs via `/ecurie gui [dialog|inventory]` sauvegardé par PDC. Affichage ostensible des tarifs et gestion asynchrone sécurisée. |&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5774</id>
		<title>Grades</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5774"/>
		<updated>2026-06-06T05:49:49Z</updated>

		<summary type="html">&lt;p&gt;Hiob : lien&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Les différents grades jouables dans notre communauté.}}&lt;br /&gt;
&lt;br /&gt;
== Général ==&lt;br /&gt;
=== Maraud ===&lt;br /&gt;
[[Fichier:Maraud grade.png|right|200px]]&lt;br /&gt;
Le grade maraud est le grade par défaut, octroyé à tout visiteur. Ils ne peuvent faire que peu de chose sur notre serveur, mis à part parler et visiter.&lt;br /&gt;
{{Article détaillé|Maraud}}&lt;br /&gt;
&lt;br /&gt;
=== Pérégrin ===&lt;br /&gt;
[[Fichier:Peregrin grade.png|right|200px]]Les pérégrins sont à la base de la communauté de Nefald, notre serveur ne pourrait pas exister sans eux. Les pérégrins méritants peuvent obtenir la distinction de Contremaître, signalée par un préfixe spécial.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Pérégrin}}&lt;br /&gt;
&lt;br /&gt;
== Construction ==&lt;br /&gt;
=== Bâtisseur ===&lt;br /&gt;
[[Fichier:Batisseur grade.png|right|200px]]&lt;br /&gt;
Plus proches des architectes, chargés de diriger les contremaîtres sur le chantier, les bâtisseurs ont exactement les mêmes accès que leurs ouvriers, à l&#039;exception du gamemode qui leur permet de se donner du matériel de construction. Ils ont accès au GM1 et donc à des ressources illimitées et peuvent voler.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce grade est réservé aux pérégrins ayant fait leurs preuves en construction et gestion de projet. Les bâtisseurs restent sous la direction de l&#039;Architecte.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Bâtisseur}}&lt;br /&gt;
&lt;br /&gt;
=== Architecte ===&lt;br /&gt;
[[Fichier:Architecte grade.png|right|200px]]&lt;br /&gt;
Les &#039;&#039;&#039;Architectes&#039;&#039;&#039; sont les grands bâtisseurs du Nefald. Ils ont pour mission de bâtir les grandes villes sur le serveur et d&#039;entretenir les infrastructures existantes.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils dirigent la branche Construction et sont nommés parmi les Bâtisseurs par le Conseil.&lt;br /&gt;
Ils ont accès à [[WorldGuard]] et [[WorldEdit]] en leurs entiers, ainsi qu&#039;à nombre d&#039;autres plugins.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Architecte}}&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
=== Ménestrel ===&lt;br /&gt;
[[Fichier:Menestrel grade.png|right|200px]]&lt;br /&gt;
Les ménestrels sont les animateurs de Nefald. Ils peuvent s&#039;orienter en trois activités :&amp;lt;br /&amp;gt;&lt;br /&gt;
- L&#039;événementiel : ils créent des évènements pour divertir les joueurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le RolePlay : ils créent du contenu RP et des quêtes.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le développement : ils créent du contenu via les scripts et codes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les ménestrels disposent du /broadcast leur permettant de passer des annonces sur le chat. Ils sont la base de l&#039;animation et sont accessibles par candidature.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Ménestrel}}&lt;br /&gt;
&lt;br /&gt;
=== Scribe ===&lt;br /&gt;
[[Fichier:Scribe grade.png|right|200px]]&lt;br /&gt;
Les Scribes sont les dépositaires de notre histoire au travers de ses légendes. Ils rédigent le RolePlay et organisent des événements en conséquence, coordonnent les ménestrels.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils sont choisis pour leurs connaissances du RP, leurs talents événementiels et leurs capacités à diriger l&#039;équipe.&lt;br /&gt;
Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|Scribe}}&lt;br /&gt;
&lt;br /&gt;
== Modération ==&lt;br /&gt;
=== Aspirant ===&lt;br /&gt;
[[Fichier:Aspirant grade.png|right|200px]]&lt;br /&gt;
Le grade Aspirant est un passage obligatoire dans l&#039;accès au grade Officier. Quiconque souhaite devenir Officier doit d&#039;abord postuler au grade Aspirant et y faire ses preuves.&lt;br /&gt;
Les Aspirants guident les marauds et pérégrins, leur permettent de résoudre les problèmes auxquels ils sont confrontés, et modèrent tout comportement indésirable. Ils ont pour cela accès à toutes les commandes nécessaires.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Aspirant}}&lt;br /&gt;
&lt;br /&gt;
=== Officier ===&lt;br /&gt;
[[Fichier:Officier grade.png|right|200px]]&lt;br /&gt;
Les Officiers sont là pour protéger les joueurs et font figure d&#039;autorité en cas de conflit ou de manquement aux règles.&lt;br /&gt;
&lt;br /&gt;
Ils ont quasiment les mêmes fonctions que les Intendants : venir en aide aux joueurs et protéger le serveur. C&#039;est principalement du maintien de l&#039;ordre. Ils sont les bras droits des Intendants et font respecter les règles de manière impartiale.&lt;br /&gt;
Ils peuvent bannir, kicker ou mettre en prison les joueurs.&lt;br /&gt;
Ils sont nommés parmi les Aspirants par les Intendants.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Officier}}&lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
=== Scriptomancien ===&lt;br /&gt;
[[Fichier:Scriptomancien grade.png|right|200px]]&lt;br /&gt;
Les Scriptomanciens sont les développeurs de Nefald.&lt;br /&gt;
Ils ont pour mission l&#039;entretien et la création de plugins pour la communauté. Ils sont aussi aptes à développer des scripts Denizen/Campaign/etc.&lt;br /&gt;
Selon leurs connaissances, ils pourront être amenés à participer au bon fonctionnement des sites web et du serveur.&lt;br /&gt;
Ils travaillent main dans la main avec les Scribes dans le cercle de l&#039;Animation. Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
=== Intendant ===&lt;br /&gt;
[[Fichier:Intendant grade.png|right|200px]]&lt;br /&gt;
Un dernier grade, et non des moindres, est celui d&#039;&#039;&#039;&#039;Intendant&#039;&#039;&#039;. Les Intendants sont les administrateurs du serveur, ont toutes les capacités en jeu, mais assument surtout la lourde responsabilité de présider le &#039;&#039;&#039;Conseil&#039;&#039;&#039;, réunissant l&#039;ensemble de l&#039;équipe, afin de prendre des décisions concernant l&#039;avenir de la communauté. On ne postule pas pour devenir Intendant : on est nommé par les Intendants eux-mêmes.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|Intendant}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prérequis ===&lt;br /&gt;
Tous les grades non membres du Conseil ne peuvent être convoités qu&#039;à la condition d&#039;avoir trois semaines d&#039;ancienneté en tant que pérégrin.&lt;br /&gt;
&lt;br /&gt;
Pour les grades du Conseil, trois mois d&#039;ancienneté minimum sont demandés.&lt;br /&gt;
&lt;br /&gt;
;Cumul des grades&lt;br /&gt;
* Il est possible, sur demande particulière d&#039;un membre déjà gradé, d&#039;envisager un cumul de grades dans des branches différentes. (Par exemple, un Aspirant peut demander à rejoindre les rangs des Bâtisseurs.)&lt;br /&gt;
&lt;br /&gt;
== À propos du Conseil ==&lt;br /&gt;
;Sont uniquement considérés comme faisant partie du Conseil :&lt;br /&gt;
Les [[Scribe]]s, les [[Scriptomancien]]s, les [[Officier]]s, les [[Architecte]]s et les [[Intendant]]s.&amp;lt;br/&amp;gt;Ces grades ne sont accessibles que sur nomination des Intendants.&lt;br /&gt;
C&#039;est en priorité à eux que vous devrez vous adresser en cas de besoin, faisant autorité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Devenir membre du Conseil sur Nefald, c&#039;est (presque) comme rentrer en religion ; on devient membre dans le seul et unique but de servir la communauté sur quatre points distincts : &#039;&#039;&#039;l&#039;animation&#039;&#039;&#039;, &#039;&#039;&#039;la construction&#039;&#039;&#039;, &#039;&#039;&#039;la modération&#039;&#039;&#039; et &#039;&#039;&#039;l&#039;administration&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br /&amp;gt;À chacun son rôle et ses spécificités. Nous attendrons d&#039;un Officier calme et impartialité, d&#039;un Scribe et d&#039;un Scriptomancien une créativité à toute épreuve, d&#039;un Architecte un talent certain pour la construction et d&#039;un Intendant une réflexion claire et une certaine objectivité.&lt;br /&gt;
&lt;br /&gt;
=== L&#039;Agora ===&lt;br /&gt;
D&#039;autres grades, sans faire partie du Conseil, font figure de relais entre celui-ci et les autres joueurs. Ils sont régulièrement consultés lors des prises de décision.&lt;br /&gt;
&lt;br /&gt;
Les grades ayant ces qualités sont ceux de [[Bâtisseur]], de [[Ménestrel]] et d&#039;[[Aspirant]].&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:flowchart TD&lt;br /&gt;
  %% --- Base ---&lt;br /&gt;
  subgraph Base&lt;br /&gt;
    Maraud[&amp;quot;Maraud&amp;quot;]&lt;br /&gt;
    Pelerin[&amp;quot;Pérégrin&amp;quot;]&lt;br /&gt;
    Maraud --&amp;gt; Pelerin&lt;br /&gt;
    Pelerin -. distinction .-&amp;gt; Contremaitre[&amp;quot;Contremaître ✦&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Branches ---&lt;br /&gt;
  subgraph Construction&lt;br /&gt;
    Batisseur[&amp;quot;Bâtisseur&amp;quot;] --&amp;gt; Architecte[&amp;quot;Architecte&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Animation&lt;br /&gt;
    Menestrel[&amp;quot;Ménestrel&amp;quot;] --&amp;gt; Scribe[&amp;quot;Scribe&amp;quot;]&lt;br /&gt;
    Menestrel -. nomination .-&amp;gt; Scriptomancien[&amp;quot;Scriptomancien&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Moderation[&amp;quot;Modération&amp;quot;]&lt;br /&gt;
    Aspirant[&amp;quot;Aspirant&amp;quot;] --&amp;gt; Officier[&amp;quot;Officier&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Administration&lt;br /&gt;
    Intendant[&amp;quot;Intendant&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Entrées en branches depuis Pérégrin ---&lt;br /&gt;
  Pelerin --&amp;gt; Batisseur&lt;br /&gt;
  Pelerin --&amp;gt; Menestrel&lt;br /&gt;
  Pelerin --&amp;gt; Aspirant&lt;br /&gt;
&lt;br /&gt;
  %% --- Nominations vers l&#039;Administration ---&lt;br /&gt;
  Scribe -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Scriptomancien -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Architecte -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Officier -. nomination .-&amp;gt; Intendant&lt;br /&gt;
&lt;br /&gt;
  %% --- Styles ---&lt;br /&gt;
  classDef council fill:#d1f7c4,stroke:#2b8a3e,stroke-width:1px,color:#0b3d1b;&lt;br /&gt;
  classDef agora fill:#fff3bf,stroke:#f59f00,stroke-width:1px,color:#7a4b00;&lt;br /&gt;
  classDef base fill:#e7f5ff,stroke:#1c7ed6,stroke-width:1px,color:#0b2e59;&lt;br /&gt;
&lt;br /&gt;
  class Scribe,Scriptomancien,Architecte,Officier,Intendant council;&lt;br /&gt;
  class Menestrel,Batisseur,Aspirant agora;&lt;br /&gt;
  class Maraud,Pelerin,Contremaitre base;&lt;br /&gt;
&lt;br /&gt;
  subgraph Legende[ ]&lt;br /&gt;
    leg1[Conseil]:::council&lt;br /&gt;
    leg2[Agora — relais]:::agora&lt;br /&gt;
    leg3[Grades de base]:::base&lt;br /&gt;
  end&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Édit de l&#039;Intendance]]&lt;br /&gt;
[[Catégorie:Guide]]&lt;br /&gt;
[[Catégorie:Grade]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5773</id>
		<title>Grades</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5773"/>
		<updated>2026-06-05T21:22:35Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Réorganisation grades : Contremaître en distinction, Scriptomancien → Administration (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Les différents grades jouables dans notre communauté.}}&lt;br /&gt;
&lt;br /&gt;
== Général ==&lt;br /&gt;
=== Maraud ===&lt;br /&gt;
[[Fichier:Maraud grade.png|right|200px]]&lt;br /&gt;
Le grade maraud est le grade par défaut, octroyé à tout visiteur. Ils ne peuvent faire que peu de chose sur notre serveur, mis à part parler et visiter.&lt;br /&gt;
{{Article détaillé|[[Maraud]]}}&lt;br /&gt;
&lt;br /&gt;
=== Pérégrin ===&lt;br /&gt;
[[Fichier:Peregrin grade.png|right|200px]]Les pérégrins sont à la base de la communauté de Nefald, notre serveur ne pourrait pas exister sans eux. Les pérégrins méritants peuvent obtenir la distinction de Contremaître, signalée par un préfixe spécial.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Pérégrin]]}}&lt;br /&gt;
&lt;br /&gt;
== Construction ==&lt;br /&gt;
=== Bâtisseur ===&lt;br /&gt;
[[Fichier:Batisseur grade.png|right|200px]]&lt;br /&gt;
Plus proches des architectes, chargés de diriger les contremaîtres sur le chantier, les bâtisseurs ont exactement les mêmes accès que leurs ouvriers, à l&#039;exception du gamemode qui leur permet de se donner du matériel de construction. Ils ont accès au GM1 et donc à des ressources illimitées et peuvent voler.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce grade est réservé aux pérégrins ayant fait leurs preuves en construction et gestion de projet. Les bâtisseurs restent sous la direction de l&#039;Architecte.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Bâtisseur]]}}&lt;br /&gt;
&lt;br /&gt;
=== Architecte ===&lt;br /&gt;
[[Fichier:Architecte grade.png|right|200px]]&lt;br /&gt;
Les &#039;&#039;&#039;Architectes&#039;&#039;&#039; sont les grands bâtisseurs du Nefald. Ils ont pour mission de bâtir les grandes villes sur le serveur et d&#039;entretenir les infrastructures existantes.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils dirigent la branche Construction et sont nommés parmi les Bâtisseurs par le Conseil.&lt;br /&gt;
Ils ont accès à [[WorldGuard]] et [[WorldEdit]] en leurs entiers, ainsi qu&#039;à nombre d&#039;autres plugins.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Architecte]]}}&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
=== Ménestrel ===&lt;br /&gt;
[[Fichier:Menestrel grade.png|right|200px]]&lt;br /&gt;
Les ménestrels sont les animateurs de Nefald. Ils peuvent s&#039;orienter en trois activités :&amp;lt;br /&amp;gt;&lt;br /&gt;
- L&#039;événementiel : ils créent des évènements pour divertir les joueurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le RolePlay : ils créent du contenu RP et des quêtes.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le développement : ils créent du contenu via les scripts et codes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les ménestrels disposent du /broadcast leur permettant de passer des annonces sur le chat. Ils sont la base de l&#039;animation et sont accessibles par candidature.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Ménestrel]]}}&lt;br /&gt;
&lt;br /&gt;
=== Scribe ===&lt;br /&gt;
[[Fichier:Scribe grade.png|right|200px]]&lt;br /&gt;
Les Scribes sont les dépositaires de notre histoire au travers de ses légendes. Ils rédigent le RolePlay et organisent des événements en conséquence, coordonnent les ménestrels.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils sont choisis pour leurs connaissances du RP, leurs talents événementiels et leurs capacités à diriger l&#039;équipe.&lt;br /&gt;
Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|[[Scribe]]}}&lt;br /&gt;
&lt;br /&gt;
== Modération ==&lt;br /&gt;
=== Aspirant ===&lt;br /&gt;
[[Fichier:Aspirant grade.png|right|200px]]&lt;br /&gt;
Le grade Aspirant est un passage obligatoire dans l&#039;accès au grade Officier. Quiconque souhaite devenir Officier doit d&#039;abord postuler au grade Aspirant et y faire ses preuves.&lt;br /&gt;
Les Aspirants guident les marauds et pérégrins, leur permettent de résoudre les problèmes auxquels ils sont confrontés, et modèrent tout comportement indésirable. Ils ont pour cela accès à toutes les commandes nécessaires.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Aspirant]]}}&lt;br /&gt;
&lt;br /&gt;
=== Officier ===&lt;br /&gt;
[[Fichier:Officier grade.png|right|200px]]&lt;br /&gt;
Les Officiers sont là pour protéger les joueurs et font figure d&#039;autorité en cas de conflit ou de manquement aux règles.&lt;br /&gt;
&lt;br /&gt;
Ils ont quasiment les mêmes fonctions que les Intendants : venir en aide aux joueurs et protéger le serveur. C&#039;est principalement du maintien de l&#039;ordre. Ils sont les bras droits des Intendants et font respecter les règles de manière impartiale.&lt;br /&gt;
Ils peuvent bannir, kicker ou mettre en prison les joueurs.&lt;br /&gt;
Ils sont nommés parmi les Aspirants par les Intendants.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Officier]]}}&lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
=== Scriptomancien ===&lt;br /&gt;
[[Fichier:Scriptomancien grade.png|right|200px]]&lt;br /&gt;
Les Scriptomanciens sont les développeurs de Nefald.&lt;br /&gt;
Ils ont pour mission l&#039;entretien et la création de plugins pour la communauté. Ils sont aussi aptes à développer des scripts Denizen/Campaign/etc.&lt;br /&gt;
Selon leurs connaissances, ils pourront être amenés à participer au bon fonctionnement des sites web et du serveur.&lt;br /&gt;
Ils travaillent main dans la main avec les Scribes dans le cercle de l&#039;Animation. Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|[[Scriptomancien]]}}&lt;br /&gt;
&lt;br /&gt;
=== Intendant ===&lt;br /&gt;
[[Fichier:Intendant grade.png|right|200px]]&lt;br /&gt;
Un dernier grade, et non des moindres, est celui d&#039;&#039;&#039;&#039;Intendant&#039;&#039;&#039;. Les Intendants sont les administrateurs du serveur, ont toutes les capacités en jeu, mais assument surtout la lourde responsabilité de présider le &#039;&#039;&#039;Conseil&#039;&#039;&#039;, réunissant l&#039;ensemble de l&#039;équipe, afin de prendre des décisions concernant l&#039;avenir de la communauté. On ne postule pas pour devenir Intendant : on est nommé par les Intendants eux-mêmes.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Intendant]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prérequis ===&lt;br /&gt;
Tous les grades non membres du Conseil ne peuvent être convoités qu&#039;à la condition d&#039;avoir trois semaines d&#039;ancienneté en tant que pérégrin.&lt;br /&gt;
&lt;br /&gt;
Pour les grades du Conseil, trois mois d&#039;ancienneté minimum sont demandés.&lt;br /&gt;
&lt;br /&gt;
;Cumul des grades&lt;br /&gt;
* Il est possible, sur demande particulière d&#039;un membre déjà gradé, d&#039;envisager un cumul de grades dans des branches différentes. (Par exemple, un Aspirant peut demander à rejoindre les rangs des Bâtisseurs.)&lt;br /&gt;
&lt;br /&gt;
== À propos du Conseil ==&lt;br /&gt;
;Sont uniquement considérés comme faisant partie du Conseil :&lt;br /&gt;
Les [[Scribe]]s, les [[Scriptomancien]]s, les [[Officier]]s, les [[Architecte]]s et les [[Intendant]]s.&amp;lt;br/&amp;gt;Ces grades ne sont accessibles que sur nomination des Intendants.&lt;br /&gt;
C&#039;est en priorité à eux que vous devrez vous adresser en cas de besoin, faisant autorité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Devenir membre du Conseil sur Nefald, c&#039;est (presque) comme rentrer en religion ; on devient membre dans le seul et unique but de servir la communauté sur quatre points distincts : &#039;&#039;&#039;l&#039;animation&#039;&#039;&#039;, &#039;&#039;&#039;la construction&#039;&#039;&#039;, &#039;&#039;&#039;la modération&#039;&#039;&#039; et &#039;&#039;&#039;l&#039;administration&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br /&amp;gt;À chacun son rôle et ses spécificités. Nous attendrons d&#039;un Officier calme et impartialité, d&#039;un Scribe et d&#039;un Scriptomancien une créativité à toute épreuve, d&#039;un Architecte un talent certain pour la construction et d&#039;un Intendant une réflexion claire et une certaine objectivité.&lt;br /&gt;
&lt;br /&gt;
=== L&#039;Agora ===&lt;br /&gt;
D&#039;autres grades, sans faire partie du Conseil, font figure de relais entre celui-ci et les autres joueurs. Ils sont régulièrement consultés lors des prises de décision.&lt;br /&gt;
&lt;br /&gt;
Les grades ayant ces qualités sont ceux de [[Bâtisseur]], de [[Ménestrel]] et d&#039;[[Aspirant]].&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:flowchart TD&lt;br /&gt;
  %% --- Base ---&lt;br /&gt;
  subgraph Base&lt;br /&gt;
    Maraud[&amp;quot;Maraud&amp;quot;]&lt;br /&gt;
    Pelerin[&amp;quot;Pérégrin&amp;quot;]&lt;br /&gt;
    Maraud --&amp;gt; Pelerin&lt;br /&gt;
    Pelerin -. distinction .-&amp;gt; Contremaitre[&amp;quot;Contremaître ✦&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Branches ---&lt;br /&gt;
  subgraph Construction&lt;br /&gt;
    Batisseur[&amp;quot;Bâtisseur&amp;quot;] --&amp;gt; Architecte[&amp;quot;Architecte&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Animation&lt;br /&gt;
    Menestrel[&amp;quot;Ménestrel&amp;quot;] --&amp;gt; Scribe[&amp;quot;Scribe&amp;quot;]&lt;br /&gt;
    Menestrel -. nomination .-&amp;gt; Scriptomancien[&amp;quot;Scriptomancien&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Moderation[&amp;quot;Modération&amp;quot;]&lt;br /&gt;
    Aspirant[&amp;quot;Aspirant&amp;quot;] --&amp;gt; Officier[&amp;quot;Officier&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Administration&lt;br /&gt;
    Intendant[&amp;quot;Intendant&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Entrées en branches depuis Pérégrin ---&lt;br /&gt;
  Pelerin --&amp;gt; Batisseur&lt;br /&gt;
  Pelerin --&amp;gt; Menestrel&lt;br /&gt;
  Pelerin --&amp;gt; Aspirant&lt;br /&gt;
&lt;br /&gt;
  %% --- Nominations vers l&#039;Administration ---&lt;br /&gt;
  Scribe -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Scriptomancien -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Architecte -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Officier -. nomination .-&amp;gt; Intendant&lt;br /&gt;
&lt;br /&gt;
  %% --- Styles ---&lt;br /&gt;
  classDef council fill:#d1f7c4,stroke:#2b8a3e,stroke-width:1px,color:#0b3d1b;&lt;br /&gt;
  classDef agora fill:#fff3bf,stroke:#f59f00,stroke-width:1px,color:#7a4b00;&lt;br /&gt;
  classDef base fill:#e7f5ff,stroke:#1c7ed6,stroke-width:1px,color:#0b2e59;&lt;br /&gt;
&lt;br /&gt;
  class Scribe,Scriptomancien,Architecte,Officier,Intendant council;&lt;br /&gt;
  class Menestrel,Batisseur,Aspirant agora;&lt;br /&gt;
  class Maraud,Pelerin,Contremaitre base;&lt;br /&gt;
&lt;br /&gt;
  subgraph Legende[ ]&lt;br /&gt;
    leg1[Conseil]:::council&lt;br /&gt;
    leg2[Agora — relais]:::agora&lt;br /&gt;
    leg3[Grades de base]:::base&lt;br /&gt;
  end&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Édit de l&#039;Intendance]]&lt;br /&gt;
[[Catégorie:Guide]]&lt;br /&gt;
[[Catégorie:Grade]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5770</id>
		<title>Grades</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Grades&amp;diff=5770"/>
		<updated>2026-06-02T21:12:34Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Simplification : suppression Machiniste (incomplet), Contremaître reclassé en distinction optionnelle, candidatures archivées (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Les différents grades jouables dans notre communauté.}}&lt;br /&gt;
&lt;br /&gt;
== Général ==&lt;br /&gt;
=== Maraud ===&lt;br /&gt;
[[Fichier:Maraud grade.png|right|200px]]&lt;br /&gt;
Le grade maraud est le grade par défaut, octroyé à tout visiteur. Ils ne peuvent faire que peu de chose sur notre serveur, mis à part parler et visiter.&lt;br /&gt;
{{Article détaillé|[[Maraud]]}}&lt;br /&gt;
&lt;br /&gt;
=== Pérégrin ===&lt;br /&gt;
[[Fichier:Peregrin grade.png|right|200px]]Les pérégrins sont à la base de la communauté de Nefald, notre serveur ne pourrait pas exister sans eux.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Pérégrin]]}}&lt;br /&gt;
&lt;br /&gt;
=== Contremaître ===&lt;br /&gt;
[[Fichier:Contremaitre grade.png|right|200px]]&lt;br /&gt;
Le Contremaître n&#039;est pas un grade de branche à proprement parler, mais une distinction accordée à des pérégrins prometteurs. Elle donne accès à la boussole magique (téléportation) et signale un engagement sérieux dans la Construction ou l&#039;Animation. L&#039;entrée dans une branche reste ouverte à tout pérégrin ; le titre de Contremaître est un signe de confiance supplémentaire, pas un prérequis.&lt;br /&gt;
{{Article détaillé|[[Contremaître]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Construction ==&lt;br /&gt;
=== Bâtisseur ===&lt;br /&gt;
[[Fichier:Batisseur grade.png|right|200px]]&lt;br /&gt;
Plus proches des architectes, chargés de diriger les contremaîtres sur le chantier, les bâtisseurs ont exactement les mêmes accès que leurs ouvriers, à l&#039;exception du gamemode qui leur permet de se donner du matériel de construction. Ils ont accès au GM1 et donc à des ressources illimitées et peuvent voler.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ce grade est réservé aux pérégrins ayant fait leurs preuves en construction et gestion de projet. Les bâtisseurs restent sous la direction de l&#039;Architecte.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Bâtisseur]]}}&lt;br /&gt;
&lt;br /&gt;
=== Architecte ===&lt;br /&gt;
[[Fichier:Architecte grade.png|right|200px]]&lt;br /&gt;
Les &#039;&#039;&#039;Architectes&#039;&#039;&#039; sont les grands bâtisseurs du Nefald. Ils ont pour mission de bâtir les grandes villes sur le serveur et d&#039;entretenir les infrastructures existantes.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils dirigent la branche Construction et sont nommés parmi les Bâtisseurs par le Conseil.&lt;br /&gt;
Ils ont accès à [[WorldGuard]] et [[WorldEdit]] en leurs entiers, ainsi qu&#039;à nombre d&#039;autres plugins.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Architecte]]}}&lt;br /&gt;
&lt;br /&gt;
== Animation ==&lt;br /&gt;
=== Ménestrel ===&lt;br /&gt;
[[Fichier:Menestrel grade.png|right|200px]]&lt;br /&gt;
Les ménestrels sont les animateurs de Nefald. Ils peuvent s&#039;orienter en trois activités :&amp;lt;br /&amp;gt;&lt;br /&gt;
- L&#039;événementiel : ils créent des évènements pour divertir les joueurs.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le RolePlay : ils créent du contenu RP et des quêtes.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Le développement : ils créent du contenu via les scripts et codes.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les ménestrels disposent du /broadcast leur permettant de passer des annonces sur le chat. Ils sont la base de l&#039;animation et sont accessibles par candidature.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Ménestrel]]}}&lt;br /&gt;
&lt;br /&gt;
=== Scribe ===&lt;br /&gt;
[[Fichier:Scribe grade.png|right|200px]]&lt;br /&gt;
Les Scribes sont les dépositaires de notre histoire au travers de ses légendes. Ils rédigent le RolePlay et organisent des événements en conséquence, coordonnent les ménestrels.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ils sont choisis pour leurs connaissances du RP, leurs talents événementiels et leurs capacités à diriger l&#039;équipe.&lt;br /&gt;
Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|[[Scribe]]}}&lt;br /&gt;
&lt;br /&gt;
=== Scriptomancien ===&lt;br /&gt;
[[Fichier:Scriptomancien grade.png|right|200px]]&lt;br /&gt;
Les Scriptomanciens sont les développeurs de Nefald.&lt;br /&gt;
Ils ont pour mission l&#039;entretien et la création de plugins pour la communauté. Ils sont aussi aptes à développer des scripts Denizen/Campaign/etc.&lt;br /&gt;
Selon leurs connaissances, ils pourront être amenés à participer au bon fonctionnement des sites web et du serveur.&lt;br /&gt;
Ils travaillent main dans la main avec les Scribes dans le cercle de l&#039;Animation. Ils sont nommés par le Conseil.&lt;br /&gt;
{{Article détaillé|[[Scriptomancien]]}}&lt;br /&gt;
&lt;br /&gt;
== Modération ==&lt;br /&gt;
=== Aspirant ===&lt;br /&gt;
[[Fichier:Aspirant grade.png|right|200px]]&lt;br /&gt;
Le grade Aspirant est un passage obligatoire dans l&#039;accès au grade Officier. Quiconque souhaite devenir Officier doit d&#039;abord postuler au grade Aspirant et y faire ses preuves.&lt;br /&gt;
Les Aspirants guident les marauds et pérégrins, leur permettent de résoudre les problèmes auxquels ils sont confrontés, et modèrent tout comportement indésirable. Ils ont pour cela accès à toutes les commandes nécessaires.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Aspirant]]}}&lt;br /&gt;
&lt;br /&gt;
=== Officier ===&lt;br /&gt;
[[Fichier:Officier grade.png|right|200px]]&lt;br /&gt;
Les Officiers sont là pour protéger les joueurs et font figure d&#039;autorité en cas de conflit ou de manquement aux règles.&lt;br /&gt;
&lt;br /&gt;
Ils ont quasiment les mêmes fonctions que les Intendants : venir en aide aux joueurs et protéger le serveur. C&#039;est principalement du maintien de l&#039;ordre. Ils sont les bras droits des Intendants et font respecter les règles de manière impartiale.&lt;br /&gt;
Ils peuvent bannir, kicker ou mettre en prison les joueurs.&lt;br /&gt;
Ils sont nommés parmi les Aspirants par les Intendants.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Officier]]}}&lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
=== Intendant ===&lt;br /&gt;
[[Fichier:Intendant grade.png|right|200px]]&lt;br /&gt;
Un dernier grade, et non des moindres, est celui d&#039;&#039;&#039;&#039;Intendant&#039;&#039;&#039;. Les Intendants sont les administrateurs du serveur, ont toutes les capacités en jeu, mais assument surtout la lourde responsabilité de présider le &#039;&#039;&#039;Conseil&#039;&#039;&#039;, réunissant l&#039;ensemble de l&#039;équipe, afin de prendre des décisions concernant l&#039;avenir de la communauté. On ne postule pas pour devenir Intendant : on est nommé par les Intendants eux-mêmes.&lt;br /&gt;
&lt;br /&gt;
{{Article détaillé|[[Intendant]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prérequis ===&lt;br /&gt;
Tous les grades non membres du Conseil ne peuvent être convoités qu&#039;à la condition d&#039;avoir trois semaines d&#039;ancienneté en tant que pérégrin.&lt;br /&gt;
&lt;br /&gt;
Pour les grades du Conseil, trois mois d&#039;ancienneté minimum sont demandés.&lt;br /&gt;
&lt;br /&gt;
;Cumul des grades&lt;br /&gt;
* Il est possible, sur demande particulière d&#039;un membre déjà gradé, d&#039;envisager un cumul de grades dans des branches différentes. (Par exemple, un Aspirant peut demander à rejoindre les rangs des Bâtisseurs.)&lt;br /&gt;
&lt;br /&gt;
== À propos du Conseil ==&lt;br /&gt;
;Sont uniquement considérés comme faisant partie du Conseil :&lt;br /&gt;
Les [[Scribe]]s, les [[Scriptomancien]]s, les [[Officier]]s, les [[Architecte]]s et les [[Intendant]]s.&amp;lt;br/&amp;gt;Ces grades ne sont accessibles que sur nomination des Intendants.&lt;br /&gt;
C&#039;est en priorité à eux que vous devrez vous adresser en cas de besoin, faisant autorité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Devenir membre du Conseil sur Nefald, c&#039;est (presque) comme rentrer en religion ; on devient membre dans le seul et unique but de servir la communauté sur quatre points distincts : &#039;&#039;&#039;l&#039;animation&#039;&#039;&#039;, &#039;&#039;&#039;la construction&#039;&#039;&#039;, &#039;&#039;&#039;la modération&#039;&#039;&#039; et &#039;&#039;&#039;l&#039;administration&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br /&amp;gt;À chacun son rôle et ses spécificités. Nous attendrons d&#039;un Officier calme et impartialité, d&#039;un Scribe et d&#039;un Scriptomancien une créativité à toute épreuve, d&#039;un Architecte un talent certain pour la construction et d&#039;un Intendant une réflexion claire et une certaine objectivité.&lt;br /&gt;
&lt;br /&gt;
=== L&#039;Agora ===&lt;br /&gt;
D&#039;autres grades, sans faire partie du Conseil, font figure de relais entre celui-ci et les autres joueurs. Ils sont régulièrement consultés lors des prises de décision.&lt;br /&gt;
&lt;br /&gt;
Les grades ayant ces qualités sont ceux de [[Bâtisseur]], de [[Ménestrel]] et d&#039;[[Aspirant]].&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:flowchart TD&lt;br /&gt;
  %% --- Base ---&lt;br /&gt;
  subgraph Base&lt;br /&gt;
    Maraud[&amp;quot;Maraud&amp;quot;]&lt;br /&gt;
    Pelerin[&amp;quot;Pérégrin&amp;quot;]&lt;br /&gt;
    Maraud --&amp;gt; Pelerin&lt;br /&gt;
    Pelerin -. distinction .-&amp;gt; Contremaitre[&amp;quot;Contremaître ✦&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Branches ---&lt;br /&gt;
  subgraph Construction&lt;br /&gt;
    Batisseur[&amp;quot;Bâtisseur&amp;quot;] --&amp;gt; Architecte[&amp;quot;Architecte&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Animation&lt;br /&gt;
    Menestrel[&amp;quot;Ménestrel&amp;quot;] --&amp;gt; Scribe[&amp;quot;Scribe&amp;quot;]&lt;br /&gt;
    Menestrel -. nomination .-&amp;gt; Scriptomancien[&amp;quot;Scriptomancien&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Moderation[&amp;quot;Modération&amp;quot;]&lt;br /&gt;
    Aspirant[&amp;quot;Aspirant&amp;quot;] --&amp;gt; Officier[&amp;quot;Officier&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  subgraph Administration&lt;br /&gt;
    Intendant[&amp;quot;Intendant&amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  %% --- Entrées en branches depuis Pérégrin ---&lt;br /&gt;
  Pelerin --&amp;gt; Batisseur&lt;br /&gt;
  Pelerin --&amp;gt; Menestrel&lt;br /&gt;
  Pelerin --&amp;gt; Aspirant&lt;br /&gt;
&lt;br /&gt;
  %% --- Nominations vers l&#039;Administration ---&lt;br /&gt;
  Scribe -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Scriptomancien -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Architecte -. nomination .-&amp;gt; Intendant&lt;br /&gt;
  Officier -. nomination .-&amp;gt; Intendant&lt;br /&gt;
&lt;br /&gt;
  %% --- Styles ---&lt;br /&gt;
  classDef council fill:#d1f7c4,stroke:#2b8a3e,stroke-width:1px,color:#0b3d1b;&lt;br /&gt;
  classDef agora fill:#fff3bf,stroke:#f59f00,stroke-width:1px,color:#7a4b00;&lt;br /&gt;
  classDef base fill:#e7f5ff,stroke:#1c7ed6,stroke-width:1px,color:#0b2e59;&lt;br /&gt;
&lt;br /&gt;
  class Scribe,Scriptomancien,Architecte,Officier,Intendant council;&lt;br /&gt;
  class Menestrel,Batisseur,Aspirant agora;&lt;br /&gt;
  class Maraud,Pelerin,Contremaitre base;&lt;br /&gt;
&lt;br /&gt;
  subgraph Legende[ ]&lt;br /&gt;
    leg1[Conseil]:::council&lt;br /&gt;
    leg2[Agora — relais]:::agora&lt;br /&gt;
    leg3[Grades de base]:::base&lt;br /&gt;
  end&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Édit de l&#039;Intendance]]&lt;br /&gt;
[[Catégorie:Guide]]&lt;br /&gt;
[[Catégorie:Grade]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5769</id>
		<title>Plugin:DiscordBridge/Lands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5769"/>
		<updated>2026-04-04T08:55:44Z</updated>

		<summary type="html">&lt;p&gt;Hiob : channel discord&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lands ==&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Se rendre dans {{Discord|id=1489710188666814564|nom=lands}} et exécutez les commandes ci-dessous.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs, Lands. Seuls les membres du Land qui ont liés leur compte Minecraft &amp;gt; Discord, peuvent y accéder. &lt;br /&gt;
Les Ops du serveur Discord ont accès à tous les salons. }}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5768</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5768"/>
		<updated>2026-04-04T08:50:47Z</updated>

		<summary type="html">&lt;p&gt;Hiob : compatibilité&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
| compatibilité = [[Lands]], [[LuckPerms]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour tous les joueurs ==&lt;br /&gt;
==== Commandes en jeu ====&lt;br /&gt;
{{Plugin:DiscordBridge/Commandes}}&lt;br /&gt;
{{Plugin:DiscordBridge/Lier_son_compte}}&lt;br /&gt;
{{Plugin:DiscordBridge/Lands}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Créer une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Activer les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copier le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et le coller dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour que les messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour pouvoir créer un salon Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplacer &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Les synchronisations ne fonctionnent que dans un seul sens selon le paramètre configuré.}}&lt;br /&gt;
&lt;br /&gt;
===== Sens de synchronisation =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre !! Sens !! Effet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || Minecraft → Discord || Le joueur reçoit un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement lorsqu&#039;il lie son compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || Discord → Minecraft || Le joueur reçoit un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon son rôle Discord au moment de la liaison&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ces deux paramètres sont indépendants. Les configurer simultanément peut créer des &#039;&#039;&#039;boucles logiques involontaires&#039;&#039;&#039; ou des attributions redondantes. Il est recommandé de n&#039;en utiliser qu&#039;un seul selon l&#039;architecture choisie.}}&lt;br /&gt;
&lt;br /&gt;
=== Architecture recommandée ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cas d&#039;usage !! Paramètre à utiliser !! Paramètre à éviter&lt;br /&gt;
|-&lt;br /&gt;
| Gérer les grades depuis Discord || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Donner un badge Discord aux joueurs liés || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronisation complète bidirectionnelle || Non supporté nativement || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|DiscordBridge ne supporte pas la synchronisation bidirectionnelle native. Utiliser les deux paramètres simultanément est possible mais doit être fait consciemment pour éviter les conflits de permissions.}}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécuter &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/lands.yml&amp;lt;/code&amp;gt; || Configuration du module Lands&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/tickets.yml&amp;lt;/code&amp;gt; || Configuration du module Tickets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5767</id>
		<title>Plugin:DiscordBridge/Lands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5767"/>
		<updated>2026-04-04T08:49:19Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Lands ==&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs, Lands. Seuls les membres du Land qui ont liés leur compte Minecraft &amp;gt; Discord, peuvent y accéder. &lt;br /&gt;
Les Ops du serveur Discord ont accès à tous les salons. }}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lier_son_compte&amp;diff=5766</id>
		<title>Plugin:DiscordBridge/Lier son compte</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lier_son_compte&amp;diff=5766"/>
		<updated>2026-04-04T08:37:59Z</updated>

		<summary type="html">&lt;p&gt;Hiob : lien discord&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison entre votre compte Minecraft et Discord permet une synchronisation automatique des rôles.&lt;br /&gt;
Sur Nefald, la synchronisation se fait dans le sens &#039;&#039;&#039;Discord → Minecraft&#039;&#039;&#039; : les rôles Discord déterminent les groupes attribués en jeu.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|En cas de changement de pseudo ou de rôle sur Discord, la synchronisation n&#039;est pas immédiate — elle s&#039;effectue automatiquement de façon planifiée.}}&lt;br /&gt;
&lt;br /&gt;
==== Étapes ====&lt;br /&gt;
&lt;br /&gt;
# Connectez-vous au serveur Minecraft.&lt;br /&gt;
# Exécutez la commande &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suivez les instructions affichées dans le chat : un code et une commande Discord vous seront fournis.&lt;br /&gt;
# Sur {{Discord|id=1398359022951858196|nom=account-linking}}, envoyez la commande indiquée au bot pour finaliser la liaison.&lt;br /&gt;
# Vos rôles Discord et groupes en jeu sont alors attribués automatiquement.&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=DiscordBridge&amp;diff=5765</id>
		<title>DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=DiscordBridge&amp;diff=5765"/>
		<updated>2026-04-04T08:03:08Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page redirigée vers Plugin:DiscordBridge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECTION [[Plugin:DiscordBridge]]&lt;br /&gt;
&lt;br /&gt;
__AUCUNSOMMAIRE__&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5764</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5764"/>
		<updated>2026-04-04T08:01:49Z</updated>

		<summary type="html">&lt;p&gt;Hiob : transclusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour tous les joueurs ==&lt;br /&gt;
==== Commandes en jeu ====&lt;br /&gt;
{{Plugin:DiscordBridge/Commandes}}&lt;br /&gt;
{{Plugin:DiscordBridge/Lier_son_compte}}&lt;br /&gt;
{{Plugin:DiscordBridge/Lands}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Créer une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Activer les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copier le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et le coller dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour que les messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour pouvoir créer un salon Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplacer &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Les synchronisations ne fonctionnent que dans un seul sens selon le paramètre configuré.}}&lt;br /&gt;
&lt;br /&gt;
===== Sens de synchronisation =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre !! Sens !! Effet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || Minecraft → Discord || Le joueur reçoit un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement lorsqu&#039;il lie son compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || Discord → Minecraft || Le joueur reçoit un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon son rôle Discord au moment de la liaison&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ces deux paramètres sont indépendants. Les configurer simultanément peut créer des &#039;&#039;&#039;boucles logiques involontaires&#039;&#039;&#039; ou des attributions redondantes. Il est recommandé de n&#039;en utiliser qu&#039;un seul selon l&#039;architecture choisie.}}&lt;br /&gt;
&lt;br /&gt;
=== Architecture recommandée ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cas d&#039;usage !! Paramètre à utiliser !! Paramètre à éviter&lt;br /&gt;
|-&lt;br /&gt;
| Gérer les grades depuis Discord || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Donner un badge Discord aux joueurs liés || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronisation complète bidirectionnelle || Non supporté nativement || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|DiscordBridge ne supporte pas la synchronisation bidirectionnelle native. Utiliser les deux paramètres simultanément est possible mais doit être fait consciemment pour éviter les conflits de permissions.}}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécuter &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/lands.yml&amp;lt;/code&amp;gt; || Configuration du module Lands&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/tickets.yml&amp;lt;/code&amp;gt; || Configuration du module Tickets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5763</id>
		<title>Plugin:DiscordBridge/Lands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lands&amp;diff=5763"/>
		<updated>2026-04-04T08:01:23Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « === Créer un salon Discord pour sa Land ===  Les &amp;#039;&amp;#039;&amp;#039;propriétaires d&amp;#039;une Land ou d&amp;#039;une Nation&amp;#039;&amp;#039;&amp;#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.  ==== Conditions requises ====  * Être propriétaire ou disposer des droits sur une Land / Nation. * Avoir son compte Minecraft lié à son compte Discord — voir Lier son compte Discord. * Le plugin Lands doit être installé sur le serveur.  ====... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lier_son_compte&amp;diff=5762</id>
		<title>Plugin:DiscordBridge/Lier son compte</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Lier_son_compte&amp;diff=5762"/>
		<updated>2026-04-04T07:58:32Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « === Lier son compte Discord ===  La liaison entre votre compte Minecraft et Discord permet une synchronisation automatique des rôles. Sur Nefald, la synchronisation se fait dans le sens &amp;#039;&amp;#039;&amp;#039;Discord → Minecraft&amp;#039;&amp;#039;&amp;#039; : les rôles Discord déterminent les groupes attribués en jeu.  {{Bandeau|type=info|En cas de changement de pseudo ou de rôle sur Discord, la synchronisation n&amp;#039;est pas immédiate — elle s&amp;#039;effectue automatiquement de façon planifiée.}}  ==== Éta... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison entre votre compte Minecraft et Discord permet une synchronisation automatique des rôles.&lt;br /&gt;
Sur Nefald, la synchronisation se fait dans le sens &#039;&#039;&#039;Discord → Minecraft&#039;&#039;&#039; : les rôles Discord déterminent les groupes attribués en jeu.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|En cas de changement de pseudo ou de rôle sur Discord, la synchronisation n&#039;est pas immédiate — elle s&#039;effectue automatiquement de façon planifiée.}}&lt;br /&gt;
&lt;br /&gt;
==== Étapes ====&lt;br /&gt;
&lt;br /&gt;
# Connectez-vous au serveur Minecraft.&lt;br /&gt;
# Exécutez la commande &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suivez les instructions affichées dans le chat : un code et une commande Discord vous seront fournis.&lt;br /&gt;
# Sur Discord, envoyez la commande indiquée au bot pour finaliser la liaison.&lt;br /&gt;
# Vos rôles Discord et groupes in-game sont alors attribués automatiquement.&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Commandes&amp;diff=5761</id>
		<title>Plugin:DiscordBridge/Commandes</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge/Commandes&amp;diff=5761"/>
		<updated>2026-04-04T07:48:40Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « {| class=&amp;quot;wikitable&amp;quot; ! Commande !! Description !! Permission |- | &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt; |- | &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt; |- | &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&amp;#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invit... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5760</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5760"/>
		<updated>2026-04-04T06:05:49Z</updated>

		<summary type="html">&lt;p&gt;Hiob : +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour tous les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
Selon la configuration du serveur, la liaison peut :&lt;br /&gt;
* Attribuer un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement (sync Minecraft → Discord)&lt;br /&gt;
* Attribuer un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon ton rôle Discord (sync Discord → Minecraft)&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Sur Nefald la synchronisation se fait de Discord → Minecraft.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Se connecter au serveur Minecraft.&lt;br /&gt;
# Exécuter &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suivre les instructions affichées dans le chat (un code ou un lien sera fourni).&lt;br /&gt;
# Sur Discord, compléter la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois le compte lié, les rôles Discord et groupes in-game configurés par les administrateurs sont attribués automatiquement.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau |type=info|En cas de changement de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Créer une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Activer les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copier le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et le coller dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour que les messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour pouvoir créer un salon Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplacer &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Les synchronisations ne fonctionnent que dans un seul sens selon le paramètre configuré.}}&lt;br /&gt;
&lt;br /&gt;
===== Sens de synchronisation =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre !! Sens !! Effet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || Minecraft → Discord || Le joueur reçoit un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement lorsqu&#039;il lie son compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || Discord → Minecraft || Le joueur reçoit un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon son rôle Discord au moment de la liaison&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ces deux paramètres sont indépendants. Les configurer simultanément peut créer des &#039;&#039;&#039;boucles logiques involontaires&#039;&#039;&#039; ou des attributions redondantes. Il est recommandé de n&#039;en utiliser qu&#039;un seul selon l&#039;architecture choisie.}}&lt;br /&gt;
&lt;br /&gt;
=== Architecture recommandée ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cas d&#039;usage !! Paramètre à utiliser !! Paramètre à éviter&lt;br /&gt;
|-&lt;br /&gt;
| Gérer les grades depuis Discord || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Donner un badge Discord aux joueurs liés || &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Synchronisation complète bidirectionnelle || Non supporté nativement || —&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|DiscordBridge ne supporte pas la synchronisation bidirectionnelle native. Utiliser les deux paramètres simultanément est possible mais doit être fait consciemment pour éviter les conflits de permissions.}}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécuter &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/lands.yml&amp;lt;/code&amp;gt; || Configuration du module Lands&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/tickets.yml&amp;lt;/code&amp;gt; || Configuration du module Tickets&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5759</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5759"/>
		<updated>2026-04-04T06:02:21Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
Selon la configuration du serveur, la liaison peut :&lt;br /&gt;
* Attribuer un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement (sync Minecraft → Discord)&lt;br /&gt;
* Attribuer un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon ton rôle Discord (sync Discord → Minecraft)&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Sur Nefald la synchronisation se fait de Discord → Minecraft.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Se connecter au serveur Minecraft.&lt;br /&gt;
# Exécuter &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suivre les instructions affichées dans le chat (un code ou un lien sera fourni).&lt;br /&gt;
# Sur Discord, compléter la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois le compte lié, les rôles Discord et groupes in-game configurés par les administrateurs sont attribués automatiquement.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau |type=info|En cas de changement de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Créer une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Activer les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copier le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et le coller dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour que les messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour pouvoir créer un salon Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplacer &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Les synchronisations ne fonctionnent que dans un seul sens selon le paramètre configuré.}}&lt;br /&gt;
&lt;br /&gt;
===== Sens de synchronisation =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre !! Sens !! Effet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_roles add&amp;lt;/code&amp;gt; || Minecraft → Discord || Le joueur reçoit un &#039;&#039;&#039;rôle Discord&#039;&#039;&#039; automatiquement lorsqu&#039;il lie son compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linking_groups add&amp;lt;/code&amp;gt; || Discord → Minecraft || Le joueur reçoit un &#039;&#039;&#039;groupe LuckPerms&#039;&#039;&#039; in-game selon son rôle Discord au moment de la liaison&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ces deux paramètres sont indépendants. Les configurer simultanément peut créer des &#039;&#039;&#039;boucles logiques involontaires&#039;&#039;&#039; ou des attributions redondantes. Il est recommandé de n&#039;en utiliser qu&#039;un seul selon l&#039;architecture choisie.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécuter &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5758</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5758"/>
		<updated>2026-04-04T05:53:29Z</updated>

		<summary type="html">&lt;p&gt;Hiob : ton neutre&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison de compte associe un compte Minecraft à un compte Discord.&lt;br /&gt;
Elle peut débloquer des rôles Discord automatiques, des groupes in-game et d&#039;autres avantages selon la configuration du serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Se connecter au serveur Minecraft.&lt;br /&gt;
# Exécuter &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suivre les instructions affichées dans le chat (un code ou un lien sera fourni).&lt;br /&gt;
# Sur Discord, compléter la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois le compte lié, les rôles Discord et groupes in-game configurés par les administrateurs sont attribués automatiquement.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau |type=info|En cas de changement de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;propriétaires d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039; peuvent créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou disposer des droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour la Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Créer une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Activer les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copier le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et le coller dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour que les messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Le compte Minecraft doit être lié à Discord pour pouvoir créer un salon Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplacer &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_allowed_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Restreint la liaison aux joueurs ayant ce rôle Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_roles add&amp;lt;/code&amp;gt; || Ajoute un rôle Discord attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_groups add&amp;lt;/code&amp;gt; || Ajoute un groupe LuckPerms attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_name_sync_ignore_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Exclut les utilisateurs ayant ce rôle de la synchronisation de nom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécuter &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5757</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5757"/>
		<updated>2026-04-04T05:37:29Z</updated>

		<summary type="html">&lt;p&gt;Hiob : /* Commandes Discord */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison de compte associe ton compte Minecraft à ton compte Discord.&lt;br /&gt;
Elle peut débloquer des rôles Discord automatiques, des groupes in-game et d&#039;autres avantages selon la configuration du serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Connecte-toi au serveur Minecraft.&lt;br /&gt;
# Exécute &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suis les instructions affichées dans le chat (un code ou un lien te sera fourni).&lt;br /&gt;
# Sur Discord, complète la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois lié, tu reçois automatiquement les rôles Discord et groupes in-game configurés par les administrateurs.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau |type=info|Si vous changez de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Si tu es &#039;&#039;&#039;propriétaire d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039;, tu peux créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou avoir les droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Crée une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Active les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copie le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et colle-le dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Votre compte Minecraft doit être lié à Discord pour que vos messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Votre compte Minecraft doit être lié à Discord pour que vous puissiez créer votre channel Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplace &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_allowed_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Restreint la liaison aux joueurs ayant ce rôle Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_roles add&amp;lt;/code&amp;gt; || Ajoute un rôle Discord attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_groups add&amp;lt;/code&amp;gt; || Ajoute un groupe LuckPerms attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_name_sync_ignore_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Exclut les utilisateurs ayant ce rôle de la synchronisation de nom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécute &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5756</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5756"/>
		<updated>2026-04-04T05:37:03Z</updated>

		<summary type="html">&lt;p&gt;Hiob : bandeaux&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison de compte associe ton compte Minecraft à ton compte Discord.&lt;br /&gt;
Elle peut débloquer des rôles Discord automatiques, des groupes in-game et d&#039;autres avantages selon la configuration du serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Connecte-toi au serveur Minecraft.&lt;br /&gt;
# Exécute &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suis les instructions affichées dans le chat (un code ou un lien te sera fourni).&lt;br /&gt;
# Sur Discord, complète la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois lié, tu reçois automatiquement les rôles Discord et groupes in-game configurés par les administrateurs.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau |type=info|Si vous changez de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Si tu es &#039;&#039;&#039;propriétaire d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039;, tu peux créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou avoir les droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Crée une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Active les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copie le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et colle-le dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Votre compte Minecraft doit être lié à Discord pour que vos messages se synchronisent.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Votre compte Minecraft doit être lié à Discord pour que vous puissiez créer votre channel Lands.}}&lt;br /&gt;
{{Bandeau|type=info|Remplace &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_allowed_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Restreint la liaison aux joueurs ayant ce rôle Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_roles add&amp;lt;/code&amp;gt; || Ajoute un rôle Discord attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_groups add&amp;lt;/code&amp;gt; || Ajoute un groupe LuckPerms attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_name_sync_ignore_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Exclut les utilisateurs ayant ce rôle de la synchronisation de nom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécute &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5755</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5755"/>
		<updated>2026-04-03T13:39:25Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Plugin d&#039;intégration entre Minecraft et Discord}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison de compte associe ton compte Minecraft à ton compte Discord.&lt;br /&gt;
Elle peut débloquer des rôles Discord automatiques, des groupes in-game et d&#039;autres avantages selon la configuration du serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Connecte-toi au serveur Minecraft.&lt;br /&gt;
# Exécute &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suis les instructions affichées dans le chat (un code ou un lien te sera fourni).&lt;br /&gt;
# Sur Discord, complète la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois lié, tu reçois automatiquement les rôles Discord et groupes in-game configurés par les administrateurs.&lt;br /&gt;
&lt;br /&gt;
{{Note|Si tu changes de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Si tu es &#039;&#039;&#039;propriétaire d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039;, tu peux créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou avoir les droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Crée une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Active les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copie le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et colle-le dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ne partage jamais le token de ton bot. En cas de fuite, régénère-le immédiatement depuis le portail développeur Discord.}}&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Remplace &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_allowed_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Restreint la liaison aux joueurs ayant ce rôle Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_roles add&amp;lt;/code&amp;gt; || Ajoute un rôle Discord attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_groups add&amp;lt;/code&amp;gt; || Ajoute un groupe LuckPerms attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_name_sync_ignore_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Exclut les utilisateurs ayant ce rôle de la synchronisation de nom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécute &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5754</id>
		<title>Plugin:DiscordBridge</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:DiscordBridge&amp;diff=5754"/>
		<updated>2026-04-03T09:50:49Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « {{Infobox Plugin | nom     = DiscordBridge | image   = Plugin_without_Logo.png | type    = Utilitaire | dev     = incredibleplugins | docs    = https://wiki.incredibleplugins.com/discordbridge | sources =  | grade   =  | status  = installé }}   &amp;#039;&amp;#039;&amp;#039;DiscordBridge&amp;#039;&amp;#039;&amp;#039; est un plugin d&amp;#039;intégration entre le serveur Minecraft et le serveur Discord. Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes, la gestion de tickets, les not... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Plugin&lt;br /&gt;
| nom     = DiscordBridge&lt;br /&gt;
| image   = Plugin_without_Logo.png&lt;br /&gt;
| type    = Utilitaire&lt;br /&gt;
| dev     = incredibleplugins&lt;br /&gt;
| docs    = https://wiki.incredibleplugins.com/discordbridge&lt;br /&gt;
| sources = &lt;br /&gt;
| grade   = &lt;br /&gt;
| status  = installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DiscordBridge&#039;&#039;&#039; est un plugin d&#039;intégration entre le serveur Minecraft et le serveur Discord.&lt;br /&gt;
Il relie les deux plateformes en offrant la synchronisation du chat, la liaison de comptes,&lt;br /&gt;
la gestion de tickets, les notifications d&#039;événements et l&#039;intégration avec le plugin [[Lands]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour les joueurs ==&lt;br /&gt;
&lt;br /&gt;
=== Lier son compte Discord ===&lt;br /&gt;
&lt;br /&gt;
La liaison de compte associe ton compte Minecraft à ton compte Discord.&lt;br /&gt;
Elle peut débloquer des rôles Discord automatiques, des groupes in-game et d&#039;autres avantages selon la configuration du serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes in-game ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; || Lier son compte Discord à son compte Minecraft || &amp;lt;code&amp;gt;discordbridge.command.account.link&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account unlink&amp;lt;/code&amp;gt; || Délier son compte Discord || &amp;lt;code&amp;gt;discordbridge.command.account.unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge invite&amp;lt;/code&amp;gt; || Obtenir le lien d&#039;invitation du serveur Discord || &amp;lt;code&amp;gt;discordbridge.command.invite&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge help [page]&amp;lt;/code&amp;gt; || Afficher l&#039;aide des commandes disponibles || &amp;lt;code&amp;gt;discordbridge.command.help&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Étapes pour lier son compte ====&lt;br /&gt;
&lt;br /&gt;
# Connecte-toi au serveur Minecraft.&lt;br /&gt;
# Exécute &amp;lt;code&amp;gt;/discordbridge account link&amp;lt;/code&amp;gt; en jeu.&lt;br /&gt;
# Suis les instructions affichées dans le chat (un code ou un lien te sera fourni).&lt;br /&gt;
# Sur Discord, complète la liaison en suivant les instructions du bot.&lt;br /&gt;
# Une fois lié, tu reçois automatiquement les rôles Discord et groupes in-game configurés par les administrateurs.&lt;br /&gt;
&lt;br /&gt;
{{Note|Si tu changes de pseudo Discord, la synchronisation du nom peut être automatique selon la configuration du serveur.}}&lt;br /&gt;
&lt;br /&gt;
=== Créer un salon Discord pour sa Land ===&lt;br /&gt;
&lt;br /&gt;
Si tu es &#039;&#039;&#039;propriétaire d&#039;une Land ou d&#039;une Nation&#039;&#039;&#039;, tu peux créer un salon textuel et vocal dédié directement dans le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
==== Conditions requises ====&lt;br /&gt;
&lt;br /&gt;
* Être propriétaire ou avoir les droits sur une Land / Nation.&lt;br /&gt;
* Avoir son compte Minecraft lié à son compte Discord — voir [[#Lier son compte Discord|Lier son compte Discord]].&lt;br /&gt;
* Le plugin [[Lands]] doit être installé sur le serveur.&lt;br /&gt;
&lt;br /&gt;
==== Commandes Discord ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Land&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt; || Crée un salon Discord pour ta Nation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Les salons sont créés dans la catégorie définie par les administrateurs. Si aucune catégorie n&#039;est configurée, ils apparaissent à la racine du serveur Discord.}}&lt;br /&gt;
&lt;br /&gt;
== Pour les administrateurs ==&lt;br /&gt;
&lt;br /&gt;
=== Installation et configuration du bot ===&lt;br /&gt;
&lt;br /&gt;
==== Prérequis ====&lt;br /&gt;
&lt;br /&gt;
# Crée une application Discord sur le [https://discord.com/developers/applications Portail Développeur Discord].&lt;br /&gt;
# Active les &#039;&#039;&#039;Intents&#039;&#039;&#039; suivants dans l&#039;onglet &#039;&#039;Bot&#039;&#039; :&lt;br /&gt;
#* &#039;&#039;&#039;Server Members Intent&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Message Content Intent&#039;&#039;&#039;&lt;br /&gt;
# Lors de l&#039;invitation du bot, les &#039;&#039;&#039;scopes requis&#039;&#039;&#039; sont :&lt;br /&gt;
#* &amp;lt;code&amp;gt;applications.commands&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
# Le bot doit disposer des permissions Discord suivantes :&lt;br /&gt;
#* Gérer les salons&lt;br /&gt;
#* Gérer les webhooks&lt;br /&gt;
#* Lire les messages / Voir les salons&lt;br /&gt;
#* Envoyer des messages&lt;br /&gt;
#* Gérer les messages&lt;br /&gt;
#* Intégrer des liens&lt;br /&gt;
#* Joindre des fichiers&lt;br /&gt;
#* Voir l&#039;historique des messages&lt;br /&gt;
#* Ajouter des réactions&lt;br /&gt;
# Copie le &#039;&#039;&#039;token du bot&#039;&#039;&#039; et colle-le dans &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; à l&#039;option &amp;lt;code&amp;gt;token&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|Ne partage jamais le token de ton bot. En cas de fuite, régénère-le immédiatement depuis le portail développeur Discord.}}&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules ===&lt;br /&gt;
&lt;br /&gt;
==== Module Chat ====&lt;br /&gt;
&lt;br /&gt;
Synchronise le chat in-game vers Discord et inversement.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set CHAT_CHANNEL&amp;lt;/code&amp;gt; || Définit le salon Discord recevant les messages du chat in-game&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Module Events ====&lt;br /&gt;
&lt;br /&gt;
Envoie des messages dans Discord lors d&#039;événements sur le serveur (connexion, déconnexion, mort, etc.).&lt;br /&gt;
&lt;br /&gt;
* La configuration se fait dans : &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
* Chaque événement peut être désactivé individuellement dans ce fichier.&lt;br /&gt;
&lt;br /&gt;
==== Module Lands ====&lt;br /&gt;
&lt;br /&gt;
Intègre DiscordBridge avec le plugin [[Lands]] pour les annonces et les salons de Land/Nation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; || (Optionnel) Catégorie Discord où seront créés les salons de Land/Nation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; || (Optionnel) Salon Discord pour les annonces Lands (guerres, suppressions, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; || Configure les rôles notifiés pour chaque catégorie d&#039;annonce&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Remplace &amp;lt;code&amp;gt;&amp;lt;broadcast_category&amp;gt;&amp;lt;/code&amp;gt; par la catégorie souhaitée (ex : &amp;lt;code&amp;gt;WAR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;…).}}&lt;br /&gt;
&lt;br /&gt;
==== Module Linking ====&lt;br /&gt;
&lt;br /&gt;
Gère la liaison entre comptes Minecraft et Discord.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_allowed_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Restreint la liaison aux joueurs ayant ce rôle Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_roles add&amp;lt;/code&amp;gt; || Ajoute un rôle Discord attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_groups add&amp;lt;/code&amp;gt; || Ajoute un groupe LuckPerms attribué automatiquement aux joueurs liés&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config linking_name_sync_ignore_roles add &amp;lt;role&amp;gt;&amp;lt;/code&amp;gt; || Exclut les utilisateurs ayant ce rôle de la synchronisation de nom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Commande in-game (administration) =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge account admin migrate&amp;lt;/code&amp;gt; || Migre les liaisons existantes depuis un autre plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.account.admin.migrate&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{bandeau|type=info|Lors de l&#039;ajout d&#039;un rôle ou d&#039;un groupe, les joueurs déjà liés le reçoivent automatiquement. La mise à jour est planifiée pour éviter toute surcharge sur les grands serveurs.}}&lt;br /&gt;
&lt;br /&gt;
==== Module Tickets ====&lt;br /&gt;
&lt;br /&gt;
Permet aux membres Discord de créer des tickets de support directement depuis le serveur Discord.&lt;br /&gt;
&lt;br /&gt;
===== Configuration requise =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_category_closed&amp;lt;/code&amp;gt; || Catégorie où sont déplacés les tickets fermés avant suppression&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_member_max_tickets&amp;lt;/code&amp;gt; || Nombre maximum de tickets simultanés par utilisateur&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_role_support&amp;lt;/code&amp;gt; || Rôle Discord pouvant voir et gérer tous les tickets&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_deletion_time&amp;lt;/code&amp;gt; || Délai avant suppression d&#039;un ticket fermé (ex : &amp;lt;code&amp;gt;1d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;12h&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_remind_submitter&amp;lt;/code&amp;gt; || Active ou désactive le rappel automatique au créateur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_staff_unavailable&amp;lt;/code&amp;gt; || Message affiché si aucun staff n&#039;est disponible (nécessite &amp;lt;code&amp;gt;tickets_role_support&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config set tickets_creation_channel&amp;lt;/code&amp;gt; || Salon Discord où le message de création de ticket sera posté&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config type upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config field upsert&amp;lt;/code&amp;gt; || Créer ou mettre à jour les champs d&#039;un type de ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config info create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des informations demandées après création du ticket&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/config reason create&amp;lt;/code&amp;gt; || (Optionnel) Prédéfinir des raisons de fermeture de ticket&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|Pour effacer une valeur de configuration, exécute &amp;lt;code&amp;gt;/config set &amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; sans préciser de valeur.}}&lt;br /&gt;
&lt;br /&gt;
=== Commandes d&#039;administration générales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande !! Description !! Permission&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; || Accès aux commandes d&#039;administration || &amp;lt;code&amp;gt;discordbridge.admin.command&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/discordbridge admin reload&amp;lt;/code&amp;gt; || Recharge la configuration du plugin || &amp;lt;code&amp;gt;discordbridge.admin.command.reload&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Toutes les sous-commandes de &amp;lt;code&amp;gt;/discordbridge admin&amp;lt;/code&amp;gt; suivent le format de permission : &amp;lt;code&amp;gt;discordbridge.admin.command.&amp;lt;souscommande&amp;gt;&amp;lt;/code&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== Placeholders PlaceholderAPI ===&lt;br /&gt;
&lt;br /&gt;
Ces placeholders nécessitent l&#039;installation de [[PlaceholderAPI]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Placeholder !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_amount%&amp;lt;/code&amp;gt; || Nombre de joueurs ayant lié leur compte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur a lié son compte, sinon &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_state%&amp;lt;/code&amp;gt; || État de liaison (texte traduit depuis le fichier de locale)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_id%&amp;lt;/code&amp;gt; || ID Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_name%&amp;lt;/code&amp;gt; || Pseudo Discord de l&#039;utilisateur lié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster%&amp;lt;/code&amp;gt; || Indique si le joueur booste un serveur Discord du bot (texte)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%discordbridge_module_linking_user_booster_bool%&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; si le joueur booste un serveur Discord du bot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fichiers de configuration ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/bot.yml&amp;lt;/code&amp;gt; || Configuration principale du bot (token, URL d&#039;invitation, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/events.yml&amp;lt;/code&amp;gt; || Activation et désactivation des événements envoyés sur Discord&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/chat.yml&amp;lt;/code&amp;gt; || Configuration du module chat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DiscordBridge/Modules/linking.yml&amp;lt;/code&amp;gt; || Configuration du module de liaison de comptes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Lands]] — Plugin de gestion de territoires&lt;br /&gt;
* [[LuckPerms]] — Gestion des permissions et groupes&lt;br /&gt;
* [[PlaceholderAPI]] — Placeholders dynamiques&lt;br /&gt;
* [https://wiki.incredibleplugins.com/discordbridge Documentation officielle DiscordBridge]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Plugin:Lands&amp;diff=5753</id>
		<title>Plugin:Lands</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Plugin:Lands&amp;diff=5753"/>
		<updated>2026-04-03T08:35:24Z</updated>

		<summary type="html">&lt;p&gt;Hiob : ajout discordbridge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Système de gestion territoriale et politique utilisé sur Nefald pour les villes, les territoires et les relations entre joueurs.}}&lt;br /&gt;
&lt;br /&gt;
{{Révision|§ coûts définitifs à ajuster selon la configuration finale}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Plugin&lt;br /&gt;
|nom=Lands&lt;br /&gt;
|image=Plugin_without_Logo.png&lt;br /&gt;
|type=Utilitaire&lt;br /&gt;
|dev=incredibleplugins&lt;br /&gt;
|docs=https://wiki.incredibleplugins.com/lands&lt;br /&gt;
|sources=https://github.com/IncrediblePlugins/Lands&lt;br /&gt;
|grade=[[Pérégrin]]&lt;br /&gt;
|status=installé&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lands&#039;&#039;&#039; est le système utilisé sur Nefald pour gérer les territoires, les villes, les camps et les nations.&lt;br /&gt;
Il constitue le socle technique de l&#039;organisation géographique, politique et économique du monde.&lt;br /&gt;
&lt;br /&gt;
Cette page présente le fonctionnement général de Lands tel qu&#039;il s&#039;applique sur Nefald.&lt;br /&gt;
Elle complète la documentation officielle du plugin par une présentation adaptée aux règles et usages du serveur.&lt;br /&gt;
&lt;br /&gt;
== Notions essentielles ==&lt;br /&gt;
&lt;br /&gt;
=== Territoire (Land) ===&lt;br /&gt;
Un &#039;&#039;&#039;land&#039;&#039;&#039; est une entité territoriale gérée par un joueur ou un groupe de joueurs.&lt;br /&gt;
Sur Nefald, il correspond à une ville, un camp ou un avant-poste structuré (voir les [[:Catégorie:Localité|localités]]).&lt;br /&gt;
&lt;br /&gt;
=== Claim ===&lt;br /&gt;
Un &#039;&#039;&#039;claim&#039;&#039;&#039; correspond à un chunk revendiqué par un land.&lt;br /&gt;
Il délimite une zone protégée et soumise aux permissions du territoire.&lt;br /&gt;
&lt;br /&gt;
=== Villes, camps et nations ===&lt;br /&gt;
* Un &#039;&#039;&#039;camp&#039;&#039;&#039; est une entité de taille réduite, destinée à des installations limitées ou temporaires.&lt;br /&gt;
* Une &#039;&#039;&#039;ville&#039;&#039;&#039; est l&#039;entité territoriale principale, disposant d&#039;une organisation, d&#039;une économie et d&#039;un rôle politique.&lt;br /&gt;
* Une &#039;&#039;&#039;nation&#039;&#039;&#039; regroupe plusieurs villes sous une même structure politique.&lt;br /&gt;
&lt;br /&gt;
Ces entités sont définies techniquement par Lands, mais leur organisation interne relève du roleplay.&lt;br /&gt;
&lt;br /&gt;
=== Résidents, rôles et permissions ===&lt;br /&gt;
Les joueurs rattachés à un land sont appelés &#039;&#039;&#039;résidents&#039;&#039;&#039;.&lt;br /&gt;
Leurs droits sont définis par des &#039;&#039;&#039;rôles&#039;&#039;&#039;, qui contrôlent notamment :&lt;br /&gt;
* la construction ;&lt;br /&gt;
* l&#039;accès aux coffres et infrastructures ;&lt;br /&gt;
* l&#039;invitation ou l&#039;exclusion de joueurs ;&lt;br /&gt;
* certaines actions administratives.&lt;br /&gt;
&lt;br /&gt;
=== Coûts des territoires ===&lt;br /&gt;
Créer et maintenir un territoire, engendre un coût qui vous sera prélevé. Voir [[monnaie]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Action !! Commande !! Coût&lt;br /&gt;
|-&lt;br /&gt;
| Création d&#039;un campement&lt;br /&gt;
| &amp;lt;code&amp;gt;/land createcamp&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Monnaie|2 oboles}}&lt;br /&gt;
|-&lt;br /&gt;
| Création d&#039;un territoire&lt;br /&gt;
| &amp;lt;code&amp;gt;/land create&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Monnaie|2 écus}}&lt;br /&gt;
|-&lt;br /&gt;
| Création d&#039;un claim&lt;br /&gt;
| &amp;lt;code&amp;gt;/land claim&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Monnaie|1 obole}}&lt;br /&gt;
|-&lt;br /&gt;
| Création d&#039;une nation&lt;br /&gt;
| &amp;lt;code&amp;gt;/nation create&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Monnaie|6 écus}}&lt;br /&gt;
|-&lt;br /&gt;
| Maintien journalier d&#039;un claim&lt;br /&gt;
(territoire + nation)&lt;br /&gt;
|&lt;br /&gt;
|{{Monnaie|3 sols}}&lt;br /&gt;
|}&lt;br /&gt;
{{Monnaie/Légende}}&lt;br /&gt;
&lt;br /&gt;
== Niveaux et capacités des territoires ==&lt;br /&gt;
&lt;br /&gt;
Les niveaux définis par Lands sont des &#039;&#039;&#039;niveaux techniques&#039;&#039;&#039;.&lt;br /&gt;
Ils déterminent des capacités (nombre de claims, options disponibles, limites internes).&lt;br /&gt;
&lt;br /&gt;
Ils &#039;&#039;&#039;n&#039;imposent aucune organisation roleplay&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Une ville ou une nation peut atteindre un palier élevé sans adopter le statut correspondant du point de vue roleplay.&lt;br /&gt;
Par exemple, une nation au palier « Royaume » peut être organisée en république ou toute autre forme politique en jeu.&lt;br /&gt;
&lt;br /&gt;
=== Coûts et prérequis ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Niveau !! Prérequis !! Nombre de chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lieu-dit&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
| 16 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Hameau&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 3 habitants &#039;&#039;+ maire&#039;&#039;&lt;br /&gt;
* 16 chunks revendiqués&lt;br /&gt;
* {{Monnaie|4 écus}} en banque&lt;br /&gt;
| 64 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Village&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 7 habitants &#039;&#039;+ maire&#039;&#039;&lt;br /&gt;
* 64 chunks revendiqués&lt;br /&gt;
* {{Monnaie|6 écus}} en banque&lt;br /&gt;
| 128 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Ville&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 15 habitants &#039;&#039;+ maire&#039;&#039;&lt;br /&gt;
* 128 chunks revendiqués &lt;br /&gt;
* {{Monnaie|8 écus}} en banque&lt;br /&gt;
| 256 chunks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Niveaux des nations ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Niveau !! Prérequis !! Chunks produits&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comté&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
| 8 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Duché&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 3 territoires&lt;br /&gt;
* {{Monnaie|12 écus}} en banque&lt;br /&gt;
| 16 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Royaume&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 6 territoires&lt;br /&gt;
* {{Monnaie|18 écus}} en banque&lt;br /&gt;
| 24 chunks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Empire&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
* 12 territoires&lt;br /&gt;
* {{Monnaie|24 écus}} en banque&lt;br /&gt;
| 32 chunks&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Coffres-forts et économie physique ==&lt;br /&gt;
Sur Nefald, l&#039;économie est intégralement &#039;&#039;&#039;physique&#039;&#039;&#039;.&lt;br /&gt;
Les banques des lands prennent la forme de &#039;&#039;&#039;coffres-forts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Création d&#039;un coffre-fort ===&lt;br /&gt;
Pour créer un coffre-fort :&lt;br /&gt;
* utiliser un coffre, coffre piégé, coffre en cuivre (toutes oxydations et versions cirées incluses) ou un tonneau ;&lt;br /&gt;
* placer un panneau sur le conteneur ;&lt;br /&gt;
* inscrire sur la première ligne :&lt;br /&gt;
&amp;lt;code&amp;gt;[land vault]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il est possible :&lt;br /&gt;
* d&#039;indiquer le nom du land sur la troisième ligne ;&lt;br /&gt;
* à défaut, le coffre-fort est automatiquement lié au land dans lequel il se trouve.&lt;br /&gt;
&lt;br /&gt;
== Diplomatie et conflits ==&lt;br /&gt;
Lands propose des mécaniques avancées :&lt;br /&gt;
* relations diplomatiques ;&lt;br /&gt;
* alliances ;&lt;br /&gt;
* conflits et guerres ;&lt;br /&gt;
* occupation ou perte de territoires.&lt;br /&gt;
&lt;br /&gt;
{{Badge|Bêta|type=beta}} &#039;&#039;&#039;Les conflits armés et guerres sont désactivés durant la phase de bêta.&#039;&#039;&#039;&lt;br /&gt;
Ils seront activés ultérieurement, une fois le socle territorial stabilisé.&lt;br /&gt;
&lt;br /&gt;
== Intégration Discord ==&lt;br /&gt;
&lt;br /&gt;
Le plugin [[Plugin:DiscordBridge|DiscordBridge]] s&#039;intègre nativement à Lands et permet aux chefs de Land et de Nation de disposer de salons Discord privés, gérés automatiquement par le bot sans intervention de l&#039;administration du serveur.&lt;br /&gt;
&lt;br /&gt;
=== Prérequis ===&lt;br /&gt;
Cette fonctionnalité nécessite que les deux plugins &#039;&#039;&#039;Lands&#039;&#039;&#039; et &#039;&#039;&#039;[[Plugin:DiscordBridge|DiscordBridge]]&#039;&#039;&#039; soient installés et actifs sur le serveur. La configuration initiale est réalisée par un administrateur directement depuis Discord.&lt;br /&gt;
&lt;br /&gt;
=== Configuration des catégories (administration) ===&lt;br /&gt;
Avant que les chefs de Land puissent créer leurs salons, un administrateur doit définir la &#039;&#039;&#039;catégorie Discord&#039;&#039;&#039; qui les accueillera, en exécutant la commande suivante dans un salon Discord où le bot est présent :&lt;br /&gt;
&lt;br /&gt;
 /config set LANDS_CHAT_CATEGORY&lt;br /&gt;
&lt;br /&gt;
Il est également recommandé de configurer un &#039;&#039;&#039;salon d&#039;annonces&#039;&#039;&#039; dédié aux événements liés aux Lands (suppressions, déclarations de guerre, etc.) :&lt;br /&gt;
&lt;br /&gt;
 /config set LANDS_BROADCAST_CHANNEL&lt;br /&gt;
&lt;br /&gt;
Les notifications peuvent être affinées par catégorie d&#039;événement via :&lt;br /&gt;
&lt;br /&gt;
 /config set LANDS_NOTIFY_&amp;lt;broadcast_category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où &amp;lt;code&amp;gt;&amp;amp;lt;broadcast_category&amp;amp;gt;&amp;lt;/code&amp;gt; est à remplacer par la catégorie d&#039;événement concernée.&lt;br /&gt;
&lt;br /&gt;
=== Création d&#039;un salon par un chef de Land ===&lt;br /&gt;
Une fois la catégorie définie par l&#039;administration, chaque chef de Land peut créer son propre salon textuel et vocal privé depuis Discord :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Commande Discord !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/lands channel create&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée un salon textuel et vocal pour le Land dans la catégorie configurée.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/nations channel create&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée un salon textuel et vocal pour la Nation dans la catégorie configurée.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=info|La création de salons Discord par les joueurs est entièrement optionnelle. Si la &amp;lt;code&amp;gt;LANDS_CHAT_CATEGORY&amp;lt;/code&amp;gt; n&#039;est pas définie par l&#039;administration, cette fonctionnalité reste simplement inactive. Les annonces via &amp;lt;code&amp;gt;LANDS_BROADCAST_CHANNEL&amp;lt;/code&amp;gt; fonctionnent indépendamment.}}&lt;br /&gt;
&lt;br /&gt;
== Commandes &amp;amp; permissions ==&lt;br /&gt;
&lt;br /&gt;
=== Alias ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Commande&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Alias 1&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Alias 2&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|/lands&lt;br /&gt;
|/land&lt;br /&gt;
|/wars&lt;br /&gt;
|-&lt;br /&gt;
|/nations&lt;br /&gt;
|&#039;&#039;N/A&#039;&#039;&lt;br /&gt;
|&#039;&#039;N/A&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes principales ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Commande&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Permission&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|/lands create&lt;br /&gt;
|Créer un land&lt;br /&gt;
|lands.create&lt;br /&gt;
|-&lt;br /&gt;
|/lands claim&lt;br /&gt;
|Revendiquer un chunk&lt;br /&gt;
|lands.claim&lt;br /&gt;
|-&lt;br /&gt;
|/lands unclaim&lt;br /&gt;
|Libérer un chunk&lt;br /&gt;
|lands.unclaim&lt;br /&gt;
|-&lt;br /&gt;
|/lands trust&lt;br /&gt;
|Inviter un joueur&lt;br /&gt;
|lands.trust&lt;br /&gt;
|-&lt;br /&gt;
|/lands untrust&lt;br /&gt;
|Retirer un joueur&lt;br /&gt;
|lands.untrust&lt;br /&gt;
|-&lt;br /&gt;
|/lands menu&lt;br /&gt;
|Ouvrir le menu du land&lt;br /&gt;
|lands.menu&lt;br /&gt;
|-&lt;br /&gt;
|/lands setspawn&lt;br /&gt;
|Définir le spawn du land&lt;br /&gt;
|lands.setspawn&lt;br /&gt;
|-&lt;br /&gt;
|/lands delete&lt;br /&gt;
|Supprimer un land&lt;br /&gt;
|lands.delete&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nations ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Commande&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Permission&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|/nations create&lt;br /&gt;
|Créer une nation&lt;br /&gt;
|lands.nation.create&lt;br /&gt;
|-&lt;br /&gt;
|/nations trust&lt;br /&gt;
|Ajouter un land à une nation&lt;br /&gt;
|lands.nation.trust&lt;br /&gt;
|-&lt;br /&gt;
|/nations untrust&lt;br /&gt;
|Retirer un land d&#039;une nation&lt;br /&gt;
|lands.nation.untrust&lt;br /&gt;
|-&lt;br /&gt;
|/nations relations&lt;br /&gt;
|Gérer les relations diplomatiques&lt;br /&gt;
|lands.nation.relations&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Commandes administratives ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;Commande&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Permission&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|/lands admin&lt;br /&gt;
|Accéder aux outils administratifs&lt;br /&gt;
|lands.admin&lt;br /&gt;
|-&lt;br /&gt;
|/lands edit&lt;br /&gt;
|Modifier un land&lt;br /&gt;
|lands.admin.edit&lt;br /&gt;
|-&lt;br /&gt;
|/lands admin trust&lt;br /&gt;
|Forcer une invitation&lt;br /&gt;
|lands.admin.trust&lt;br /&gt;
|-&lt;br /&gt;
|/lands admin untrust&lt;br /&gt;
|Forcer une exclusion&lt;br /&gt;
|lands.admin.untrust&lt;br /&gt;
|-&lt;br /&gt;
|/lands reload&lt;br /&gt;
|Recharger la configuration&lt;br /&gt;
|lands.admin.reload&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Plugin installé]]&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/Symbole&amp;diff=5752</id>
		<title>Modèle:Touche/Symbole</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/Symbole&amp;diff=5752"/>
		<updated>2026-04-02T19:34:31Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « &amp;lt;includeonly&amp;gt;{{#switch:{{lc:{{{1|}}}}} | verr maj            = ⇪ Verr Maj | shift               = ⇧ Shift | entrée              = ↵ Entrée | cmd                 = ⌘ Cmd | opt                 = ⌥ Opt | tab                 = Tab ⇆ | retour              = ← Retour | méta                = ⊞ Méta | menu                = ≣ Menu | ctrl                = Ctrl | alt                 = Alt | espace              = Espace | suppr               = Suppr |... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
| verr maj            = ⇪ Verr Maj&lt;br /&gt;
| shift               = ⇧ Shift&lt;br /&gt;
| entrée              = ↵ Entrée&lt;br /&gt;
| cmd                 = ⌘ Cmd&lt;br /&gt;
| opt                 = ⌥ Opt&lt;br /&gt;
| tab                 = Tab ⇆&lt;br /&gt;
| retour              = ← Retour&lt;br /&gt;
| méta                = ⊞ Méta&lt;br /&gt;
| menu                = ≣ Menu&lt;br /&gt;
| ctrl                = Ctrl&lt;br /&gt;
| alt                 = Alt&lt;br /&gt;
| espace              = Espace&lt;br /&gt;
| suppr               = Suppr&lt;br /&gt;
| échap | echap       = Échap&lt;br /&gt;
| haut                = ↑&lt;br /&gt;
| bas                 = ↓&lt;br /&gt;
| gauche              = ←&lt;br /&gt;
| droite              = →&lt;br /&gt;
| *                   = &amp;lt;nowiki/&amp;gt;*&lt;br /&gt;
| #                   = &amp;lt;nowiki/&amp;gt;#&lt;br /&gt;
| :                   = &amp;lt;nowiki/&amp;gt;:&lt;br /&gt;
| l-haut   | l haut   = L↑&lt;br /&gt;
| l-bas    | l bas    = L↓&lt;br /&gt;
| l-gauche | l gauche = L←&lt;br /&gt;
| l-droit  | l droit  = L→&lt;br /&gt;
| l-ne     | l ne     = L↗&lt;br /&gt;
| l-se     | l se     = L↘&lt;br /&gt;
| l-nw     | l nw     = L↖&lt;br /&gt;
| l-sw     | l sw     = L↙&lt;br /&gt;
| r-up     | r up     = R↑&lt;br /&gt;
| r-bas    | r bas    = R↓&lt;br /&gt;
| r-gauche | r gauche = R←&lt;br /&gt;
| r-droit  | r droit  = R→&lt;br /&gt;
| r-ne     | r ne     = R↗&lt;br /&gt;
| r-se     | r se     = R↘&lt;br /&gt;
| r-nw     | r nw     = R↖&lt;br /&gt;
| r-sw     | r sw     = R↙&lt;br /&gt;
| ps x     | ex       = ×&lt;br /&gt;
| ps c     | cercle   = ○&lt;br /&gt;
| ps s     | carré    = □&lt;br /&gt;
| ps t     | triangle = △&lt;br /&gt;
| c-haut   | c haut   = C↑&lt;br /&gt;
| c-bas    | c bas    = C↓&lt;br /&gt;
| c-gauche | c gauche = C←&lt;br /&gt;
| c-droite | c droite = C→&lt;br /&gt;
| c-ne     | c ne     = C↗&lt;br /&gt;
| c-se     | c se     = C↘&lt;br /&gt;
| c-nw     | c nw     = C↖&lt;br /&gt;
| c-sw     | c sw     = C↙&lt;br /&gt;
| xb-a                = &amp;amp;#x24B6;&lt;br /&gt;
| xb-b                = &amp;amp;#x24B7;&lt;br /&gt;
| xb-x                = &amp;amp;#x24CD;&lt;br /&gt;
| xb-y                = &amp;amp;#x24CE;&lt;br /&gt;
| xb-lb               = &amp;amp;#x257C;&lt;br /&gt;
| xb-rb               = &amp;amp;#x257E;&lt;br /&gt;
| xb-lt               = &amp;amp;#x27C5;&lt;br /&gt;
| xb-rt               = &amp;amp;#x27C6;&lt;br /&gt;
| xb-retour           = &amp;amp;#x25C0;&lt;br /&gt;
| xb-commencer        = &amp;amp;#x25B6;&lt;br /&gt;
| #default            = {{{1}}}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/styles.css&amp;diff=5751</id>
		<title>Modèle:Touche/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/styles.css&amp;diff=5751"/>
		<updated>2026-04-02T19:33:58Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « /* ============================================================  * MODÈLE TOUCHE — Rendu clavier  * ============================================================ */  .nefald-kbd-combo { display: inline-flex; align-items: center; gap: var(--space-xxs, 0.25rem); vertical-align: middle; line-height: 1; }  .nefald-kbd { display: inline-flex; align-items: center; justify-content: center; min-width: 1.75em; padding: 0.15em 0.5em 0.25em; font-family: var(--font-family... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ============================================================&lt;br /&gt;
 * MODÈLE TOUCHE — Rendu clavier&lt;br /&gt;
 * ============================================================ */&lt;br /&gt;
&lt;br /&gt;
.nefald-kbd-combo {&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
gap: var(--space-xxs, 0.25rem);&lt;br /&gt;
vertical-align: middle;&lt;br /&gt;
line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.nefald-kbd {&lt;br /&gt;
display: inline-flex;&lt;br /&gt;
align-items: center;&lt;br /&gt;
justify-content: center;&lt;br /&gt;
min-width: 1.75em;&lt;br /&gt;
padding: 0.15em 0.5em 0.25em;&lt;br /&gt;
font-family: var(--font-family-citizen-monospace);&lt;br /&gt;
font-size: 0.8em;&lt;br /&gt;
font-weight: var(--font-weight-semibold);&lt;br /&gt;
line-height: 1.4;&lt;br /&gt;
white-space: nowrap;&lt;br /&gt;
color: var(--color-emphasized);&lt;br /&gt;
background-color: var(--color-surface-2);&lt;br /&gt;
border: 1px solid var(--color-surface-4);&lt;br /&gt;
border-bottom-width: 3px;&lt;br /&gt;
border-radius: 5px;&lt;br /&gt;
box-shadow: 0 1px 0 1px var(--color-surface-3), inset 0 -1px 0 var(--color-surface-4);&lt;br /&gt;
user-select: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.nefald-kbd-sep {&lt;br /&gt;
font-size: 0.75em;&lt;br /&gt;
font-weight: var(--font-weight-semibold, 600);&lt;br /&gt;
color: var(--color-subtle);&lt;br /&gt;
user-select: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/doc&amp;diff=5750</id>
		<title>Modèle:Touche/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche/doc&amp;diff=5750"/>
		<updated>2026-04-02T19:33:36Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « == Description == Affiche une combinaison de touches de clavier de façon visuelle.  == Syntaxe == &amp;lt;pre&amp;gt;{{Touche|touche1|touche2|touche3|...}}&amp;lt;/pre&amp;gt;  Jusqu&amp;#039;à 5 touches peuvent être combinées.  == Exemples == {| class=&amp;quot;wikitable&amp;quot; ! Wikicode !! Rendu |- | &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Ctrl|S}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Ctrl|S}} |- | &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Ctrl|Shift|L}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Ctrl|Shift|L}} |- | &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Cmd|Shift|L}}&amp;lt;/nowiki&amp;gt;&amp;lt;/cod... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Affiche une combinaison de touches de clavier de façon visuelle.&lt;br /&gt;
&lt;br /&gt;
== Syntaxe ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Touche|touche1|touche2|touche3|...}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jusqu&#039;à 5 touches peuvent être combinées.&lt;br /&gt;
&lt;br /&gt;
== Exemples ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wikicode !! Rendu&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Ctrl|S}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Ctrl|S}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Ctrl|Shift|L}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Ctrl|Shift|L}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Cmd|Shift|L}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Cmd|Shift|L}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Alt|F4}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Alt|F4}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|Échap}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|Échap}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Touche|↑}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{Touche|↑}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Fonctionne avec n&#039;importe quel texte : &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Cmd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;⌘&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;⇧&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;↵&amp;lt;/code&amp;gt;…&lt;br /&gt;
* Peut être utilisé en ligne dans une phrase : appuyez sur {{Touche|Ctrl|Z}} pour annuler.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Catégorie:Documentation de modèle]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche&amp;diff=5749</id>
		<title>Modèle:Touche</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Touche&amp;diff=5749"/>
		<updated>2026-04-02T19:33:20Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « &amp;lt;noinclude&amp;gt;{{Documentation}}Catégorie:Modèle de mise en forme&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;templatestyles src=&amp;quot;Touche/styles.css&amp;quot; /&amp;gt;&amp;lt;!-- --&amp;gt;&amp;lt;span class=&amp;quot;nefald-kbd-combo&amp;quot;&amp;gt;&amp;lt;!-- --&amp;gt;{{#if:{{{1|}}}|&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{1}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!-- --&amp;gt;{{#if:{{{2|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{2}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!-- --&amp;gt;{{#if:{{{3|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Sy... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Documentation}}[[Catégorie:Modèle de mise en forme]]&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;templatestyles src=&amp;quot;Touche/styles.css&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;nefald-kbd-combo&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{1|}}}|&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{1}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{2|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{2}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{3|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{3}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{4|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{4}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{5|}}}|&amp;lt;span class=&amp;quot;nefald-kbd-sep&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;kbd class=&amp;quot;nefald-kbd&amp;quot;&amp;gt;{{Touche/Symbole|{{{5}}}}}&amp;lt;/kbd&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Monnaie&amp;diff=5746</id>
		<title>Monnaie</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Monnaie&amp;diff=5746"/>
		<updated>2026-03-30T19:20:18Z</updated>

		<summary type="html">&lt;p&gt;Hiob : réécriture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SHORTDESC:Système monétaire officiel utilisé sur Fendral pour les échanges, propriétés et mécanismes économiques.}}&lt;br /&gt;
&lt;br /&gt;
= Système monétaire =&lt;br /&gt;
&lt;br /&gt;
Le système monétaire de [[Fendral]] repose sur des pièces physiques utilisées comme outil de gameplay.&lt;br /&gt;
Il constitue l&#039;unique monnaie reconnue sur l&#039;ensemble du serveur.&lt;br /&gt;
&lt;br /&gt;
== Unités monétaires ==&lt;br /&gt;
&lt;br /&gt;
Le système est en base mixte 64/64 et repose sur trois unités :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Monnaie !! Item !! Matière !! Valeur en sols&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Écu&#039;&#039;&#039; || [[Fichier:écu_pièce_or.png|24px|left]] || Or || 64 oboles&amp;lt;br&amp;gt;4096 sols&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Obole&#039;&#039;&#039; || [[Fichier:obole_pièce_argent.png|24px|left]] || Argent || 64 sols&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Sol&#039;&#039;&#039; || [[Fichier:sol_pièce_cuivre.png|24px|left]] || Cuivre || 1 sol&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement ==&lt;br /&gt;
&lt;br /&gt;
Les pièces :&lt;br /&gt;
&lt;br /&gt;
* sont des éléments physiques non craftables&lt;br /&gt;
* peuvent être perdues (mort, vol, destruction)&lt;br /&gt;
* doivent être protégées par les joueurs&lt;br /&gt;
* ne sont soumises à aucune limite de possession&lt;br /&gt;
* ne sont pas générées automatiquement&lt;br /&gt;
&lt;br /&gt;
Il n&#039;existe pas de banque centrale à ce stade ([[Nefald:Roadmap|Roadmap]]).&lt;br /&gt;
&lt;br /&gt;
== Obtention ==&lt;br /&gt;
&lt;br /&gt;
=== Commercer avec les cités-états ===&lt;br /&gt;
&lt;br /&gt;
Les grandes cités disposent de commerçants et d&#039;un système d&#039;&#039;&#039;&#039;[[Hôtel des Ventes]]&#039;&#039;&#039;.&lt;br /&gt;
Les joueurs peuvent uniquement y vendre des ressources. Les prix pratiqués dépendent :&lt;br /&gt;
&lt;br /&gt;
* du &#039;&#039;&#039;niveau du joueur&#039;&#039;&#039; dans le [[:Catégorie:Métier|métier]] associé aux objets vendus ;&lt;br /&gt;
* d&#039;une logique d&#039;&#039;&#039;&#039;offre et de demande&#039;&#039;&#039; à l&#039;échelle de chaque cité-état.&lt;br /&gt;
&lt;br /&gt;
Ce système constitue une source de revenus stable et accessible.&lt;br /&gt;
&lt;br /&gt;
=== Réaliser des quêtes ===&lt;br /&gt;
&lt;br /&gt;
{{Badge|Bêta|type=beta}} Des &#039;&#039;&#039;[[Quête]]s&#039;&#039;&#039; permettent d&#039;obtenir des récompenses financières.&lt;br /&gt;
Elles peuvent être :&lt;br /&gt;
&lt;br /&gt;
* journalières ;&lt;br /&gt;
* liées à des villes ou factions ;&lt;br /&gt;
* événementielles.&lt;br /&gt;
&lt;br /&gt;
Les [[Quête]]s offrent un revenu encadré, indépendant des fluctuations du marché.&lt;br /&gt;
&lt;br /&gt;
=== Commerce entre joueurs ===&lt;br /&gt;
&lt;br /&gt;
Les joueurs peuvent commercer librement entre eux :&lt;br /&gt;
&lt;br /&gt;
* ventes directes ;&lt;br /&gt;
* contrats et commandes spécifiques ;&lt;br /&gt;
* négociations privées.&lt;br /&gt;
&lt;br /&gt;
Le troc reste également possible. Ces échanges reposent sur la dynamique économique et roleplay du serveur.&lt;br /&gt;
&lt;br /&gt;
== Usages ==&lt;br /&gt;
&lt;br /&gt;
La monnaie est nécessaire pour :&lt;br /&gt;
&lt;br /&gt;
* acheter ou louer des propriétés dans les villes existantes ;&lt;br /&gt;
* fonder et gérer des territoires via [[Plugin:Lands|Lands]] ;&lt;br /&gt;
* payer les loyers et coûts d&#039;entretien liés aux claims ;&lt;br /&gt;
* servir de tribut dans le cadre d&#039;accords de paix.&lt;br /&gt;
&lt;br /&gt;
Les nations et cités peuvent définir librement des taxes, des loyers et des prélèvements.&lt;br /&gt;
Les propriétaires de territoires peuvent également louer des parcelles et organiser une activité économique locale, dont les revenus dépendent de la gestion et de l&#039;attractivité du territoire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Change de monnaie ===&lt;br /&gt;
&lt;br /&gt;
Les bureaux de trésorerie, présents dans chaque cité-état, permettent de convertir les pièces entre elles :&lt;br /&gt;
&lt;br /&gt;
* 64 sols ↔ 1 obole&lt;br /&gt;
* 64 oboles ↔ 1 écu&lt;br /&gt;
&lt;br /&gt;
== Stockage ==&lt;br /&gt;
&lt;br /&gt;
La monnaie peut être stockée :&lt;br /&gt;
&lt;br /&gt;
* individuellement ;&lt;br /&gt;
* dans un [[territoire]] ;&lt;br /&gt;
* au niveau d&#039;une [[Territoire#nation|nation]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Economie &amp;amp; Technologies]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5726</id>
		<title>Modèle:Conseil/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5726"/>
		<updated>2026-03-13T20:03:59Z</updated>

		<summary type="html">&lt;p&gt;Hiob : + Officier parce que FaFa il est tout chafouin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Le modèle {{m|Modèle:Conseil}} affiche l&#039;ensemble des membres de l&#039;équipe d&#039;administration du serveur Nefald sous forme de cartes visuelles.&lt;br /&gt;
&lt;br /&gt;
Il regroupe automatiquement les sous-modèles suivants :&lt;br /&gt;
* {{m|Modèle:Intendant}} — Les [[Intendant]]s&lt;br /&gt;
* {{m|Modèle:Officier}} - Les [[Officier]]s&lt;br /&gt;
* {{m|Modèle:Architecte}} — Les [[Architecte]]s&lt;br /&gt;
* {{m|Modèle:Scribe}} — Les [[Scribe]]s&lt;br /&gt;
* {{m|Modèle:Scriptomancien}} — Les [[Scriptomancien]]s&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle n&#039;accepte &#039;&#039;&#039;aucun paramètre&#039;&#039;&#039;.&lt;br /&gt;
Pour modifier les membres affichés, éditez directement le sous-modèle correspondant au rôle concerné.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|N&#039;éditez en aucun cas {{m|Modèle:Conseil}} pour ajouter des membres du &#039;&#039;&#039;Conseil&#039;&#039;&#039;, éditez uniquement les sous-modèles listés ci-dessous.}}&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rôle !! Modèle à éditer&lt;br /&gt;
|-&lt;br /&gt;
| [[Intendant]] || {{m|Modèle:Intendant}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Officier]]  || {{m|Modèle:Officier}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Architecte]] || {{m|Modèle:Architecte}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Scribe]] || {{m|Modèle:Scribe}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Scriptomancien]] || {{m|Modèle:Scriptomancien}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilisez {{m|Modèle:Joueur}} pour ajouter ou modifier un membre au sous-modèle adéquat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rendu du modèle ==&lt;br /&gt;
{{Conseil}}&lt;br /&gt;
&lt;br /&gt;
== Rendu par rôle ==&lt;br /&gt;
&lt;br /&gt;
=== Intendants ===&lt;br /&gt;
{{Intendant}}&lt;br /&gt;
&lt;br /&gt;
=== Officiers ===&lt;br /&gt;
{{Officier}}&lt;br /&gt;
&lt;br /&gt;
=== Architectes ===&lt;br /&gt;
{{Architecte}}&lt;br /&gt;
&lt;br /&gt;
=== Scribes ===&lt;br /&gt;
{{Scribe}}&lt;br /&gt;
&lt;br /&gt;
=== Scriptomanciens ===&lt;br /&gt;
{{Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* {{m|Modèle:Intendant}}&lt;br /&gt;
* {{m|Modèle:Officier}}&lt;br /&gt;
* {{m|Modèle:Architecte}}&lt;br /&gt;
* {{m|Modèle:Scribe}}&lt;br /&gt;
* {{m|Modèle:Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Documentation de modèle]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora/doc&amp;diff=5725</id>
		<title>Modèle:Agora/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora/doc&amp;diff=5725"/>
		<updated>2026-03-13T15:57:57Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Le modèle {{m|Modèle:Agora}} affiche l&#039;ensemble des membres de l&#039;équipe joueurs du serveur Nefald sous forme de cartes visuelles.&lt;br /&gt;
&lt;br /&gt;
Il regroupe automatiquement les sous-modèles suivants :&lt;br /&gt;
* {{m|Modèle:Aspirant}} — Les [[Aspirant]]s&lt;br /&gt;
* {{m|Modèle:Bâtisseur}} — Les [[Bâtisseur]]s&lt;br /&gt;
* {{m|Modèle:Ménestrel}} — Les [[Ménestrel]]s&lt;br /&gt;
* {{m|Modèle:Machiniste}} — Les [[Machiniste]]s&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Agora}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle n&#039;accepte &#039;&#039;&#039;aucun paramètre&#039;&#039;&#039;. Pour modifier les membres affichés, éditez directement le sous-modèle correspondant au rôle concerné.&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rôle !! Modèle à éditer&lt;br /&gt;
|-&lt;br /&gt;
| [[Aspirant]] || {{m|Modèle:Aspirant}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Bâtisseur]] || {{m|Modèle:Bâtisseur}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Ménestrel]] || {{m|Modèle:Ménestrel}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Machiniste]] || {{m|Modèle:Machiniste}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rendu du modèle ==&lt;br /&gt;
{{Agora}}&lt;br /&gt;
&lt;br /&gt;
== Rendu par rôle ==&lt;br /&gt;
&lt;br /&gt;
=== Aspirants ===&lt;br /&gt;
{{Aspirant}}&lt;br /&gt;
&lt;br /&gt;
=== Bâtisseur ===&lt;br /&gt;
{{Bâtisseur}}&lt;br /&gt;
&lt;br /&gt;
=== Ménestrels ===&lt;br /&gt;
{{Ménestrel}}&lt;br /&gt;
&lt;br /&gt;
=== Machinistes===&lt;br /&gt;
{{Machiniste}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* {{m|Modèle:Aspirant}}&lt;br /&gt;
* {{m|Modèle:Bâtisseur}}&lt;br /&gt;
* {{m|Modèle:Ménestrel}}&lt;br /&gt;
* {{m|Modèle:Machiniste}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Documentation de modèle]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora&amp;diff=5724</id>
		<title>Modèle:Agora</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora&amp;diff=5724"/>
		<updated>2026-03-13T15:50:59Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Grille|&lt;br /&gt;
‎{{Aspirant}}&lt;br /&gt;
{{Machiniste}}&lt;br /&gt;
{{Ménestrel}}&lt;br /&gt;
{{Bâtisseur}}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}[[Catégorie:Agora]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Aspirant&amp;diff=5723</id>
		<title>Modèle:Aspirant</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Aspirant&amp;diff=5723"/>
		<updated>2026-03-13T15:48:23Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page vide créée&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora&amp;diff=5722</id>
		<title>Modèle:Agora</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora&amp;diff=5722"/>
		<updated>2026-03-13T15:48:08Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Grille|&lt;br /&gt;
‎{{Aspirant}}&lt;br /&gt;
{{Machiniste}}&lt;br /&gt;
{{Ménestrel}}&lt;br /&gt;
{{Bâtisseur}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Catégorie:Agora]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5721</id>
		<title>Modèle:Conseil/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5721"/>
		<updated>2026-03-12T21:25:30Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Le modèle {{m|Modèle:Conseil}} affiche l&#039;ensemble des membres de l&#039;équipe d&#039;administration du serveur Nefald sous forme de cartes visuelles.&lt;br /&gt;
&lt;br /&gt;
Il regroupe automatiquement les sous-modèles suivants :&lt;br /&gt;
* {{m|Modèle:Intendant}} — Les [[Intendant]]s&lt;br /&gt;
* {{m|Modèle:Architecte}} — Les [[Architecte]]s&lt;br /&gt;
* {{m|Modèle:Scribe}} — Les [[Scribe]]s&lt;br /&gt;
* {{m|Modèle:Scriptomancien}} — Les [[Scriptomancien]]s&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle n&#039;accepte &#039;&#039;&#039;aucun paramètre&#039;&#039;&#039;.&lt;br /&gt;
Pour modifier les membres affichés, éditez directement le sous-modèle correspondant au rôle concerné.&lt;br /&gt;
&lt;br /&gt;
{{Bandeau|type=warning|N&#039;éditez en aucun cas {{m|Modèle:Conseil}} pour ajouter des membres du &#039;&#039;&#039;Conseil&#039;&#039;&#039;, éditez uniquement les sous-modèles listés ci-dessous.}}&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rôle !! Modèle à éditer&lt;br /&gt;
|-&lt;br /&gt;
| [[Intendant]] || {{m|Modèle:Intendant}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Architecte]] || {{m|Modèle:Architecte}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Scribe]] || {{m|Modèle:Scribe}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Scriptomancien]] || {{m|Modèle:Scriptomancien}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Utilisez {{m|Modèle:Joueur}} pour ajouter ou modifier un membre au sous-modèle adéquat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rendu du modèle ==&lt;br /&gt;
{{Conseil}}&lt;br /&gt;
&lt;br /&gt;
== Rendu par rôle ==&lt;br /&gt;
&lt;br /&gt;
=== Intendants ===&lt;br /&gt;
{{Intendant}}&lt;br /&gt;
&lt;br /&gt;
=== Architectes ===&lt;br /&gt;
{{Architecte}}&lt;br /&gt;
&lt;br /&gt;
=== Scribes ===&lt;br /&gt;
{{Scribe}}&lt;br /&gt;
&lt;br /&gt;
=== Scriptomanciens ===&lt;br /&gt;
{{Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* {{m|Modèle:Intendant}}&lt;br /&gt;
* {{m|Modèle:Architecte}}&lt;br /&gt;
* {{m|Modèle:Scribe}}&lt;br /&gt;
* {{m|Modèle:Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Documentation de modèle]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Scriptomancien&amp;diff=5720</id>
		<title>Modèle:Scriptomancien</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Scriptomancien&amp;diff=5720"/>
		<updated>2026-03-12T21:20:14Z</updated>

		<summary type="html">&lt;p&gt;Hiob : doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Joueur|Kaeternn|grade=Scriptomancien|texte=Développement des scripts et des plugins, maintenance du serveur Minecraft. Membre du [[Nefald:Collège|Collège]].}}{{Joueur|Monnierant|grade=Scriptomancien|texte=Développement des scripts et des plugins, maintenance du serveur Minecraft.}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Modèle:Conseil/doc}}[[Catégorie:Conseil]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Scribe&amp;diff=5719</id>
		<title>Modèle:Scribe</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Scribe&amp;diff=5719"/>
		<updated>2026-03-12T21:19:36Z</updated>

		<summary type="html">&lt;p&gt;Hiob : doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Joueur|Ayd|grade=Scribe|texte=Développement du roleplay. Membre du [[Nefald:Collège|Collège]].}}&lt;br /&gt;
{{Joueur|BestLeekEver|alias=Kelloggs|grade=Scribe|texte=Développement des quêtes, responsable de l&#039;équipe animation.}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Modèle:Conseil/doc}}[[Catégorie:Conseil]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Intendant&amp;diff=5718</id>
		<title>Modèle:Intendant</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Intendant&amp;diff=5718"/>
		<updated>2026-03-12T21:19:01Z</updated>

		<summary type="html">&lt;p&gt;Hiob : doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Joueur|Hiob_|grade=Grand Intendant|lien=Utilisateur:Hiob|texte=Fondateur &amp;amp; owner&amp;lt;br&amp;gt;Maintenance des infrastructures et de l&#039;ensemble des services.}}&lt;br /&gt;
{{Joueur|Rocmop|grade=Intendant|texte=Administrateur en charge de l&#039;Architecture, des créations visuelles. Membre du [[Nefald:Collège|Collège]].}}&lt;br /&gt;
{{Joueur|Survetman|grade=Intendant|texte=Administration des Scriptomanciens, développement des quêtes, maintenance du serveur Minecraft.}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Modèle:Conseil/doc}}[[Catégorie:Conseil]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Architecte&amp;diff=5717</id>
		<title>Modèle:Architecte</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Architecte&amp;diff=5717"/>
		<updated>2026-03-12T21:18:25Z</updated>

		<summary type="html">&lt;p&gt;Hiob : doc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Joueur|Quicky59|grade=Architecte|texte=Achitecture, construction des principaux monuments}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Modèle:Conseil/doc}}[[Catégorie:Conseil]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil&amp;diff=5716</id>
		<title>Modèle:Conseil</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil&amp;diff=5716"/>
		<updated>2026-03-12T21:16:02Z</updated>

		<summary type="html">&lt;p&gt;Hiob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Grille|{{Intendant}}{{Officier}}{{Architecte}}{{Scribe}}{{Scriptomancien}}}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}[[Catégorie:Conseil]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5715</id>
		<title>Modèle:Conseil/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Conseil/doc&amp;diff=5715"/>
		<updated>2026-03-12T21:15:19Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « == Description == Le modèle {{m|Modèle:Conseil}} affiche l&amp;#039;ensemble des membres de l&amp;#039;équipe d&amp;#039;administration du serveur Nefald sous forme de cartes visuelles.  Il regroupe automatiquement les sous-modèles suivants : * {{m|Modèle:Intendant}} — Les Intendants * {{m|Modèle:Architecte}} — Les Architectes * {{m|Modèle:Scribe}} — Les Scribes * {{m|Modèle:Scriptomancien}} — Les Scriptomanciens  == Utilisation == &amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;  Ce... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Le modèle {{m|Modèle:Conseil}} affiche l&#039;ensemble des membres de l&#039;équipe d&#039;administration du serveur Nefald sous forme de cartes visuelles.&lt;br /&gt;
&lt;br /&gt;
Il regroupe automatiquement les sous-modèles suivants :&lt;br /&gt;
* {{m|Modèle:Intendant}} — Les [[Intendant]]s&lt;br /&gt;
* {{m|Modèle:Architecte}} — Les [[Architecte]]s&lt;br /&gt;
* {{m|Modèle:Scribe}} — Les [[Scribe]]s&lt;br /&gt;
* {{m|Modèle:Scriptomancien}} — Les [[Scriptomancien]]s&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle n&#039;accepte &#039;&#039;&#039;aucun paramètre&#039;&#039;&#039;. Pour modifier les membres affichés, éditez directement le sous-modèle correspondant au rôle concerné.&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rôle !! Modèle à éditer&lt;br /&gt;
|-&lt;br /&gt;
| Intendant || {{m|Modèle:Intendant}}&lt;br /&gt;
|-&lt;br /&gt;
| Architecte || {{m|Modèle:Architecte}}&lt;br /&gt;
|-&lt;br /&gt;
| Scribe || {{m|Modèle:Scribe}}&lt;br /&gt;
|-&lt;br /&gt;
| Scriptomancien || {{m|Modèle:Scriptomancien}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rendu du modèle ==&lt;br /&gt;
{{Conseil}}&lt;br /&gt;
&lt;br /&gt;
== Rendu par rôle ==&lt;br /&gt;
&lt;br /&gt;
=== Intendants ===&lt;br /&gt;
{{Intendant}}&lt;br /&gt;
&lt;br /&gt;
=== Architectes ===&lt;br /&gt;
{{Architecte}}&lt;br /&gt;
&lt;br /&gt;
=== Scribes ===&lt;br /&gt;
{{Scribe}}&lt;br /&gt;
&lt;br /&gt;
=== Scriptomanciens ===&lt;br /&gt;
{{Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* {{m|Modèle:Intendant}}&lt;br /&gt;
* {{m|Modèle:Architecte}}&lt;br /&gt;
* {{m|Modèle:Scribe}}&lt;br /&gt;
* {{m|Modèle:Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Documentation de modèle]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora/doc&amp;diff=5714</id>
		<title>Modèle:Agora/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Agora/doc&amp;diff=5714"/>
		<updated>2026-03-12T21:14:33Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « == Description == Le modèle {{m|Modèle:Conseil}} affiche l&amp;#039;ensemble des membres de l&amp;#039;équipe d&amp;#039;administration du serveur Nefald sous forme de cartes visuelles.  Il regroupe automatiquement les sous-modèles suivants : * {{m|Modèle:Intendant}} — Les Intendants * {{m|Modèle:Architecte}} — Les Architectes * {{m|Modèle:Scribe}} — Les Scribes * {{m|Modèle:Scriptomancien}} — Les Scriptomanciens  == Utilisation == &amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;  Ce... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Le modèle {{m|Modèle:Conseil}} affiche l&#039;ensemble des membres de l&#039;équipe d&#039;administration du serveur Nefald sous forme de cartes visuelles.&lt;br /&gt;
&lt;br /&gt;
Il regroupe automatiquement les sous-modèles suivants :&lt;br /&gt;
* {{m|Modèle:Intendant}} — Les [[Intendant]]s&lt;br /&gt;
* {{m|Modèle:Architecte}} — Les [[Architecte]]s&lt;br /&gt;
* {{m|Modèle:Scribe}} — Les [[Scribe]]s&lt;br /&gt;
* {{m|Modèle:Scriptomancien}} — Les [[Scriptomancien]]s&lt;br /&gt;
&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Conseil}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce modèle n&#039;accepte &#039;&#039;&#039;aucun paramètre&#039;&#039;&#039;. Pour modifier les membres affichés, éditez directement le sous-modèle correspondant au rôle concerné.&lt;br /&gt;
&lt;br /&gt;
== Modification ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rôle !! Modèle à éditer&lt;br /&gt;
|-&lt;br /&gt;
| Intendant || {{m|Modèle:Intendant}}&lt;br /&gt;
|-&lt;br /&gt;
| Architecte || {{m|Modèle:Architecte}}&lt;br /&gt;
|-&lt;br /&gt;
| Scribe || {{m|Modèle:Scribe}}&lt;br /&gt;
|-&lt;br /&gt;
| Scriptomancien || {{m|Modèle:Scriptomancien}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rendu du modèle ==&lt;br /&gt;
{{Conseil}}&lt;br /&gt;
&lt;br /&gt;
== Rendu par rôle ==&lt;br /&gt;
&lt;br /&gt;
=== Intendants ===&lt;br /&gt;
{{Intendant}}&lt;br /&gt;
&lt;br /&gt;
=== Architectes ===&lt;br /&gt;
{{Architecte}}&lt;br /&gt;
&lt;br /&gt;
=== Scribes ===&lt;br /&gt;
{{Scribe}}&lt;br /&gt;
&lt;br /&gt;
=== Scriptomanciens ===&lt;br /&gt;
{{Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* {{m|Modèle:Intendant}}&lt;br /&gt;
* {{m|Modèle:Architecte}}&lt;br /&gt;
* {{m|Modèle:Scribe}}&lt;br /&gt;
* {{m|Modèle:Scriptomancien}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Catégorie:Documentation de modèle]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
	<entry>
		<id>https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Machiniste&amp;diff=5713</id>
		<title>Modèle:Machiniste</title>
		<link rel="alternate" type="text/html" href="https://wiki.nefald.fr/index.php?title=Mod%C3%A8le:Machiniste&amp;diff=5713"/>
		<updated>2026-03-12T21:06:51Z</updated>

		<summary type="html">&lt;p&gt;Hiob : Page créée avec « &amp;lt;includeonly&amp;gt; &amp;lt;/includeonly&amp;gt; &amp;lt;noinclude&amp;gt;{{Modèle:Agora/doc}}Catégorie:Agora&amp;lt;/noinclude&amp;gt; »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Modèle:Agora/doc}}[[Catégorie:Agora]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hiob</name></author>
	</entry>
</feed>