Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Plugin:Écurie » : différence entre les versions

De Nefald
Hiob (discussion | contributions)
Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)
Hiob (discussion | contributions)
Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)
Ligne 37 : Ligne 37 :
== Installation ==
== Installation ==


1. Déposer `Ecurie-<version>.jar` dans `plugins/`
1. Déposer <code>Ecurie-&lt;version&gt;.jar</code> dans <code>plugins/</code>
2. Redémarrer le serveur
2. Redémarrer le serveur
3. Éditer `plugins/Ecurie/config.yml` et `lang.yml`
3. Éditer <code>plugins/Ecurie/config.yml</code> et <code>lang.yml</code>
4. Créer les étables via les commandes admin (voir ci-dessous)
4. Créer les étables via les commandes admin (voir ci-dessous)


== Configuration ==
== Configuration ==


=== `config.yml` ===
=== config.yml ===


<syntaxhighlight lang="yaml">
<syntaxhighlight lang="yaml">
Ligne 117 : Ligne 117 :
</syntaxhighlight>
</syntaxhighlight>


=== `lang.yml` ===
=== lang.yml ===


Tous les messages joueurs. Supporte les balises MiniMessage (`<red>`, `<gold>`, etc.).
Tous les messages joueurs. Supporte les balises MiniMessage (<code>&lt;red&gt;</code>, <code>&lt;gold&gt;</code>, etc.).
Variables disponibles selon le message : `{name}`, `{amount}`, `{dest}`, `{time}`, `{count}`, `{stable_id}`, `{n}`, `{x}`, `{y}`, `{z}`.
Variables disponibles selon le message : <code>{name}</code>, <code>{amount}</code>, <code>{dest}</code>, <code>{time}</code>, <code>{count}</code>, <code>{stable_id}</code>, <code>{n}</code>, <code>{x}</code>, <code>{y}</code>, <code>{z}</code>.


== Commandes ==
== Commandes ==
Ligne 167 : Ligne 167 :


Les blocs cibles de boxes détectés par défaut selon le type d'écurie sont :
Les blocs cibles de boxes détectés par défaut selon le type d'écurie sont :
* `STABLE` / `TERRESTRE` : '''WATER_CAULDRON'''
* <code>STABLE</code> / <code>TERRESTRE</code> : '''WATER_CAULDRON'''
* `AQUATIQUE` : '''PRISMARINE'''
* <code>AQUATIQUE</code> : '''PRISMARINE'''
* `VOLIERE` : '''DAYLIGHT_DETECTOR'''
* <code>VOLIERE</code> : '''DAYLIGHT_DETECTOR'''


== Permissions ==
== Permissions ==
Ligne 185 : Ligne 185 :
=== Étapes ===
=== Étapes ===


1. '''Construire l'étable''' — poser le bloc cible dans chaque stalle (ex: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` pour AQUATIQUE).
1. '''Construire l'étable''' — poser le bloc cible dans chaque stalle (ex: <code>WATER_CAULDRON</code> pour TERRESTRE, <code>PRISMARINE</code> pour AQUATIQUE).
2. '''Activer le wand''' : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région
2. '''Activer le wand''' : <code>/ecurie wand on</code> → clic gauche (point A) + clic droit (coin B) pour délimiter la région
3. '''Créer et scanner''' : `/ecurie create <nom> [type]` — crée l'étable ET enregistre automatiquement les boxes détectées.
3. '''Créer et scanner''' : <code>/ecurie create &lt;nom&gt; [type]</code> — crée l'étable ET enregistre automatiquement les boxes détectées.
4. '''Lier un NPC''' : placer un Citizens devant l'étable, s'en approcher à < 5 blocs : `/ecurie setnpc <stable_id>` (le nom et le skin par défaut sont appliqués automatiquement).
4. '''Lier un NPC''' : placer un Citizens devant l'étable, s'en approcher à &lt; 5 blocs : <code>/ecurie setnpc &lt;stable_id&gt;</code> (le nom et le skin par défaut sont appliqués automatiquement).


=== Visualiser les boxes ===
=== Visualiser les boxes ===
Ligne 217 : Ligne 217 :
3. '''Si le compagnon n'a pas de nom custom''' (nom générique ou absent) → une enclume s'ouvre pour le nommer
3. '''Si le compagnon n'a pas de nom custom''' (nom générique ou absent) → une enclume s'ouvre pour le nommer
4. '''Si le compagnon a déjà un nom custom''' → mise en pension directe sans nommage
4. '''Si le compagnon a déjà un nom custom''' → mise en pension directe sans nommage
5. Coût : `prices.store` en sols
5. Coût : <code>prices.store</code> en sols


=== Reprendre un compagnon ===
=== Reprendre un compagnon ===
1. Cliquer '''Reprendre un compagnon'''
1. Cliquer '''Reprendre un compagnon'''
2. Choisir le compagnon dans la liste
2. Choisir le compagnon dans la liste
3. Coût : `prices.retrieve` en sols
3. Coût : <code>prices.retrieve</code> en sols


=== Demander un acheminement ===
=== Demander un acheminement ===
Ligne 234 : Ligne 234 :
2. Choisir le compagnon dans la liste
2. Choisir le compagnon dans la liste
3. Une enclume s'ouvre pré-remplie avec le nom actuel — modifier ou confirmer
3. Une enclume s'ouvre pré-remplie avec le nom actuel — modifier ou confirmer
4. Coût : `prices.rename` en sols (défaut 50)
4. Coût : <code>prices.rename</code> en sols (défaut 50)


=== Mes compagnons ===
=== Mes compagnons ===
Ligne 248 : Ligne 248 :
| <code>%ecurie_horses_count%</code> || Nombre de compagnons en pension du joueur
| <code>%ecurie_horses_count%</code> || Nombre de compagnons en pension du joueur
|-
|-
| <code>%ecurie_horse_name_<n>%</code> || Nom du n-ième compagnon (1-indexé, trié par nom)
| <code>%ecurie_horse_name_&lt;n&gt;%</code> || Nom du n-ième compagnon (1-indexé, trié par nom)
|-
|-
| <code>%ecurie_horse_stable_<n>%</code> || Nom de l'étable du n-ième compagnon
| <code>%ecurie_horse_stable_&lt;n&gt;%</code> || Nom de l'étable du n-ième compagnon
|-
|-
| <code>%ecurie_horse_health_<n>%</code> || Santé (ex : <code>18.0/20.0</code>)
| <code>%ecurie_horse_health_&lt;n&gt;%</code> || Santé (ex : <code>18.0/20.0</code>)
|}
|}


Ligne 260 : Ligne 260 :
* '''Compagnons fantômes''' : 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).
* '''Compagnons fantômes''' : 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).
* '''Affichage du nom''' : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s'affichent via un '''TextDisplay''' passager, nettoyé automatiquement lors du despawn.
* '''Affichage du nom''' : Le nom du compagnon (ligne 1, blanc) et le pseudo du propriétaire (ligne 2, gris italique) s'affichent via un '''TextDisplay''' passager, nettoyé automatiquement lors du despawn.
* '''Maître d'Écurie''' : NPC Citizens permanent lié à l'étable via `/ecurie setnpc`. Sert d'interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (config.yml).
* '''Maître d'Écurie''' : NPC Citizens permanent lié à l'étable via <code>/ecurie setnpc</code>. Sert d'interface pour toutes les interactions joueur. Nom et skin configurables dans <code>npc</code> (config.yml).
* '''Palefrenier''' : NPC Citizens temporaire spawné uniquement pendant l'animation de départ ou d'arrivée d'un acheminement. Nom et skin configurables dans `groom` (config.yml).
* '''Palefrenier''' : NPC Citizens temporaire spawné uniquement pendant l'animation de départ ou d'arrivée d'un acheminement. Nom et skin configurables dans <code>groom</code> (config.yml).
* '''Mort en box''' : perte définitive, slot libéré
* '''Mort en box''' : perte définitive, slot libéré
* '''Banco''' : intégré par réflexion pure (aucun jar requis à la compilation)
* '''Banco''' : intégré par réflexion pure (aucun jar requis à la compilation)
* '''Stockage universel''' : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers '''MyPet'''.
* '''Stockage universel''' : Supporte tous les familiers montables (Chevaux, Chameaux, Cochons, Striders) ainsi que tous les familiers '''MyPet'''.
* '''Typage des écuries (RPG)''' : 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'option `restrict-stable-types`.
* '''Typage des écuries (RPG)''' : Les familiers aquatiques ne peuvent aller que dans une écurie <code>AQUATIQUE</code>. Les familiers volants dans une <code>VOLIERE</code>. Les familiers terrestres dans une <code>TERRESTRE</code> ou <code>STABLE</code>. Les restrictions sont activables via l'option <code>restrict-stable-types</code>.
* '''MyPet''' : 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.
* '''MyPet''' : Le plugin révoque automatiquement le MyPet lors de la mise en pension (via <code>/petsendaway</code>) pour éviter les doublons dans le monde, et restaure correctement ses états.
* '''Transferts''' : vérifiés toutes les 10 secondes en async
* '''Transferts''' : vérifiés toutes les 10 secondes en async


Ligne 295 : Ligne 295 :
| 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'écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG
| 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'écuries (AQUATIQUE, VOLIERE, TERRESTRE) avec blocs de ciblage configurables et validations RPG
|-
|-
| 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.
| 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 <code>/ecurie gui</code> sauvegardé par PDC. Affichage des tarifs et gestion asynchrone sécurisée.
|-
|-
| 1.3.0 || 2026-06-12 || Terminologie RP : "Mettre en pension", "Acheminement", "Compagnon" ; séparation Maître d'É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).
| 1.3.0 || 2026-06-12 || Terminologie RP : "Mettre en pension", "Acheminement", "Compagnon" ; séparation Maître d'É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).
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.