« Plugin:Écurie » : différence entre les versions
De Nefald
Autres actions
Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0) |
Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0) |
||
| Ligne 37 : | Ligne 37 : | ||
== Installation == | == Installation == | ||
1. Déposer | 1. Déposer <code>Ecurie-<version>.jar</code> dans <code>plugins/</code> | ||
2. Redémarrer le serveur | 2. Redémarrer le serveur | ||
3. Éditer | 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 === | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
| Ligne 117 : | Ligne 117 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === lang.yml === | ||
Tous les messages joueurs. Supporte les balises MiniMessage ( | Tous les messages joueurs. Supporte les balises MiniMessage (<code><red></code>, <code><gold></code>, etc.). | ||
Variables disponibles selon le message : | 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 : | ||
* | * <code>STABLE</code> / <code>TERRESTRE</code> : '''WATER_CAULDRON''' | ||
* | * <code>AQUATIQUE</code> : '''PRISMARINE''' | ||
* | * <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: | 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''' : | 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''' : | 3. '''Créer et scanner''' : <code>/ecurie create <nom> [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 à | 4. '''Lier un NPC''' : placer un Citizens devant l'étable, s'en approcher à < 5 blocs : <code>/ecurie setnpc <stable_id></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 : | 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 : | 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 : | 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_ | | <code>%ecurie_horse_name_<n>%</code> || Nom du n-ième compagnon (1-indexé, trié par nom) | ||
|- | |- | ||
| <code>%ecurie_horse_stable_ | | <code>%ecurie_horse_stable_<n>%</code> || Nom de l'étable du n-ième compagnon | ||
|- | |- | ||
| <code>%ecurie_horse_health_ | | <code>%ecurie_horse_health_<n>%</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 | * '''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 | * '''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 | * '''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 | * '''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 | | 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). | ||