Skip to content

FactionPlugin v5.15.3 — Correctif boutique + WebMapSync JSON 🛒🛠️

Choose a tag to compare

@herocraftlol herocraftlol released this 18 Sep 11:41
· 6 commits to main since this release
082e524

FactionPlugin v5.15.3 — Correctif boutique + rang MYTHIQUE 🛒🛠️☄

Cette version est une release corrective qui élimine un bug critique de
duplication d'items dans la boutique /faction shop create, corrige
l'échappement JSON de la carte web (WebMapSync), et conserve le rang
MYTHIQUE ☄
introduit en v5.15.2.

🚀 Release recommandée pour tous les serveurs en v5.15.2 ou v5.15.1 :
le bug de duplication pouvait produire des items fantômes en boutique.


🛒 Correctif critique de la boutique (ShopCreateGUI)

Symptôme : lors de la création d'une annonce (/faction shop create), la
manipulation des boutons + / - ou la sélection d'un item depuis le
curseur
pouvait dupliquer la pile, ou bien ne pas la rendre correctement à
l'annulation.

Cause racine :

  • giveBack rendait la quantité actuelle au lieu de la quantité d'origine.
  • L'item servant de prix (priceItem) était parfois retiré de l'inventaire
    du vendeur pendant l'édition, puis restitué — une différence de 1 dans le
    timing pouvait produire une pile fantôme.
  • La pile sélectionnée depuis le curseur n'était pas mémorisée : la
    fermeture du GUI rendait une autre occurrence.

Correction (en 5.15.3) :

  • ✅ L'item à vendre n'est retiré du curseur qu'à la confirmation de
    l'annonce. La pile exacte d'origine est conservée en mémoire
    (sellHeldFromCursor).
  • ✅ L'item servant de prix reste un simple modèle : il n'est jamais
    retiré de l'inventaire du vendeur (plus de cycle retrait/rendu).
  • ✅ À l'annulation, on restitue la pile exacte d'origine, pas la pile
    courante — plus de duplication, plus de quantité fantôme.
  • ✅ Les boutons + / - agissent uniquement sur la valeur affichée ;
    aucun ajout ou retrait d'item réel.

Vérification :

  • Ouvrir /faction shop create.
  • Glisser un item depuis la hotbar avec une pile > 1.
  • Cliquer sur - puis Annuler : la pile complète est rendue.
  • Cliquer sur - puis Confirmer : la quantité exacte est débitée.
  • Recommencer avec un item pris depuis l'inventaire : rien n'est retiré
    tant que l'annonce n'est pas confirmée.

🪛 Correctif WebMapSync

Le payload JSON envoyé à la carte web contenait des guillemets non échappés
({"cx":...} au lieu de {\"cx\":...}), ce qui cassait la désérialisation
côté front et empêchait la map web d'afficher correctement les claims.

Correction : échappement complet du JSON ({\"cx\": ..., \"cz\": ...}).
La carte web se resynchronise maintenant sans erreur.


☄ Rang MYTHIQUE — 1 000 000 de puissance (hérité de v5.15.2)

Le rang MYTHIQUE, débloqué à 1 000 000 pts de puissance globale, reste
accessible et conserve tous ses buffs et avantages :

  • 🛡️ Buffs passifs : Hâte IV + Régénération II + Force II +
    Résistance III + Absorption I.
  • 🌫️ Aura renforcée portée à 20 blocs autour des membres.
  • 🎖️ Préfixe de chat exclusif [☄] violet sombre gras.
  • 📌 6 homes et 2 spawns supplémentaires.
  • 💠 Icône AMETHYST_SHARD dans la GUI des classements.

🔧 Corrections héritées de Paper 1.21.4 (depuis v5.15.2)

  • org.bukkit.plugin.JavaPlugin → org.bukkit.plugin.java.JavaPlugin (GUI).
  • Imports Location, PostType, Color, Material ajoutés/corrigés.
  • Material.BED → RED_BED, GOLD_STAINED_GLASS_PANE →
    YELLOW_STAINED_GLASS_PANE.
  • Enchantment.LUCK → LUCK_OF_THE_SEA, INCREASE_DAMAGE → STRENGTH,
    DAMAGE_RESISTANCE → RESISTANCE.
  • EntitySleepEvent (supprimé en 1.21) → polling Villager#isSleeping().
  • MapPalette.matchColor(Color) → matchColor(r, g, b).
  • view rendue final avant forEach dans FactionMapManager.
  • Nouvelle surcharge cmdItem(Material, name, l1, l2, l3, enabled).
  • ShopGUI.NOT_ENOUGH_MONEY → NOT_ENOUGH_PAYMENT.

📦 Téléchargements

  • JAR : FactionPlugin-5.15.3.jar (≈ 480 KB).
  • Sources : FactionPlugin-5.15.3-source.zip (≈ 270 KB).

🛠 Installation

  1. Téléchargez FactionPlugin-5.15.3.jar.
  2. Placez-le dans plugins/ de votre serveur Paper 1.21.4.
  3. Redémarrez le serveur (ou /reload confirm si vous savez ce que vous
    faites).
  4. Le fichier plugins/FactionPlugin/ et ses sous-dossiers seront générés
    automatiquement.

✅ Migration depuis v5.15.2 (ou v5.15.1)

Aucune migration de données. Les fichiers data/ (factions, contrats,
villages, alliances, shops, rangs) sont rétro-compatibles :

  • ✔️ v5.15.1 → v5.15.3 : OK, sans aucune opération manuelle.
  • ✔️ v5.15.2 → v5.15.3 : OK, le rang MYTHIQUE déjà distribué est conservé.
  • ✔️ Les shops existants ne sont pas affectés par le correctif : seul le
    flux de création est modifié.

Pour revenir à une version antérieure en cas de besoin, il suffit de
remplacer le .jar — les données restent compatibles.


📜 Liens utiles


Cette release a été préparée par un agent IA (OpenHands) au nom du
mainteneur du projet.