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)
style: aligner le formatage sur Plugin:Banco (H1, gras intro, type infobox, séparateurs, code dans tableaux) (via update-page on MediaWiki MCP Server)
Hiob (discussion | contributions)
Mise à jour des commandes, permissions, configuration MySQL et restrictions par type (v1.4.0)
Ligne 48 : Ligne 48 :
<syntaxhighlight lang="yaml">
<syntaxhighlight lang="yaml">
database:
database:
   file: "ecurie.db"         # Chemin relatif au dossier du plugin
   # 'sqlite' ou 'mysql'
  type: "sqlite"
 
  # Configuration SQLite
  sqlite:
    file: "ecurie.db"
   
  # Configuration MySQL / MariaDB (HikariCP)
  mysql:
    host: "localhost"
    port: 3306
    database: "ecurie"
    username: "root"
    password: "password"
    pool:
      maximum-pool-size: 10
      minimum-idle: 2


# Interface GUI par défaut (modifiable par joueur via /ecurie gui)
# Interface GUI par défaut (modifiable par joueur via /ecurie gui)
Ligne 59 : Ligne 75 :
   delay-per-100-blocks: 30  # Délai additionnel par 100 blocs de distance
   delay-per-100-blocks: 30  # Délai additionnel par 100 blocs de distance
   animation-distance: 15.0  # Distance (blocs) pour l'animation de départ/arrivée
   animation-distance: 15.0  # Distance (blocs) pour l'animation de départ/arrivée
routes:
  on-road-speed: 0.35        # Vitesse cheval sur route (vanilla ≈ 0.225)
  enabled: false            # Routes RP (désactivé en V1)


# Tarifs des services en écus/sols (0 = gratuit)
# Tarifs des services en écus/sols (0 = gratuit)
Ligne 73 : Ligne 85 :
   # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100
   # Formule : coût total = transfer-base + (distance / 100) * transfer-per-100


# NPC "Maître d'Écurie" : PNJ d'interface lié à l'étable (via /ecurie stable setnpc)
# NPC "Maître d'Écurie" : PNJ d'interface lié à l'étable (via /ecurie setnpc)
npc:
npc:
   default-name: "Maître d'Écurie"
   default-name: "Maître d'Écurie"
Ligne 90 : Ligne 102 :
phantom-horse:
phantom-horse:
   health: 20.0              # PV du compagnon fantôme en box
   health: 20.0              # PV du compagnon fantôme en box
# Si vrai, restreint le stockage et le transfert selon le type du compagnon et de l'écurie
# Compagnon aquatique -> Écurie AQUATIQUE uniquement
# Compagnon volant -> Écurie VOLIERE uniquement
# Compagnon terrestre -> Écurie TERRESTRE/STABLE uniquement
restrict-stable-types: true


box-blocks:
box-blocks:
Ligne 108 : Ligne 126 :
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`
Permission requise : `ecurie.admin` (op par défaut). Alias : `/ec`


=== Wand — sélection de région ===
=== Sélection de région ===


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
/ecurie wand [on|off]
/ecurie wand [on|off]                 — Active/désactive le wand (bâton). Clic G = pt 1, clic D = pt 2.
</syntaxhighlight>
</syntaxhighlight>
Active/désactive le wand bâton. Clic gauche = point 1, clic droit = point 2. Utilisé pour scanner les boxes d'une étable.


=== Étables ===
=== Étables ===


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
/ecurie stable create <nom> [type]   — Crée l'étable ET scanne automatiquement les boxes. Type: STABLE, TERRESTRE, AQUATIQUE, VOLIERE.
/ecurie create <nom> [type]           — Crée l'étable et scanne automatiquement les boxes. Types : STABLE, TERRESTRE, AQUATIQUE, VOLIERE.
/ecurie stable delete <id>           — Supprime une étable
/ecurie delete <id>                   — Supprime une étable (met les compagnons en statut orphelin)
/ecurie stable setnpc <stable_id>     — Lie le NPC Citizens le plus proche (≤5 blocs) à l'étable
/ecurie setnpc <stable_id>           — Lie le NPC Citizens le plus proche (≤5 blocs) à l'étable (applique nom et skin auto)
/ecurie stable list                   — Liste toutes les étables
/ecurie list                         — Liste toutes les étables
/ecurie tp <stable_id|nom>            — Téléporte le joueur en face du NPC associé à l'étable (sécurité anti-collision)
</syntaxhighlight>
</syntaxhighlight>


Ligne 128 : Ligne 145 :


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
/ecurie box scan <stable_id>          — Rescanne les blocs cibles dans la sélection wand
/ecurie box list <stable_id>          — Liste les boxes d'une étable
/ecurie box list <stable_id>          — Liste les boxes d'une étable
/ecurie box delete <box_id>          — Supprime une box
/ecurie box delete <box_id>          — Supprime une box
Ligne 137 : Ligne 155 :
* `AQUATIQUE` : '''PRISMARINE'''
* `AQUATIQUE` : '''PRISMARINE'''
* `VOLIERE` : '''DAYLIGHT_DETECTOR'''
* `VOLIERE` : '''DAYLIGHT_DETECTOR'''
La commande `stable create` détecte automatiquement tous ces blocs dans la région wand et enregistre les boxes immédiatement.
La commande `create` ou `box scan` détecte automatiquement ces blocs dans la région wand et enregistre les boxes immédiatement.


=== Chevaux ===
=== Compagnons ===


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
/ecurie horse free <horse_id>        — Libère un compagnon de la DB (urgence admin)
/ecurie horse free <horse_id>        — Supprime définitivement un compagnon de la DB (urgence admin)
/ecurie horse orphans                — Liste les compagnons orphelins (étable d'origine supprimée)
/ecurie horse reassign <h_id> <s_id>  — Réassigne un compagnon orphelin à une nouvelle étable
</syntaxhighlight>
</syntaxhighlight>


Ligne 148 : Ligne 168 :


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
/ecurie reload                        — Recharge config.yml et le cache ShowManager
/ecurie reload                        — Recharge config.yml et lang.yml
</syntaxhighlight>
</syntaxhighlight>


Ligne 165 : Ligne 185 :
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: `WATER_CAULDRON` pour TERRESTRE, `PRISMARINE` 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''' : `/ecurie wand on` → clic gauche (point A) + clic droit (coin B) pour délimiter la région
3. '''Créer et scanner''' : `/ecurie stable create <nom> [type]` — crée l'étable ET enregistre automatiquement les boxes détectées.
3. '''Créer et scanner''' : `/ecurie create <nom> [type]` — crée l'étable ET enregistre automatiquement les boxes détectées.
4. '''(Optionnel) Lier un NPC''' : placer un Citizens devant l'étable, s'en approcher à < 5 blocs : `/ecurie stable setnpc <stable_id>`
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).


=== Visualiser les boxes ===
=== Visualiser les boxes ===
Ligne 245 : Ligne 265 :
== Notes techniques ==
== Notes techniques ==


* '''Stockage''' : SQLite embarqué (shadowed, pas de dépendance runtime)
* '''Stockage''' : SQLite embarqué (local) ou base de données MySQL / MariaDB via HikariCP.
* '''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 stable 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 `/ecurie setnpc`. Sert d'interface pour toutes les interactions joueur. Nom et skin configurables dans `npc` (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 `groom` (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`.
* '''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`.
* '''MyPet''' : Le plugin stocke correctement l'UUID du MyPet et s'assure qu'il est révoqué automatiquement pour éviter les doublons lors du stockage.
* '''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.
* '''Transferts''' : vérifiés toutes les 10 secondes en async
* '''Transferts''' : vérifiés toutes les 10 secondes en async


Ligne 286 : Ligne 306 :
|-
|-
| 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).
|-
| 1.4.0 || 2026-06-13 || Ajout de la commande /ecurie tp, support de MySQL / MariaDB via HikariCP, correction de la persistance de l'activité MyPet, et restrictions par type d'écurie.
|}
|}


[[Catégorie:Plugin développé pour Nefald]]
[[Catégorie:Plugin développé pour Nefald]]
[[Catégorie:Plugin installé]]
[[Catégorie:Plugin installé]]
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.