« Plugin:Écurie » : différence entre les versions
De Nefald
Autres actions
style: aligner le formatage sur Plugin:Banco (H1, gras intro, type infobox, séparateurs, code dans tableaux) (via update-page on MediaWiki MCP Server) |
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" | # '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 | ||
# 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 | # 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` | ||
=== | === 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> | ||
=== Étables === | === Étables === | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
/ecurie | /ecurie create <nom> [type] — Crée l'étable et scanne automatiquement les boxes. Types : STABLE, TERRESTRE, AQUATIQUE, VOLIERE. | ||
/ecurie | /ecurie delete <id> — Supprime une étable (met les compagnons en statut orphelin) | ||
/ecurie | /ecurie setnpc <stable_id> — Lie le NPC Citizens le plus proche (≤5 blocs) à l'étable (applique nom et skin auto) | ||
/ecurie | /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 ` | La commande `create` ou `box scan` détecte automatiquement ces blocs dans la région wand et enregistre les boxes immédiatement. | ||
=== | === Compagnons === | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
/ecurie horse free <horse_id> — | /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 | /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 | 3. '''Créer et scanner''' : `/ecurie create <nom> [type]` — crée l'étable ET enregistre automatiquement les boxes détectées. | ||
4. ''' | 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é ( | * '''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 | * '''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 | * '''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é]] | ||