Skip to content

FactionPlugin v5.14.1 — Nettoyage des factions fantômes

Choose a tag to compare

@herocraftlol herocraftlol released this 14 Sep 17:00

🧹 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 ⚠️ Restait vide et fantôme dans 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) ⚠️ Les fantômes restent ✅ Purge initiale au démarrage
topbanque / classement affichent des factions sans membres ⚠️ Oui ✅ Nettoyés
Claims « à personne » bloqués sur des chunks orphelins ⚠️ Oui ✅ 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.EntitySleepEvent n'existe plus en Paper 1.21+ (seuls restent BatToggleSleepEvent, 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 utilise java.awt.Color (au lieu de org.bukkit.Color). Le FactionMapRenderer convertit maintenant explicitement.

📦 Installation & migration

  • Aucune action requise côté admin : remplacer le .jar et 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 dans plugins/ de votre serveur Paper 1.21.4+
  • FactionPlugin-v5.14.1-source.zip — code source complet (Maven)