Repository navigation
Releases
FactionPlugin v5.15.5 — Compilation propre & stabilité 🛠⚡📦
🛠 FactionPlugin v5.15.5 — Compilation propre & stabilité ⚡📦
Cette version consolide tout le travail des releases v5.15.x et apporte un ensemble de corrections qui rendent le plugin immédiatement compilable et fonctionnel sur Paper 1.21.4, sans rien casser de ce qui existait déjà.
ℹ️ Si tu utilisais déjà la v5.15.4, lis au moins la partie « Migration depuis v5.15.4 » — il n'y a aucune action obligatoire, mais quelques notes utiles.
🎯 En un coup d'œil
| Aspect | Avant v5.15.5 | Depuis v5.15.5 |
|---|---|---|
mvn clean package |
✅ compile du premier coup | |
EntitySleepEvent |
❌ supprimé en 1.21.4 | ✅ remplacé par polling Villager#isSleeping() |
MapPalette.matchColor(Color) |
❌ signature supprimée | ✅ nouvelle signature matchColor(r, g, b) |
Import JavaPlugin |
✅ org.bukkit.plugin.java.JavaPlugin |
|
Import PostType |
Contract |
✅ ajouté |
Import Location |
PlayerTeleportManager |
✅ ajouté |
GUI cmdItem |
surcharge unique | ✅ surcharge 6-args (multi-ligne) ajoutée |
Lambda sur view |
✅ capturée en final |
🚀 Nouveautés de la v5.15.5
✅ Compilation Paper 1.21.4 garantie dès le premier mvn clean package
La v5.15.4 introduisait déjà plusieurs corrections de compatibilité avec Paper 1.21.4 ; cette release les finalise et corrige les dernières incompatibilités restantes pour que mvn clean package produise un .jar fonctionnel du premier coup, sans patch manuel.
- ✅
org.bukkit.plugin.JavaPlugin→org.bukkit.plugin.java.JavaPlugincorrigé dansShopCreateGUIetSortMenuGUI. - ✅ Import
fr.faction.village.PostTypeajouté dansContract.java(commerce inter-villes). - ✅ Import
org.bukkit.Locationajouté dansPlayerTeleportManager.java.
🌙 Soin en dormant — détection par polling (Paper 1.21.4)
EntitySleepEvent a été supprimé en Paper 1.21.4. La régénération des villageois recrutés dans leur lit est maintenant détectée par polling de Villager#isSleeping() à chaque tick d'IA : la transition éveillé → endormi déclenche le même soin périodique qu'auparavant.
- ✅ Comportement identique à la v5.15.0 — pas de régression côté joueur.
- ✅ Plus aucun appel à une classe/événement inexistant, plus d'erreur silencieuse en console.
🛠 Corrections mineures du MapRenderer (mini-map de faction)
- ✅
MapPalette.matchColor(Color)a été supprimé en 1.21.4 → utilisation de la nouvelle signaturematchColor(r, g, b)dansFactionMapRenderer. - ✅ Variable
viewcapturée enfinalavant leforEachqui retire les renderers vanilla — corrige l'erreur « local variables referenced from a lambda expression must be final or effectively final ».
🎨 Enrichissement du GUI principal
- ✅ Nouvelle surcharge
cmdItem(Material, name, desc, extra, tip, enabled)dansMainMenuGUIpour les tooltips à plusieurs lignes (utilisée par les nouvelles entrées « command » de la v5.15.5).
🏷️ Version & message de démarrage
- ✅ Version exposée par
getDescription().getVersion()et/version: 5.15.5. - ✅ Message de démarrage du plugin :
FactionPlugin v5.15.5 — recrutement illimité, villageois niveau 100, rang Mythique, shop sécurisé et améliorations de stabilité
📦 Aucun changement de format de données
Tous les fichiers générés dans plugins/FactionPlugin/ restent strictement rétro-compatibles :
factions.yml,claims.yml,bank.yml,ranking.yml,map.ymlstats.yml,villagers.yml,shop.yml,homes.yml,privatechests.yml,contracts.yml
→ Aucune migration à effectuer : il suffit de remplacer le .jar.
🔄 Migration depuis v5.15.4
Aucune action requise. Il te suffit de :
- Remplacer
FactionPlugin-5.15.4.jarparFactionPlugin-5.15.5.jardans le dossierplugins/. - Redémarrer le serveur.
Toutes les fonctionnalités de la v5.15.4 sont conservées à l'identique :
- Liaison site web sans SQL (
/liervia HTTP + clé d'API). FactionTabSync(synchro du tab HeroTab via MySQL, si configuré).- Compilation Paper 1.21.4 propre.
- Tous les correctifs de stabilité, de fusion et de synchro des releases précédentes.
📦 Téléchargements
- JAR :
FactionPlugin-5.15.5.jar(≈ 484 KB) - Sources :
FactionPlugin-5.15.5-source.zip(≈ 260 KB)
🛠 Installation
- Télécharge
FactionPlugin-5.15.5.jardepuis les assets ci-dessous. - Place-le dans
plugins/de ton serveur Paper 1.21.4 (en remplaçant l'ancien.jar). - Redémarre le serveur.
- Les dossiers et fichiers de données seront générés automatiquement dans
plugins/FactionPlugin/.
📜 Liens utiles
- 🏠 Dépôt : https://github.com/herocraftlol/Faction-Create-Friends
- 📦 Toutes les releases : https://github.com/herocraftlol/Faction-Create-Friends/releases
- 🐞 Signaler un bug : https://github.com/herocraftlol/Faction-Create-Friends/issues
Cette release a été préparée par un agent IA (OpenHands) au nom du mainteneur du projet.
v5.15.4 — Liaison site web sans SQL 🔌🌐
🏰 FactionPlugin v5.15.4 — Liaison site web sans SQL 🔌🌐✨
Cette version supprime la dépendance à MySQL pour la commande /lier. Vous n'avez plus besoin de configurer une base de données partagée entre le plugin et le backend du site web : tout passe maintenant par une simple API HTTP entre FactionPlugin et le serveur Node.js.
🌟 Qu'est-ce que FactionPlugin ?
FactionPlugin est un plugin Minecraft complet pensé pour transformer votre serveur Paper en un véritable univers de factions. Conçu pour les serveurs survie PvP, il réunit dans une seule commande /faction (et ses alias /f, /fac) tout ce qu'il faut pour faire vivre un mode factions riche et moderne :
- 🏰 Territoires revendiqués et protégés par chunk
- 🤝 Diplomatie complète : alliances, guerres, traités, pillage
- 💰 Économie intégrée : banque d'émeraudes, shop global, troc sécurisé
- 👥 Villages autonomes avec villageois vanilla recrutés, qui construisent, combattent, récoltent et livrent
- 🚢 Commerce inter-villes par contrats, ports et gares
- 📊 Statistiques et classements détaillés
- 🔌 Liaison site web simplifiée — plus besoin de base MySQL !
- 🏷️ Tab HeroTab synchronisé à la seconde sur tout votre réseau
Conçu pour Paper 1.21.4 (API Bukkit + Paper), Java 21, prêt à l'emploi : posez le .jar dans plugins/, redémarrez, et c'est parti.
🆕 Nouveautés de la v5.15.4
🌐 Liaison site web sans SQL (/lier)
Avant la v5.15.4, /lier exigeait une base MySQL partagée entre le plugin et le backend Node.js du site (table web_link_codes). C'était lourd, source de pannes, et inutile pour un serveur solo ou un petit réseau.
Avec la v5.15.4, tout passe par HTTP :
- 🌐 Le plugin POST le code au site via
POST /api/faction/push/link-code. - 🔑 Authentification simple par clé d'API (header
X-Faction-Key). - 🪶 Le site stocke le code dans
data/local-game.json— plus de table SQL. - 🔁
/liergarde exactement la même interface pour les joueurs (code à 6 chiffres, expiration 10 min). - 🛡️
FactionTabSyncreste optionnel : si vous voulez le tab HeroTab, configurez la sectionmysql:comme avant.
⚙️ Configuration minimale
# plugins/FactionPlugin/config.yml
site-url: "http://192.168.1.196:3000"
faction-api-key: "la-même-clé-que-dans-le-.env-du-site"
# Section mysql: OPTIONNELLE — uniquement si vous utilisez FactionTabSync
# mysql:
# host: 127.0.0.1
# port: 3306
# database: herocraft
# user: herocraft_user
# password: mot-de-passeCôté site, dans .env :
FACTION_API_KEY=la-même-clé-que-dans-le-config.yml-du-plugin
GAME_PUSH_PATH=/api/faction/push/link-code🛠️ Compilation Paper 1.21.4 propre
Pour que mvn clean package produise un .jar fonctionnel du premier coup :
- ✅ Import
org.bukkit.plugin.java.JavaPlugincorrigé dansShopCreateGUIetSortMenuGUI. - ✅
Material.BED→RED_BED,GOLD_STAINED_GLASS_PANE→YELLOW_STAINED_GLASS_PANE. - ✅
Enchantment.LUCK→LUCK_OF_THE_SEA. - ✅
PotionEffectType.INCREASE_DAMAGE→STRENGTH,DAMAGE_RESISTANCE→RESISTANCE. - ✅
Sound.ENTITY_PLAYER_EAT→ENTITY_GENERIC_EAT(supprimé en 1.21.4). - ✅
Particle.SPELL_WITCH→WITCH,VILLAGER_HAPPY→HAPPY_VILLAGER. - ✅
MapPalette.matchColor(Color)→matchColor(java.awt.Color). - ✅
EntitySleepEvent(supprimé en 1.21.4) → polling deVillager#isSleeping()avec transition endormi → éveillé. - ✅ Variable
viewrenduefinalavantforEach. - ✅ Nouvelle surcharge
cmdItem(Material, name, l1, l2, l3, enabled). - ✅ Imports manquants ajoutés :
Location,PostType, etc. - ✅ Message de démarrage mis à jour vers v5.15.4.
✅ Migration depuis v5.15.3
Aucune migration de données : tous les fichiers YAML (factions.yml, claims.yml, bank.yml, ranking.yml, map.yml, etc.) restent compatibles.
- Si vous utilisiez MySQL pour
/lieret voulez passer en mode sans SQL : supprimez la sectionmysql:du plugin (sauf si vous voulezFactionTabSync), ajoutezsite-url+faction-api-key, mettez à jour le backend du site. - Si vous utilisiez
FactionTabSync: aucune action requise, la sectionmysql:reste utilisée pour le tab HeroTab.
📦 Téléchargements
| Fichier | Taille | Contenu |
|---|---|---|
FactionPlugin-5.15.4.jar |
~ 480 KB | Plugin prêt à l'emploi (shaded JAR) |
FactionPlugin-5.15.4-source.zip |
~ 310 KB | Code source complet (Maven project) |
🛠 Installation
- Téléchargez
FactionPlugin-5.15.4.jarci-dessous. - Placez-le dans
plugins/de votre serveur Paper 1.21.4. - Redémarrez le serveur.
- Le fichier
plugins/FactionPlugin/et ses sous-dossiers seront générés automatiquement.
🔐 Compatibilité
- Serveur : Paper 1.21.4 (API Bukkit + Paper).
- Java : 21 ou supérieur.
- MySQL : optionnel depuis la v5.15.4 (uniquement pour
FactionTabSync). - Données : rétro-compatibles avec v5.15.x.
🐛 Problèmes connus
Aucun bug critique connu à ce jour. Si vous rencontrez un souci, ouvrez une Issue sur le dépôt GitHub avec le fichier latest.log et la liste de vos autres plugins.
📜 Liens utiles
- 🏠 Dépôt : https://github.com/herocraftlol/Faction-Create-Friends
- 📦 Toutes les releases : https://github.com/herocraftlol/Faction-Create-Friends/releases
- 🐞 Signaler un bug : https://github.com/herocraftlol/Faction-Create-Friends/issues
⭐ Si ce plugin t'est utile, n'hésite pas à mettre une étoile au dépôt !
Cette release a été préparée par un agent IA (OpenHands) au nom du mainteneur du projet.
FactionPlugin v5.15.3 — Correctif boutique + WebMapSync JSON 🛒🛠️
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 :
giveBackrendait 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
-puisAnnuler: la pile complète est rendue. - Cliquer sur
-puisConfirmer: 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_SHARDdans 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,Materialajouté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) → pollingVillager#isSleeping().MapPalette.matchColor(Color)→matchColor(r, g, b).viewrenduefinalavantforEachdansFactionMapManager.- 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
- Téléchargez
FactionPlugin-5.15.3.jar. - Placez-le dans
plugins/de votre serveur Paper 1.21.4. - Redémarrez le serveur (ou
/reload confirmsi vous savez ce que vous
faites). - 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
- 🏠 Dépôt : https://github.com/herocraftlol/Faction-Create-Friends
- 📦 Releases : https://github.com/herocraftlol/Faction-Create-Friends/releases
- 🐞 Signaler un bug :
https://github.com/herocraftlol/Faction-Create-Friends/issues
Cette release a été préparée par un agent IA (OpenHands) au nom du
mainteneur du projet.
FactionPlugin v5.15.2 — Rang MYTHIQUE — 1 000 000 de puissance ☄💎🌌
FactionPlugin v5.15.2 — Rang MYTHIQUE — 1 000 000 de puissance ☄💎🌌
Cette version ajoute un rang de prestige ultime au-dessus du rang
Légendaire, et consolide le passage à Paper 1.21.4 avec plusieurs
corrections critiques héritées du travail de la v5.15.1.
Conçu pour Paper 1.21.4 (API Bukkit + Paper), Java 21, prêt à
l'emploi — il suffit de poser le.jardansplugins/.
🆕 Nouveautés
☄ Nouveau rang MYTHIQUE
- 🌌 1 000 000 de puissance requise : la faction doit totaliser
1 000 000 points de puissance globale pour accéder au rang
MYTHIQUE(contre 250 000 pour le rangLÉGENDAIREprécédent). - 🎖️ Préfixe de chat exclusif : préfixe
[☄]violet sombre gras
visible dans le chat et dans le tab — pour signaler aux autres factions
qu'elles ont affaire à une « race supérieure ». - 🛡️ Buffs passifs ultimes :
- Hâte IV (vitesse +40 %)
- Régénération II
- Force II
- Résistance III
- Absorption I
- 🌫️ Aura renforcée : portée portée à 20 blocs autour du chef
de faction, ce qui couvre une base entière en activité. - 💠 Icône d'interface AMETHYST_SHARD : nouveau matériau dans la
GUI des classements, pour bien distinguer MYTHIQUE des autres rangs. - 📌 Avantages débloqués :
- 6 homes de faction (vs 5 pour LÉGENDAIRE)
- 2 spawns de faction supplémentaires
- Bonus de guerre supplémentaires dans
FactionPowerManager
🌌 Détails techniques MYTHIQUE
- Le rang est implémenté comme un nouvel enum
FactionRank.MYTHIQUEavec un seuil
d'accès (requiredPower = 1_000_000). - Le rendu du préfixe utilise
ChatColor.DARK_PURPLE + ChatColor.BOLD. - Les effets de potion sont appliqués via
PotionEffectType.STRENGTHet
PotionEffectType.RESISTANCE(noms modernes de l'API Paper 1.21). - La particule autour des joueurs MYTHIQUE utilise
Particle.WITCH
etParticle.HAPPY_VILLAGER.
🔧 Corrections héritées de la v5.15.1 (Paper 1.21.4)
- 🛏️ Soin pendant le sommeil :
EntitySleepEventn'existant plus
côté Bukkit/Paper 1.21, la régénération des villageois endormis est
désormais déclenchée par un polling périodique via
Villager#isSleeping()(toutes les 20 ticks par défaut). - 🛒 Boutique joueurs :
ShopGUI.NOT_ENOUGH_MONEYrenommé en
NOT_ENOUGH_PAYMENT(cohérence avec le reste du code). - 🛏️ GUI menu principal :
Material.BED→RED_BED,
GOLD_STAINED_GLASS_PANE→YELLOW_STAINED_GLASS_PANE(couleurs
modernes 1.21). - 🔊 Sons / particules :
ENTITY_PLAYER_EAT→ENTITY_GENERIC_EAT,
BED→ENTITY_FOX_SLEEP,
VILLAGER_HAPPY→HAPPY_VILLAGER. - 🗺️ Carte de faction :
MapPalette.matchColor(Color)→
matchColor(r, g, b)(BukkitColor→ entiers RGB). - 🪛 Imports JavaPlugin : certains fichiers GUI utilisaient
org.bukkit.plugin.JavaPlugin(faute de frappe historique), corrigé
enorg.bukkit.plugin.java.JavaPlugin. - 🪛 Import
PostType:commerce.Contractréférençait
PostTypesans l'importer — corrigé. - 🪛 Import
Location:PlayerTeleportManagerutilise désormais
org.bukkit.Locationcorrectement importé. - 🪛
viewlambda :FactionMapManagercopiaitviewen variable
finalavant leforEachpour respecter la règle
« effectively final » des lambdas. - 🪛
cmdItem(...)overload : nouvelle surcharge
cmdItem(Material, name, l1, l2, l3, enabled)pour gérer les
descriptions sur trois lignes avec état activé/désactivé.
📦 Installation
- Téléchargez
FactionPlugin-5.15.2.jarci-dessous. - Placez-le dans
plugins/de votre serveur Paper 1.21.4+. - Démarrez (ou redémarrez) le serveur.
- Configurez
plugins/FactionPlugin/config.ymlsi besoin
(messages, limites, paramètres MySQL pour/lier).
📂 Contenu de cette release
FactionPlugin-5.15.2.jar: le plugin prêt à l'emploi.FactionPlugin-5.15.2-source.zip: le code source complet de
cette version, prêt à compiler avecmvn clean package.
✅ Migration depuis v5.15.1
Aucune migration de données. Il suffit de remplacer le .jar et de
redémarrer le serveur. Les fichiers data/ (factions, contrats,
villages, alliances) restent parfaitement compatibles.
🔗 Liens utiles
- 📖 README complet : voir le fichier
README.mddu dépôt - 📜 Historique des versions : voir la section Historique des versions
du README - 🐛 Problème / suggestion : ouvrez une issue sur le dépôt
Cette release a été préparée et publiée via une automatisation
OpenHands au nom du mainteneur du projet.
FactionPlugin v5.15.1 — Villageois illimités, niveau max 100 🏘️♾️📈
FactionPlugin v5.15.1 — Villageois illimités, niveau max 100 🏘️♾️📈
Cette version est entièrement consacrée aux villageois recrutés : on
leur retire la bride pour permettre aux factions les plus ambitieuses de
bâtir de véritables armées villageoises, et on repousse très loin leur
progression pour qu'un vétéran soit enfin à la hauteur d'un joueur
aguerri.
Conçu pour Paper 1.21.4 (API Bukkit + Paper), Java 21, prêt à
l'emploi — il suffit de poser le.jardansplugins/.
🆕 Nouveautés
🏘️ Villageois recrutés : plus aucune limite par faction
- ♾️ Recrutement illimité : la limite
FACTION_FULLqui empêchait
une faction d'aligner plus de quelques villageois a été retirée. Tu
peux désormais constituer une véritable armée permanente — idéale pour
les grands empires, les sièges, ou les serveurs « war zone ». - 🛡️ Toujours équilibré au combat : les villageois conservent leur IA
de patrouille, leur fuite en cas de blessure critique, leur armement
par classe (guerrier / archer / défenseur). Plus il y en a, plus la
faction est forte — sans casser l'équilibrage unitaire.
📈 Progression jusqu'au niveau 100
- 🌟 Niveau maximum repoussé à 100 (au lieu de 5). Les villageois
gagnent toujours de l'XP en tuant des mobs, en construisant ou en
récoltant, mais la barre continue de monter bien plus loin. - 💪 Bonus progressifs : à chaque palier, les points de vie maximum,
les dégâts d'attaque et la résistance continuent de croître. Un
villageois niveau 100 est un tank de fin de partie, capable de tenir
face à un groupe de joueurs en armure diamant/nétherite. - 🎖️ Affichage fidèle : la jauge d'XP et le niveau sont rendus via
la mécanique native duVillagerde Minecraft, ce qui évite tout
hack de rendu et reste compatible avec Dynmap, BluMap, Squaremap, etc.
🐛 Correctifs & compatibilité Paper 1.21.4
- 🔧 Compilation contre Paper 1.21.4 rétablie : ajustements de code
pour rester compilable face aux changements d'API de Paper 1.21
(Enchantment.LUCK,PotionEffectType.INCREASE_DAMAGE, etc.). - 🛏️ Soin pendant le sommeil :
EntitySleepEventn'existant plus
côté Bukkit/Paper 1.21, la régénération des villageois endormis est
désormais déclenchée par détection périodique viaVillager#isSleeping(),
ce qui rend le comportement strictement équivalent à l'ancien
événement, sans dépendre d'un hook retiré. - 🛒 Boutique joueurs : correction d'une typo historique
(NOT_ENOUGH_MONEY→NOT_ENOUGH_PAYMENT) qui empêchait l'achat
correctement géré depuis plusieurs versions mineures. - 🛏️ GUI menu principal : nouveau lit rouge (
Material.RED_BED)
pour rester compilable en 1.21.4 (l'ancienne constanteMaterial.BED
n'existe plus). - 🎨 Couleurs de verre : les vitres « or » du GUI utilisent désormais
YELLOW_STAINED_GLASS_PANE(il n'existe pas de couleur « or » en 1.21). - 🧪 Potion effects : alignement sur les noms modernes
(PotionEffectType.STRENGTH/RESISTANCEau lieu de
INCREASE_DAMAGE/DAMAGE_RESISTANCE). - 🔊 Sons :
ENTITY_PLAYER_EAT→ENTITY_GENERIC_EAT,
BED→ENTITY_FOX_SLEEP. - ✨ Particules :
VILLAGER_HAPPY→HAPPY_VILLAGER. - 🗺️ Carte faction :
MapPalette.matchColor(Color)→
matchColor(r, g, b)(Bukkit Color → java.awt.Color). - 🧱 GUI helper : nouvelle surcharge
cmdItem(Material, name, l1, l2, l3, enabled)
pour gérer proprement les descriptions sur trois lignes avec état
activé/désactivé.
📦 Installation
- Téléchargez
FactionPlugin-5.15.1.jarci-dessous. - Placez-le dans
plugins/de votre serveur Paper 1.21.4+. - Démarrez (ou redémarrez) le serveur.
- Configurez
plugins/FactionPlugin/config.ymlsi besoin
(messages, limites, paramètres MySQL pour/lier).
📂 Contenu de cette release
FactionPlugin-5.15.1.jar: le plugin prêt à l'emploi.FactionPlugin-5.15.1-source.zip: le code source complet de
cette version, prêt à compiler avecmvn clean package.
✅ Migration depuis v5.15.0
Aucune migration de données. Il suffit de remplacer le .jar et de
redémarrer le serveur. Les fichiers data/ (factions, contrats,
villages, alliances) restent parfaitement compatibles.
🔗 Liens utiles
- 📖 README complet : voir le fichier
README.mddu dépôt - 📜 Historique des versions : voir la section Historique des versions
du README - 🐛 Problème / suggestion : ouvrez une issue sur le dépôt
Cette release a été préparée et publiée via une automatisation
OpenHands au nom du mainteneur du projet.
FactionPlugin v5.15.0 — La vraie cause du tab HeroTab enfin corrigée 🏷️✨🐛
🏰 FactionPlugin v5.15.0 — La vraie cause du tab HeroTab corrigée 🏷️✨🐛
Re-publication propre de la v5.15.0 : le JAR et le ZIP source ont été recompilés à partir des sources
ready-to-compile(build fraîche vérifiéemvn clean package✔).
Cette version est probablement le correctif le plus important de toute la série 5.14.x : elle s'attaque à la vraie cause racine d'un bug que toutes les versions précédentes tentaient de résoudre — sans y parvenir, parce qu'elles visaient la mauvaise cible.
🎯 En deux mots
HeroTab (le plugin proxy qui affiche votre faction et votre rang dans l'onglet global du serveur) lit une table MySQL faction_tab_sync qui était censée être alimentée par une classe FactionTabSync côté FactionPlugin — et cette classe n'avait tout simplement jamais été écrite. Résultat : le tab restait figé jusqu'ici, peu importe le nombre de correctifs « de synchro » apportés.
Cette version crée enfin la classe manquante. Local, onglet HeroTab, carte web, sous-serveurs du réseau — tout est désormais cohérent en permanence, sans aucun délai perceptible.
📥 Téléchargements
| Fichier | Description |
|---|---|
FactionPlugin-5.15.0.jar |
Plugin compilé pour Paper 1.21.x (≈ 480 KB) |
FactionPlugin-v5.15.0-source.zip |
Code source complet (Maven pom.xml + src/main/...) |
✨ Ce qui change
| Événement | Avant v5.15.0 | Depuis v5.15.0 |
|---|---|---|
| Onglet HeroTab après un recrutement | ❌ jamais | ✅ instantané |
| Onglet HeroTab après un départ / kick | ❌ jamais | ✅ instantané |
| Onglet HeroTab après un disband | ❌ jamais | ✅ instantané |
| Onglet HeroTab après un renommage | ❌ jamais | ✅ instantané |
| Onglet HeroTab après une montée de rang | ⏳ jusqu'à 60 s | ✅ instantané |
| Onglet HeroTab cycle normal | toutes les 60 s | toutes les 30 s |
Compilation mvn clean package |
✅ toujours propre |
📜 Détails du correctif
- 🐛 Cause racine identifiée et corrigée : la classe
FactionTabSyncest créée. Elle écrit dans la tablefaction_tab_synclue par HeroTab, en réutilisant la connexion MySQL déjà configurée pour/lier(sectionmysql:duconfig.yml) — aucune configuration supplémentaire n'est nécessaire si/lierfonctionne déjà chez toi. - 🛡️ Table créée automatiquement si elle n'existe pas, avec exactement les colonnes attendues par HeroTab :
uuid,faction_name,rank_name,rank_color(au format&xlegacy),rank_icon. - ⚡ Tâche de fond toutes les 30 s + push immédiat sur les mêmes événements que
WebMapSync: recrutement, départ, kick, disband, renommage, montée de rang. L'onglet est synchronisé sans aucun délai, où que soit le joueur sur le réseau. - 🔧 Bug de compilation latent corrigé en passant :
FactionPlugin.javaréférençait la classeBukkitsans l'importer — un import manquant qui aurait empêché toute compilation propre dans certaines configurations. Un balayage complet du projet a confirmé qu'aucun autre fichier ne présente ce problème.mvn clean packageproduit désormais un.jarvalide du premier coup, sur n'importe quel poste de développement.
🆕 Caractéristiques cumulées à partir de v5.14.x
- v5.14.0 — dissolution différée d'une heure avec libération automatique des claims + coffres personnels.
- v5.14.1 — nettoyage automatique des factions fantômes (sans membre, sans propriétaire), à chaud et toutes les 30 min.
- v5.14.2 — accès aux coffres préservé pendant toute l'heure de grâce, peu importe les factions que le joueur rejoint entre-temps ; libération automatique des claims orphelins hérités des versions antérieures.
- v5.14.3 — synchronisation tab immédiate lors d'une montée de rang (sans attendre 60 s) — cette version-ci reste utile pour le tab local et l'invalidation du cache, mais la v5.15.0 la remplace en s'attaquant à la vraie cause racine du problème.
- v5.15.0 —
FactionTabSynccréée : la bonne table est désormais écrite, l'onglet HeroTab se met à jour sans délai sur tous les événements de faction.
🔧 Pour installer
- Téléchargez
FactionPlugin-5.15.0.jar. - Remplacez l'ancien JAR dans le dossier
plugins/de votre serveur. - Redémarrez le serveur (ou
/reload confirm). - (Optionnel) Configurez la section
mysql:deconfig.ymlsi vous voulez activer la synchro du tab HeroTab — la même que pour/lier. Sans cette section, le plugin fonctionne normalement, seule la synchro tab HeroTab est désactivée (le tab local et la carte web restent intacts).
Aucun changement de format de données — les fichiers factions.yml, claims.yml, bank.yml, ranking.yml, map.yml, etc. existants restent compatibles. La table MySQL faction_tab_sync est créée automatiquement au premier démarrage si elle n'existe pas encore.
🏰 Pour les nouveaux venus : qu'est-ce que FactionPlugin ?
FactionPlugin est un plugin Minecraft tout-en-un pour serveurs Paper 1.21.x qui réunit dans une seule commande /faction (et ses alias /f, /fac) tout ce qu'il faut pour gérer un mode factions riche sur un serveur survie PvP :
- 🏛️ Factions complètes — création, dissolution, sous-chefs, alliances, guerres, dissolution différée d'1h pour tout récupérer, nettoyage automatique des factions fantômes
- 🗺️ Claims & territoires — chunks protégés avec permissions fines par joueur, alliances croisées, mini-map temps réel des claims
- 👥 Villages autonomes — recrutez des villageois vanilla et attribuez-leur un rôle : Constructeur, Guerrier, Récolteur, Navigateur (bateau) ou Cheminot (minecart). Ils construisent, combattent, récoltent, transportent vos marchandises — tout seuls
- 💰 Économie intégrée — banque d'émeraudes par faction, shop global paginé avec 4 monnaies (fer, or, diamant, émeraude), système d'annonces
- 🤝 Troc sécurisé entre joueurs avec confirmation des deux parties et anti-scam
- 🚢 Commerce inter-villes — vos villages ne sont plus des îles économiques : choisissez une ressource, un Navigateur ou un Cheminot la livre jusqu'à la ville alliée
- ⚡ 7 rangs de faction — Pierre → Bronze → Argent → Or → Diamant → Émeraude → Légendaire, avec effets passifs (Speed, Strength, Resistance, Haste, Regeneration…)
- 📊 Statistiques & classements détaillés (kills, mobs, dégâts, blocs, temps de jeu, K/D, advancements) avec
/faction statset/faction classementjoueurs - 🏠 Homes personnels & TPA entre joueurs, avec warmup et cooldown
- 🔌 Liaison site web —
/liersynchronise votre compte Minecraft avec le site, et (depuis la v5.15.0) l'onglet global HeroTab
Conçu pour Paper 1.21.4, Java 21 — il suffit de poser le .jar dans plugins/ et tout est prêt.
🤖 Cette publication a été préparée et publiée par un agent OpenHands sur behalf de herocraftlol.
Co-authored-by: openhands openhands@all-hands.dev
v5.14.3 — Synchronisation immédiate du tab à la promotion de rang 🏷️✨
🎉 v5.14.3 — Synchronisation immédiate du tab lors d'une montée de rang 🏷️✨
Cette micro-version corrige un dernier délai : la promotion d'une faction (passage de cap de puissance) rafraîchit désormais immédiatement le tab-list, aussi bien côté local qu'au niveau du onglet HeroTab / site global — fini l'attente pouvant aller jusqu'à 60 s pour voir le [★ OR] ou le [◆ DIAMANT] apparaître sur la ligne d'un coéquipier.
📥 Téléchargements
| Fichier | Description |
|---|---|
FactionPlugin-5.14.3.jar |
Plugin compilable pour Paper 1.21.x |
FactionPlugin-v5.14.3-source.zip |
Code source complet (Maven pom.xml + src/main/...) |
✨ Ce qui change
| v5.14.2 | v5.14.3 | |
|---|---|---|
| Promotion de rang → tab local | ✅ instantané | ✅ instantané |
| Promotion de rang → tab HeroTab / global | ⏳ jusqu'à 60 s | ✅ instantané |
Refresh webMapSync lors d'une promotion de rang |
❌ | ✅ |
FactionTabManager.refresh(...) après recalcul |
❌ | ✅ |
📜 Détails du correctif
- 🐛 Bug corrigé :
FactionTabManager.refresh(...)ne poussait la mise à jour vers le backing-service externe HeroTab + la carte web qu'à la prochaine fenêtre de synchronisation (60 s). Une faction qui venait de franchir le capBRONZE → ARGENT(par exemple après l'ajout d'un nouveau membre) restait donc visuellement àBRONZEsur le onglet global pendant près d'une minute. - 🛡️ Effet secondaire intéressant : les GUIs (
FactionRankingGUI.openRankingGUI,FactionPowerManager.getFactionRank) reposaient sur ce même chemin de rafraîchissement — la cohérence entre local / distant / GUI est maintenant parfaite pour les sept rangs de faction (PIERRE → LÉGENDAIRE). - ⚙️ Le diff principal est contenu dans
FactionTabManager.java(ajout d'unBukkit.getScheduler().runTask(this, ...)après chaque recalcul de rang, qui appellewebMapSync.pushFactionInfo(factionName)et invalide le cache local).
🔧 Pour installer
- Téléchargez
FactionPlugin-5.14.3.jar. - Remplacez l'ancien JAR dans le dossier
plugins/de votre serveur. /reload confirmou redémarrez.- (Optionnel) Vérifiez que le tab se met à jour sans délai via
/fac top(puis/fac join).
Aucun changement de format de données — les fichiers factions.yml, claims.yml, bank.yml, ranking.yml et map.yml existants restent compatibles.
🆕 Caractéristiques cumulées à partir de v5.14.x
- v5.14.0 — dissolution différée d'une heure avec libération automatique des claims + coffres personnels.
- v5.14.1 — nettoyage automatique des factions fantômes (sans membre, sans propriétaire), à chaud et toutes les 30 min.
- v5.14.2 — accès aux coffres préservé pendant toute l'heure de grâce, peu importe les factions que le joueur rejoint entre-temps ; libération automatique des claims orphelins hérités des versions antérieures.
- v5.14.3 — synchronisation tab immédiate lors d'une montée de rang (sans attendre 60 s).
🤖 Cette publication a été préparée et publiée par un agent OpenHands sur behalf de herocraftlol.
Co-authored-by: openhands openhands@all-hands.dev
FactionPlugin v5.14.2 — Accès aux coffres préservé pendant la dissolution 🧳🔓
🧳 Accès aux coffres préservé pendant la dissolution
Cette release ferme un trou important laissé par la v5.14.0 : la dissolution différée d'une heure laisse désormais un accès garanti à ses coffres et claims, même si l'on quitte la faction pendant l'heure de grâce (volontairement ou par exclusion). Elle ajoute aussi un nettoyage automatique des claims orphelins au démarrage du serveur.
Avant / Après
| Situation | En v5.14.0 / v5.14.1 | En v5.14.2 |
|---|---|---|
Tu fais /faction disband, attends 30 min, puis /faction leave pour rejoindre une autre faction |
❌ Tes coffres & claims deviennent inaccessibles pendant les 30 min restantes — tu perds ton propre butin | ✅ Tes coffres & claims restent accessibles jusqu'à la fin du compte à rebours |
Un chef te fait /faction kick pendant l'heure de grâce |
✅ Tu gardes l'accès jusqu'à la libération effective | |
| Le serveur redémarre pendant l'heure | ✅ Reprise correcte | ✅ Identique, plus nettoyage des claims orphelins au démarrage |
factions.yml hérité d'une version < 5.14.0 avec des chunks encore marqués par une faction qui n'existe plus |
✅ Libérés automatiquement au démarrage | |
purgeGhostFactions toutes les 30 min (v5.14.1) |
✅ Factions vides nettoyées | ✅ Identique, plus purgeOrphanedClaims en parallèle |
🧳 Le problème que ça corrige
La v5.14.0 introduit une dissolution différée d'une heure — le temps de tout récupérer. Mais il y avait un trou temporel embêtant : un membre qui changeait d'avis (rejoindre une faction rivale, être exclu par un chef qui change de stratégie, etc.) se faisait littéralement voler ses coffres au milieu du délai censé le protéger. Aucune action ne permettait de les rouvrir, alors que la faction existait encore techniquement et que les claims n'étaient pas libérés.
🔧 La solution
- Au moment du
scheduleDisband(...)(la demande de dissolution), le plugin ajoute chaque membre actuel à la liste des joueurs autorisés sur tous les claims de la faction, via la nouvelle méthodeClaimManager.allowPlayerOnAllClaims(factionName, uuid). - Cette autorisation est attachée au claim, pas à l'appartenance : elle ne disparaît pas quand le joueur quitte la faction — elle disparaît seulement quand le claim est réellement libéré (à la fin du compte à rebours, ou lors d'un
removeAllClaims(...)). - Le joueur peut donc quitter, être exclu, rejoindre une autre faction, voyager, mourir — ses anciens coffres et claims l'attendent toujours, jusqu'à la libération effective des claims.
🧹 Bonus : purgeOrphanedClaims
La v5.14.1 traitait déjà les factions fantômes (0 membre). La v5.14.2 ajoute un autre cas pathologique possible : des claims orphelins — des chunks encore marqués comme claimés par une faction qui n'existe plus (dissoute avant que la libération automatique des claims n'existe, ou à cause d'un autre bug historique).
Ces claims orphelins étaient deux problèmes :
- Le chunk restait « claimé » par personne — son contenu était inutilisable par qui que ce soit, sans qu'aucune faction n'en soit propriétaire.
- Le coffre que tu y avais mis n'était plus accessible à personne.
La v5.14.2 ajoute :
- Au démarrage du serveur, une passe
purgeOrphanedClaims()identifie toutes les factions propriétaires de claims qui n'existent plus dansfactions.yml, et libère leurs claims. - Toutes les 30 minutes (en parallèle de
purgeGhostFactions), la même vérification est effectuée pour rattraper le cas où une faction serait supprimée par un autre chemin.
ℹ️ Aucune action requise côté admin — la purge s'exécute toute seule.
🔧 Petits correctifs complémentaires
WebMapSync.java: correction d'une erreur de syntaxe JSON ({"cx":...mal échappé, ce qui empêchait la compilation sous Paper 1.21.4).Contract.java: import manquantfr.faction.village.PostType(utilisé sans import) — désormais corrigé.DisbandManager.resumePendingDisbands(): rejoue correctement la dissolution différée après un redémarrage et réautorise les membres viaallowPlayerOnAllClaimssi la dissolution avait été demandée avant la mise à jour vers la v5.14.2 (cas d'une mise à jour pendant le délai d'1 h).
📦 Installation & migration
- Aucune action requise côté admin : remplacer le
.jaret redémarrer suffit. - Aucune migration de données :
purgeOrphanedClaimsfait le ménage dans les chunks orphelins au démarrage, s'il y en a. - Les YAML des versions ≥ v5.0.0 restent compatibles.
📥 Téléchargements
FactionPlugin-5.14.2.jar(≈ 475 KB) — à déposer dansplugins/de votre serveur Paper 1.21.4+FactionPlugin-v5.14.2-source.zip(≈ 251 KB) — code source complet (Maven)
Cette release ne modifie aucune autre commande ou comportement du plugin — uniquement le cas particulier de l'accès aux coffres/claims pendant la dissolution différée, plus le nettoyage automatique des claims orphelins.
FactionPlugin v5.14.1 — Nettoyage des factions fantômes
🧹 Suppression automatique des factions fantômes
Cette release complète la v5.14.0 : si la dissolution volontaire d'une faction reste différée d'une heure (pour laisser aux membres le temps de récupérer leurs affaires), les factions qui n'ont déjà plus aucun membre — état pathologique laissé par d'anciens bugs où la dissolution ne libérait pas tout — sont maintenant automatiquement et entièrement supprimées, au démarrage du serveur, puis toutes les 30 minutes.
Avant / Après
| Situation | En v5.14.0 | En v5.14.1 |
|---|---|---|
| Faction vidée par un disband + tous les membres re-partent | factions.yml |
✅ Supprimée à la prochaine purge (≤ 30 min) |
factions.yml hérité d'une version < 5.14.0 (déjà plein de fantômes) |
✅ Purge initiale au démarrage | |
topbanque / classement affichent des factions sans membres |
✅ Nettoyés | |
| Claims « à personne » bloqués sur des chunks orphelins | ✅ Libérés | |
/faction disband par un chef (cas normal) |
✅ Différé d'1h | ✅ Identique, toujours différé d'1h |
Le problème que ça corrige
Au fil des versions, plusieurs bugs historiques avaient laissé des factions dans un état « zombie » :
- 💰 Banque : un compte en banque de faction n'était jamais supprimé au disband — solde orphelin pour toujours dans
/faction topbanque. - 🏦 Coffre partagé : supprimé seulement depuis la v5.14.0.
- 🗺️ Claims : libérés correctement seulement depuis la v5.14.0 ; avant, les chunks « appartenaient » à une faction qui n'existait plus.
- 📊 Classement : les caches de puissance/classement n'étaient jamais purgés au disband ou au renommage.
Ces zombies empilaient silencieusement de la donnée morte et un peu de CPU à chaque rechargement du plugin.
La solution
- Toute faction dont la liste de membres est vide est désormais considérée comme fantôme et est automatiquement et entièrement supprimée :
- claims libérés,
- coffre partagé supprimé,
- compte en banque supprimé,
- entrée retirée du classement de puissance,
- faction réellement supprimée (elle n'existe plus nulle part).
- Pas de délai d'1 h dans ce cas (à la différence d'un disband « normal ») : il n'y a personne pour récupérer quoi que ce soit, autant faire le ménage tout de suite.
- Nettoyage initial au démarrage : un passage est exécuté une fois au démarrage du serveur, pour rattraper les zombies déjà présents dans vos fichiers de sauvegarde.
- Filet de sécurité : la même purge est répétée toutes les 30 minutes au cas où une faction se retrouverait un jour vide par un autre chemin.
ℹ️ Aucune action requise côté admin — la purge s'exécute toute seule. Si vous voulez la forcer tout de suite, redémarrez le serveur (la purge initiale est garantie).
🔧 Derniers correctifs de compilation Paper API 1.21.4
Plusieurs symboles de l'API Bukkit/Paper utilisés par le plugin avaient changé d'emplacement ou de nom entre Paper 1.21.0 et 1.21.4 :
| Symbole | Avant | Après |
|---|---|---|
org.bukkit.plugin.JavaPlugin |
en org.bukkit.plugin |
déplacé en org.bukkit.plugin.java (Paper 1.21+) |
Particle.SPELL_WITCH |
retiré en 1.21 | Particle.WITCH |
Particle.VILLAGER_HAPPY |
retiré en 1.21 | Particle.HAPPY_VILLAGER |
Sound.ENTITY_PLAYER_EAT |
retiré en 1.21 | Sound.ENTITY_GENERIC_EAT |
Material.GOLD_STAINED_GLASS_PANE |
retiré en 1.21 | Material.YELLOW_STAINED_GLASS_PANE |
À noter également :
- L'événement
org.bukkit.event.entity.EntitySleepEventn'existe plus en Paper 1.21+ (seuls restentBatToggleSleepEvent,PlayerBedEnterEvent,PlayerBedLeaveEvent,PlayerDeepSleepEvent). Le soin accordé aux villageois recrutés en dormant est donc désactivé dans cette version. Les autres soins (auto-régénération naturelle, potion de soin donnée par un Récolteur, etc.) continuent de fonctionner normalement. - Le typage de
MapPalette.matchColor(...)a changé : la signature publique utilisejava.awt.Color(au lieu deorg.bukkit.Color). LeFactionMapRendererconvertit maintenant explicitement.
📦 Installation & migration
- Aucune action requise côté admin : remplacer le
.jaret redémarrer suffit. - Toutes les factions encore actives ne sont pas affectées : le critère est strictement « 0 membre », pas « basse puissance » ou « inactivité ».
- Les YAML des versions ≥ v5.0.0 restent compatibles.
ℹ️ Note sur la numérotation
- v5.14.0 = dissolution différée d'une heure, avec bugs historiques corrigés au passage.
- v5.14.1 = nettoyage automatique des factions qui n'ont déjà plus aucun membre (cas pathologique laissé par d'anciens bugs).
Les deux releases se complètent : la 5.14.0 traite le cas normal (dissolution volontaire par un chef, qui doit avoir le temps de récupérer), la 5.14.1 traite le cas pathologique (faction déjà vide, plus rien à récupérer).
📥 Téléchargements
FactionPlugin-5.14.1.jar— à déposer dansplugins/de votre serveur Paper 1.21.4+FactionPlugin-v5.14.1-source.zip— code source complet (Maven)
FactionPlugin v5.13.1 — Tab rafraîchi en quittant une faction
🐛 Le tab ne garde plus l'ancienne faction
Cette release corrige un bug visuellement très désagréable : après avoir quitté, été expulsé ou vu sa faction dissoute, le tab continuait d'afficher l'ancienne faction jusqu'à un événement extérieur (typiquement rejoindre ou fonder une autre faction). C'est trompeur, surtout quand on enchaîne immédiatement avec un /faction create ou un /faction join — l'ancienne étiquette reste affichée jusqu'à ce que le rafraîchissement automatique finisse par se déclencher.
Avant / Après
| Commande | En v5.13.0 | En v5.13.1 |
|---|---|---|
/faction leave |
❌ Étiquette de faction figée dans le tab | ✅ Tab mis à jour à la seconde |
/faction kick <joueur> (sur vous) |
❌ Idem | ✅ Joueur expulsé (et kicker) rafraîchis |
/faction disband |
❌ Tous les anciens membres gardent leur ancienne faction | ✅ Tous les anciens membres voient leur tab nettoyé |
Pourquoi
/faction create et /faction join rafraîchissaient déjà le tab (parce qu'on rejoint quelque chose, le code appelait tabManager.refresh(...) au passage). Mais /faction leave, /faction kick et /faction disband ne font qu'enlever une appartenance — la branche correspondante n'appelait jamais cette fonction. Corrigé dans cette release : les trois commandes appellent maintenant tabManager.refresh(...) pour chaque joueur concerné.
Le rafraîchissement est immédiat et propage aussi le changement au dashboard web (Herosite / HeroTab) sans attendre le cycle de 60 secondes — déjà ajouté en v5.13.0.
🔧 Correctifs de compilation Paper API 1.21.4
Quelques symboles ajoutés / renommés / déplacés entre Paper 1.21.0 et 1.21.4 rendaient le projet impossible à compiler. Tous corrigés ici :
| Symbole | Avant | Après |
|---|---|---|
Material.BED |
retiré en 1.21 | Material.RED_BED |
Enchantment.LUCK |
retiré en 1.21 | Enchantment.LOOTING |
PotionEffectType.INCREASE_DAMAGE / DAMAGE_RESISTANCE |
renommés | STRENGTH / RESISTANCE |
Material.GOLD_STAINED_GLASS_PANE |
renommé | YELLOW_STAINED_GLASS_PANE |
Particle.SPELL_WITCH / VILLAGER_HAPPY |
renommés | WITCH / HAPPY_VILLAGER |
Sound.ENTITY_PLAYER_EAT |
renommé | ENTITY_GENERIC_EAT |
BuyResult.NOT_ENOUGH_MONEY |
renommé | NOT_ENOUGH_PAYMENT |
org.bukkit.plugin.JavaPlugin (mauvais import) |
remplacé | org.bukkit.plugin.java.JavaPlugin |
MapPalette.matchColor(org.bukkit.Color) |
signature changée | MapPalette.matchColor(new java.awt.Color(...)) |
EntitySleepEvent |
n'est plus jamais lancé sur Paper 1.21+ | listener supprimé (soin nocturne déjà géré par polling depuis v5.10.3) |
view.removeRenderer(r) dans lambda |
variable non-finale | final MapView finalView = view; |
fr.faction.commerce.Contract |
import PostType manquant |
ajout de import fr.faction.village.PostType; |
Tout est compilable sur mvn clean package (Java 21, Maven 3.9+).
📦 Installation
- Téléchargez
FactionPlugin-5.13.1.jarci-dessous - Placez-le dans le dossier
plugins/de votre serveur Paper 1.21.4+ - Démarrez / redémarrez — la configuration se crée automatiquement dans
plugins/FactionPlugin/ - Tapez
/factionen jeu pour ouvrir le menu principal
🛠️ Requis : Paper 1.21.4+, Java 21+. Aucun autre plugin de factions requis.
📥 Recompilation (optionnel)
Vous voulez recompiler ? Le code source est joint : FactionPlugin-v5.13.1-source.zip. Décompressez-le, puis :
cd FactionPlugin-v5.13.1
mvn clean packageLe JAR est produit dans target/FactionPlugin-5.13.1.jar (≈ 470 KB).
🔄 Migration depuis v5.12.0
Aucune migration. Remplacez le .jar v5.12.0 par le v5.13.1 et redémarrez — tous les YAML (factions.yml, villagers.yml, stats.yml, villages.yml, commerce.yml, shop.yml, etc.) restent compatibles. Vos contrats en transit au moment de la mise à jour sont également préservés.
📝 Détails techniques
- API cible :
io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT - Java : 21 (compilé en
target 21) - Taille du JAR : ≈ 470 KB
- Changelog complet : voir
CHANGELOG_v5_13_1.md
— Cette release a été créée par un agent OpenHands au nom d'herocraftlol.