# NovaUHC — Notes de mise à jour
---
## [2.6.0] — 2026-05-03
### Nouveaux modules
####Module
loupgarou(Loup Garou UHC)
- Nouveau scénario à rôles inspiré du Loup Garou de Thiercelieux.
- ~40 rôles villageois : Analyste, Ancien, Astronome, Aubergiste, Avocat, Bienfaiteur, Bohémienne, Bouc Émissaire, Chaman, Chasseur, Citoyen, Conteuse, Corbeau, Détective, Druide, Ermite, Espion, Fossoyeur, Garde, Idiot du Village, Illusionniste, Interprète, Jumeaux, Lapin, Mire, Montreur d'Ours, Oracle, Petite Fille, Prêtresse, Prophétesse, Renard, Salvateur, Serviteur, Simple, Sœur, Sorcière, Vaudouiste, Vieux Sage, Voyante.
- Sous-packages dédiés :
loups/,solitaires/,hybrides/,couple/,vote/,cycle/,managers/.- Système d'aura LG (LIGHT/DARK) avec
LGAuraManageret lock automatique pour Ange/Prêtresse/GMW/Loup Blanc.LGRolebase : patterngetEffects()/getDayEffects()/getNightEffects()appliqué automatiquement viaapplyInfiniteEffectsaux transitions jour/nuit.- Commande
/lg(remplace/ww) avec sous-commandes (dont/lg list).
####Modules
demonslayerv3&demonslayerv4(Demon Slayer UHC)
- demonslayerv3 : refonte complète avec 22 démons (Akaza, Daki, Doma, Enmu, Furuto, Gyokko, Gyutaro, Hairo, Hantengu, Kaigaku, Kokushibo, Kumo, Kyogai, Muzan, Nakime, Rui, Susamaru, Yahaba…), 21 pourfendeurs (Tanjiro, Nezuko, Zenitsu, Inosuke, Genya, Gyomei, Kyojuro, Mitsuri, Muichiro, Obanai, Sanemi, Shinobu, Tamayo, Tengen, Tomioka, Yushiro, Kanao, Kanae, Hotaru, Kagaya, Sabito, Urokodaki) et 4 solitaires (Jigoro, Kaigaku, Shinjuro, Yoriichi).
- Systems dédiés :
assassin/,caverne/,chateau/,infection/,nichirin/,train/.- demonslayerv4 : variante v4 avec son propre roster.
- Configs :
core/src/main/resources/api/scenario/special/demonslayerv3.yml,demonslayerv4.yml.
####Module
chainsawman(Chainsaw Man UHC)
- Scénario à pactes (87 pactes au total).
- Démons inspirés de l'œuvre : Ange, Araignée, Armes, Avenir, Bombe, Chainsaw, Chauve-souris, Cosmos, Crossbow, Électrique, Enfer, Fantôme, Fouet, Froid, Gorille, Katana, Lance-flamme, Longsword, Makima, Malédiction, Mime, Mort, Muscle, Pantins, Pierre, Poisson, Portail, Poulpe, Renard, Requin, etc.
- Utilise
ArenaMirrorManagerpour distribuer équitablement les joueurs sur deux instances clonées de l'arena (arena+arena_b).- Config :
core/src/main/resources/api/scenario/special/chainsawman.yml.
####Module
disney(Disney UHC)
- 3 camps : Gentils (Aladdin, America Chavez, Bob Razowski, Doctor Strange, Elsa, Frozone, Génie, Han Solo, Hercule, Luke Skywalker, Mr Indestructible, Mufasa, Olaf, Simba, Sulli, Zeus), Méchants (Dark Vador, Empereur Palpatine, Hadès, Iago, Jafar, Léon, Les Démons, Les Moires, Mirage, Prince Hans, Roi Runéard, Scar, Shenzi, Syndrome, Wanda Maximoff, Waternoose), Simpson (Bart, Homer, Lisa, Marge).
- Camp Duos : Belle/Bête, Colère/Dégoût, Deadpool/Wolverine, Flash/Martin.
####Module
deathnote(Death Note UHC)
- 5 rôles : Kira, Enquêteur (L), Mello, Near, Shinigami.
####Module
timeout
- Nouveau scénario timeout-style.
---
### Core — Nouvelles fonctionnalités
####![]()
ArenaMirrorManager+ArenaRegeneratedEvent
- Nouveau registre central pour les "miroirs" de l'arena principale (mondes clonés type
arena_b).- Sync automatique chaque seconde de la worldborder (size, center, damage, warning) vers tous les miroirs enregistrés.
pregenAndKeep(world, radius): charge en RAM et protège les chunks d'un miroir contre le déchargement.- Helpers de propagation :
propagatePVP,propagateTime,propagateGameRule.isArenaOrMirror(world)à utiliser dans les listeners qui filtrent par world.- Nouvel event
ArenaRegeneratedEventémis parLoadingChunkTaskà la fin du pregen — permet aux modules de re-cloner B après régénération.
####Scénario
ObsiBuff
- Nouveau scénario normal : casser de l'obsidienne avec une pioche applique Haste III pendant N secondes et drop
dropAmountobsidiennes au lieu d'1.- Anti-farm via metadata sur les blocs posés par un joueur.
####![]()
ScenarioRandomEventsUi
- Nouvelle UI dédiée pour parcourir et configurer tous lesRandomGameEventd'un scénario depuis le menu.
####Utilitaires
LoreWrap: utilitaire pour wrap automatiquement les lores d'item (gestion des sauts de ligne longs).VariableFormatter: formatage centralisé des valeurs de variables (TIME, PERCENT, etc.) pour l'affichage UI.
####Nouvelles schematics
core/src/main/resources/api/schem/normalhouse.schematiccore/src/main/resources/api/schem/sanctuaire.schematic
####Système Revive supprimé
- Suppression de
ReviveAbility(template) etReviveCMD(commande/revive).- Les scénarios qui souhaitent un mécanisme de résurrection doivent désormais l'implémenter directement sans passer par cette abstraction.
---
### Moduleultimate— Nouveaux scénarios
####![]()
TaupeDefender
- Nouveau scénario style "TaupeGun défensif" avec sa propre commande
TaupeDefenderCMD.- Lang dédié :
TaupeDefenderLang(core/.../lang/special/).- Config :
core/src/main/resources/api/scenario/special/taupedefender.yml.
####![]()
TeamSwapperV3+TeamSwapperClassic+TSClass
- Refonte du TeamSwapper avec deux variantes (Classic et V3) et un menu de cargaison.
- Lang dédié :
TeamSwapperV3Lang(core/.../lang/scenario/).
####![]()
Switch(teamswitch)
- Nouveau scénario : swap aléatoire de tous les joueurs entre les teams à intervalle régulier (
swapInterval,swapStartTime).- Lang dédié :
SwitchLang(core/.../lang/scenario/).
---
### Templates & docs
- Ajout detemplates/HOWTO.md: checklist qualité pour scaffolder un nouveau module à partir des squelettestemplates/classic/ettemplates/role/.
---
## [2.5.0] — 2026-04-05
### Nouvelles fonctionnalités
####Système de couleur TAB par-viewer (
PlayerColorManager)
- Nouveau manager
PlayerColorManager: colorise le nom d'un joueur dans le TAB uniquement pour un viewer spécifique, via paquets NMS (aucune pollution du scoreboard global).- Nouvelle commande
/color: ouvre un color picker pour choisir la couleur d'un joueur dans son propre TAB.- Nouvelles UIs :
ColorPickerUi,ColorPlayerListUi.- Les préférences sont stockées dans
UHCPlayer.tabColorPrefs(Map<UUID, ChatColor>).- Réapplication automatique à la connexion/déconnexion.
####UI de configuration des effets (
EffectsConfigUi)
- Nouveau menu
EffectsConfigUiaccessible depuisDefaultUipour configurer par joueur les multiplicateurs de combat :forcePercent— pourcentage de force (dégâts en mêlée)forceCriticPercent— pourcentage de dégâts critiquesresistancePercent— pourcentage de résistance aux dégâts- Ces valeurs sont lues dynamiquement par
AttackNerfEventetResistanceNerfEvent.
####Scoreboard amélioré
- Ajout de nouvelles clés dansScoreboardLangpour afficher des informations supplémentaires en temps réel.
####UI LimiteStuff étendue
LimiteStuffbyPlayerUi: nouvelles entrées de configuration pour les limites par joueur.- Nouvelles clés
LimiteStuffUiLangpour les labels correspondants.
---
## [2.4.0] — 2026-04-04
### Nouvelles fonctionnalités
####Module DanDaDan (nouveau module)
- Nouveau module
dandadanavec 30+ rôles inspirés de DanDaDan, JoJo's Bizarre Adventure, Chainsaw Man, Doom Eternal, et d'autres univers.- Rôles disponibles : Acrobatique, Bamora, Caesar, CSG, Denji, Devilman, Dio, Doom Slayer, Enenra, Flatwoods, Jet Booster, Jiangshi, Jiji, Joseph, Jotaro, Kashimoto, Kinta, Kira, Mantis, Minotaure, Momo, Nessie, Oeil Maléfique, Okarun, Payase, Polnareff, Reiko, Reze, Rohan, Rokuro, Seiko, Tsuchinoko, Umbrella.
- Dimension Yokai custom : portails, zones Yokai, NPC de défis (
TrialNpcManager), gestionnaire de monde dédié.- UI de configuration DanDaDan :
DanDaDanConfigUi,DanDaDanYokaiListUi.
####Système de Revive
- Nouvelle classe abstraite
ReviveAbility: base pour implémenter des mécaniques de résurrection dans les scénarios de rôles.- Nouvelle commande
/revive: permet de ressusciter un joueur si le scénario actif le supporte.
####ScenarioBuilder — scénarios inline
- Nouveau
ScenarioBuilder: crée des scénarios simples sans classe dédiée, via DSL fluent.- Hooks disponibles :
onBreak,onEntityDeath,onStart,onSec,onGameStart,onDeath,onCraft,onDrop,onPlayerInteract,onPlace,onMove,onBow,onHit,onDamage,onConsume,onChatSpeak,onKill,onPickUp,noFood,onPortal,onFurnaceBurn,onPlayerInteractEntity.
####Système d'événements aléatoires (
RandomGameEvent+RandomEventScheduler)
- Nouveau système pour déclarer des événements probabilistes dans les scénarios.
- Chaque événement dispose de :
enabled,chance,minGameTime,maxGameTime,repeating— tous configurables via l'UI in-game.RandomEventSchedulerplanifie l'exécution au moment aléatoire dans la fenêtre configurée.RandomEventConfigUi: UI auto-générée pour configurer chaque événement depuis le menu scénario.
####RoleDescription DSL
- Nouveau
RoleDescription: DSL fluent pour envoyer la description d'un rôle à un joueur avec hover.- Méthodes :
.separator(),.line(),.hover(),.space(),.raw(),.send().- Remplace les appels directs à
HoverUtils.sendHoverLine.
####WinCondition personnalisée
- Nouvelle interface
WinCondition: permet de définir une logique de victoire custom pour lesScenarioRole.- Injection via
scenario.setWinCondition(playerRoles -> ...).
####UI Dispatcher pour ScenarioRole
- Nouveau
ScenarioRoleDispatcherUi: menu intermédiaire pour lesScenarioRolequi ont à la fois des@ScenarioVariableet des rôles.[Config des Rôles]→ navigation camps/rôles[Config du Scénario]→ScenarioVariableUi
####VariableSerializer
- NouveauVariableSerializer: sérialisation/désérialisation unifiée pourAbility,Role, etScenariovia leurs annotations (@AbilityVariable,@RoleVariable,@ScenarioVariable). Supprime le code de sérialisation manuel.
####Réorganisation des templates d'Ability
- Les classes de base
PassiveAbility,UseAbility,BowAbility,MeleeAbility,CommandAbilitydéplacées dans le packageability/template/.- Shims de compatibilité maintenus pour
UseAbiliyetBowAbbility.
####Dossier
templates/— squelettes prêts à l'emploi
- Nouveau dossier
templates/à la racine avec des fichiers sources complets pour créer un nouveau module de zéro.templates/classic/: scénario classique (sans rôles) —MyScenario.java+MyScenarioLang.java.templates/role/: module complet avec rôles —Main.java,MyScenarioUHC.java,MyRole.java,MyCamps.java, enums lang (DescLang,VarLang,Lang), exemple de rôle + ability,plugin.yml,build.gradle.
---
## [2.3.1] — 2026-03-08
###Patch compilation Ultimate (part. 1)
SoulBrother.java— importLangManager+ remplacementTEAM_REDEFINED_AUTO.TeamAtFirstSeigth.java— importLangManager+ remplacementTEAM_REDEFINED_AUTO.TaupeCMD.java— importLangManager+DISABLE_ACTION× 2.TaupeGun.java— importLangManager+ 6 remplacementsCommonString.SlaveMarketUi.java— importLangManager+DISABLE_ACTION.SlaveMarketLang.java—basePath"message"→"".SkyHigthLang.java—basePath"message"→"".
---
## [2.1.0] — 2026-02-26
###Migration UI — Messages & Titres (24 classes)
Toutes les chaînes codées en dur remplacées par des appelsLangManager:
| Fichier | Lang Enum créé |
|---------|----------------|
|ScenariosUi.java|ScenariosUiLang|
|TeamConfigUi.java|TeamConfigUiLang|
|ConfigVarUi.java|ConfigVarUiLang|
|CenterUi.java|CenterUiLang|
|BorderConfig.java|BorderConfigLang|
|WorldUi.java|WorldUiLang|
|LimiteStuffUi.java|LimiteStuffUiLang|
|ScenarioVariableUi.java|ScenarioVariableUiLang|
|OrePopulatorUi.java|OrePopulatorUiLang|
|ConfirmMenu.java|CommonLang(existant) |
|inGameScenario.java|inGameScenarioLang|
|MumbleUi.java|MumbleUiLang|
| 12 autres UI | enums dédiés |
---
## [2.0.0] — 2026-02-26
###Refonte complète du système de traduction
#### Nouveaux composants (Core)
Lang(interface) — interface centrale remplaçantCommonString.- Supporte les placeholders dynamiques via
Map<String, Object>.- Méthodes :
send(Player),sendAll(),getMessage(Player),getDefaultMessage().- Fallback en cascade : locale joueur → locale serveur → message par défaut.
LangManager(singleton) — gestionnaire centralisé de toutes les traductions.- Auto-génération des fichiers
.ymlpar locale (fr_FR.yml,en_US.yml).- Enregistrement dynamique des enums via
register(ScenarioLang[]).- Résolution par locale par joueur à chaque envoi.
CommonLang(enum) — remplacement complet deCommonString(80+ messages).- Clés migrées :
TEAM_REDEFINED_AUTO,DISABLE_ACTION,LOBBY_CHAT_FORMAT,CANT_TALK_DEATH,CHAT_DISABLED,CHAT_GLOBAL_FORMAT, etc.- Support bilingue FR/EN pour chaque entrée.
ScenarioLang(interface) — implémentée par tous les enums de scénario.- Méthodes :
getBasePath(),getConfig(),setConfig(),getDefaultMessage(),getScenarioPlaceholders(UHCPlayer).
#### Notes de migration
Pattern de remplacement standard :
Java:// ❌ Ancien CommonString.TEAM_REDFINIED_AUTO.sendAll(); CommonString.DISABLE_ACTION.send(player); String msg = CommonString.LOBBY_CHAT_FORMAT.getMessage(player); // ✅ Nouveau LangManager.get(CommonLang.TEAM_REDEFINED_AUTO).sendAll(); LangManager.get(CommonLang.DISABLE_ACTION).send(player); String msg = LangManager.get(CommonLang.LOBBY_CHAT_FORMAT).getMessage(player);
Enregistrement des Lang enums dansMain.java:
Java:LangManager l = LangManager.get(); l.register(MyScenarioLang.values()); l.register(AnotherScenarioLang.values());
RèglegetBasePath()— tous les enumsScenarioLangdoivent retourner"":
Java:@Override public String getBasePath() { return ""; // ✅ Correct // return "message"; ❌ Incorrect — génère des clés yml cassées }
#### What's Changed (PRs)
- Refactor
CommonStringfor improved message handling and localization — Sithey in #1- Add default messages for various scenario languages — Sithey in #2
- Delay player teleportation to lobby spawn by one tick for smoother transitions — Sithey in #3
New Contributors : Sithey a fait sa première contribution dans #1.
Full Changelog : https://github.com/lezombie3D/Nova-UHC/commits/1.3.0
---
## v0.3 — (commits précédents)
- Ajout de
TpMeetupscenario.ReconnectionManager: support de la reconnexion en cours de partie.- Amélioration null-safety de
LangManager.- Nettoyage de
FixedPlayerBucketConnectionet événements associés.- Amélioration du logging
FallenKingdom.
Système de Reconnexion
Description
Les joueurs qui se déconnectent pendant une partie disposent désormais d'un délai de grâce de 15 minutes pour se reconnecter sans perte de progression.
Comportement en cas de déconnexion
Déconnexion d'un joueur :
- Un timer de 15 minutes démarre automatiquement
- La position et l'inventaire du joueur sont sauvegardés
- Le joueur ne compte plus dans les joueurs vivants
- Les autres joueurs sont notifiés du délai de reconnexion
Reconnexion dans les temps :
- Téléportation à la position exacte de déconnexion
- Restauration complète de l'inventaire
- Reprise normale de la partie
- Notification du temps restant aux autres joueurs
Expiration du délai (15 minutes) :
- Élimination définitive du joueur
- Drop de tous les items à la position de déconnexion
- Enregistrement de la mort dans les statistiques
- Vérification automatique des conditions de victoire
Corrections de bugs
Protection contre les erreurs NullPointerException
- Correction du crash lors du scatter si un joueur se déconnecte pendant le processus
- Protection globale dans le système de langue (LangManager)
- Sécurisation de tous les événements impliquant des joueurs
Système de victoire
- Les joueurs déconnectés ne bloquent plus la fin de partie
- Détection correcte des survivants (uniquement joueurs connectés)
- Vérification immédiate lors des déconnexions
Changelog — NovaUHC / Ultimate
Changements depuis l'ajout de la nouvelle API (LangManager / système i18n)
[2.0.0] — Refonte complète du système de traduction 2026-02-26
Nouveaux composants (Core)
Lang (interface)
- Nouvelle interface centrale remplaçant CommonString
- Supporte les placeholders dynamiques via Map<String, Object>
- Méthodes : send(Player), sendAll(), getMessage(Player), getDefaultMessage()
- Fallback en cascade : locale joueur → locale serveur → message par défaut
LangManager (singleton)
- Gestionnaire centralisé de toutes les traductions
- Auto-génération des fichiers .yml par locale (fr_FR.yml, en_US.yml)
- Enregistrement dynamique des enums via register(ScenarioLang[])
- Résolution par locale par joueur à chaque envoi
CommonLang (enum)
- Remplacement complet de CommonString (80+ messages)
- Clés migrées : TEAM_REDEFINED_AUTO, DISABLE_ACTION, LOBBY_CHAT_FORMAT, CANT_TALK_DEATH, CHAT_DISABLED, CHAT_GLOBAL_FORMAT, etc.
- Support bilingue FR/EN pour chaque entrée
ScenarioLang (interface)
- Interface implémentée par tous les enums de scénario
- Méthodes : getBasePath(), getConfig(), setConfig(), getDefaultMessage(), getScenarioPlaceholders(UHCPlayer)
[2.1.0] — Migration UI — Messages & Titres 2026-02-26
Fichiers UI migrés (24 classes)
Toutes les chaînes codées en dur ont été remplacées par des appels LangManager :
Fichier Lang Enum créé ScenariosUi.java ScenariosUiLang TeamConfigUi.java TeamConfigUiLang ConfigVarUi.java ConfigVarUiLang CenterUi.java CenterUiLang BorderConfig.java BorderConfigLang WorldUi.java WorldUiLang LimiteStuffUi.java LimiteStuffUiLang ScenarioVariableUi.java ScenarioVariableUiLang OrePopulatorUi.java OrePopulatorUiLang ConfirmMenu.java CommonLang (existant) inGameScenario.java inGameScenarioLang MumbleUi.java MumbleUiLang + 12 autres UI enums dédiés
Centralisation des titres de menus
- Suppression de menu.yml comme source de titres
- Nouveau enum UiTitleLang centralisant tous les titres d'inventaires
- Génération des lobby items par joueur (locale individuelle au lieu de globale)
Fix : import ConfirmMenu.java
- Correction du double import lang.lang.CommonLang généré par erreur lors du patch automatisé
[2.2.0] — Migration Scénarios — 23 enums créés 2026-02-26
Nouveaux enums de scénario (module Core)
Scénario Enum GoldenHead GoldenHeadLang Inventors InventorsLang BlockRush BlockRushLang NineSlot NineSlotLang OreRoulette OreRouletteLang SimonSays SimonSaysLang NoNether NoNetherLang NoEnd NoEndLang LongShoot LongShootLang LoupGarou LoupGarouLang FireForce FireForceLang + 12 autres enums dédiés
- Chaque enum implémente ScenarioLang avec getBasePath() retournant ""
- Traductions FR/EN pour chaque entrée
[2.3.0] — Ajout du Module Ultimate 2026-02-27
Présentation
Le module Ultimate est un module indépendant qui vient se greffer sur le Core NovaUHC pour y ajouter des modes de jeu supplémentaires. Il fonctionne comme une extension : le Core reste intact, et Ultimate enregistre ses propres scénarios au démarrage via ScenarioManager.
Le module contient actuellement 17 scénarios répartis en deux catégories :
- Scénarios standards — modes jouables seuls ou en équipe (TaupeGun, SlaveMarket, SkyHigh, FallenKingdom, Legend, etc.)
- Scénarios spéciaux (isSpecial() = true) — modes qui modifient les règles de base comme la taille des équipes (SoulBrother, MysteryTeam, TeamAtFirstSight, King, TaupeGun)
Tous les scénarios Ultimate utilisent le même système i18n que le Core (LangManager, ScenarioLang), garantissant un support bilingue FR/EN cohérent sur l'ensemble du serveur.
[2.3.0] — Module Ultimate — Nouveaux scénarios & migration 2026-02-27
Nouveaux Lang enums (module Ultimate)
Scénario Enum MysteryTeam MysteryTeamLang SoulBrother SoulBrotherLang SkyDef SkyDefLang
CommonString → LangManager (module Ultimate)
Fichiers migrés dans le module ultimate :
Fichier Remplacements King.java TEAM_REDEFINED_AUTO Legend.java TEAM_REDEFINED_AUTO SkyDef.java TEAM_REDEFINED_AUTO TaupeGun.java TEAM_REDEFINED_AUTO × 2, LOBBY_CHAT_FORMAT, CANT_TALK_DEATH, CHAT_DISABLED, CHAT_GLOBAL_FORMAT TaupeCMD.java DISABLE_ACTION × 2 TeamAtFirstSeigth.java TEAM_REDEFINED_AUTO FallenUi.java CLICK_GAUCHE, CLICK_DROITE FallenKingdom.java DISABLE_ACTION × 2 SoulBrother.java TEAM_REDEFINED_AUTO SlaveMarketUi.java DISABLE_ACTION
Fix : SoulBrother.java
- Correction du bug REUNION_TIME — la variable n'était jamais initialisée depuis la config, rendant la réunion immédiate au lancement
Fix : basePath Lang enums Ultimate
Correction du getBasePath() erroné ("message" → "") sur :
- BeatTheSantaLang
- FKLang
- SkyHigthLang
- SlaveMarketLang
Système de Légendes (18 classes)
Ajout complet du système Legend avec :
- LegendRole (classe de base) — méthodes helpers isOwnerMelee(), isOwnerArrow()
- LegendRegistry — enregistrement et lookup des rôles
- LegendData — stockage des données par joueur
- Cooldown — gestion des cooldowns d'abilities
- LegendLang — enum bilingue pour toutes les descriptions de rôles
18 rôles implémentés :
Classe Capacité principale Archer Bonus dégâts arc Assassin Invisibilité au kill Cavalier Boost vitesse monture Corne Effet de corne Dragon Souffle de feu Mage Projectile magique Marionnettiste Contrôle d'entité Medecin Soin passif d'équipe Nain Résistance souterraine Necromancien Invocation à la mort Ogre Force passive Paladin Aura de protection Princesse Charme Prisonnier Chaîne Soldat Armure passive Succube Vol de vie Tank Absorption de dégâts Zeus Foudre à l'attaque
[2.3.1] — Patch compilation Ultimate (part. 1) 2026-03-08
Fichiers corrigés
- SoulBrother.java — import LangManager + remplacement TEAM_REDEFINED_AUTO
- TeamAtFirstSeigth.java — import LangManager + remplacement TEAM_REDEFINED_AUTO
- TaupeCMD.java — import LangManager + DISABLE_ACTION × 2
- TaupeGun.java — import LangManager + 6 remplacements CommonString
- SlaveMarketUi.java — import LangManager + DISABLE_ACTION
- SlaveMarketLang.java — basePath "message" → ""
- SkyHigthLang.java — basePath "message" → ""
Notes de migration
Pattern de remplacement standard
//Ancien
CommonString.TEAM_REDFINIED_AUTO.sendAll();
CommonString.DISABLE_ACTION.send(player);
String msg = CommonString.LOBBY_CHAT_FORMAT.getMessage(player);
//Nouveau
LangManager.get(CommonLang.TEAM_REDEFINED_AUTO).sendAll();
LangManager.get(CommonLang.DISABLE_ACTION).send(player);
String msg = LangManager.get(CommonLang.LOBBY_CHAT_FORMAT).getMessage(player);
Enregistrement des Lang enums dans Main.java
LangManager l = LangManager.get();
l.register(MyScenarioLang.values());
l.register(AnotherScenarioLang.values());
// etc.
Règle getBasePath()
Tous les enums ScenarioLang doivent retourner "" :
Override
public String getBasePath() {
return ""; //Correct
// return "message";Incorrect — génère des clés yml cassées
}
# NovaUHC v1.2.0
Bonjour à tous,
La version 1.2.0 de NovaUHC est désormais disponible.
Cette mise à jour majeure introduit un système de statistiques centralisé ainsi qu’un dashboard web permettant de gérer vos serveurs à distance.
Toutes vos données sont maintenant accessibles depuis n’importe quel serveur utilisant NovaUHC.
Nouveautés principales
Dashboard Web
Un site complet pour gérer vos serveurs UHC :
- Total de serveurs
- Interface moderne et responsive
- Monitoring en temps réel (rafraîchissement automatique toutes les 10 secondes)
- Statut des serveurs en direct :
Online/Ingame/Offline- Statistiques globales instantanées :
- Serveurs en ligne
- Parties en cours
- Joueurs connectés
- Filtres et recherche par nom ou adresse IP
Améliorations du Plugin
- Enregistrement automatique des joueurs à la première connexion
- Tracking précis des statistiques en temps réel pendant les parties
- Support complet des modes Team et des modes spéciaux (Loup-Garou, etc.)
- Appels asynchrones vers le backend pour éviter tout lag serveur
Pour les hosts
Le dashboard permet :
- Gestion des serveurs à distance
- Monitoring en temps réel
- Vue d’ensemble des serveurs actifs, parties en cours et joueurs connectés
:warning: Note : Le dashboard est encore en cours de développement. Certaines fonctionnalités peuvent ne pas être totalement opérationnelles.
Installation
1. Accédez au site :
http://91.134.136.202:3001
(Nom de domaine à venir)
2. Créez un compte
Important : conservez votre clé API
Le bouton copier collez ne fonctionne pas
3. Accédez au dashboard
Configuration
Dans leconfig.yml:
Code:api: url: 91.134.136.202:3000/api/v1/plugin key: VOTRE_CLE_API
N’hésitez pas à tester cette nouvelle version et à partager vos retours.
Ils sont essentiels pour continuer à améliorer NovaUHC.
Plugin développé par lezombie3D
Version 1.2.0 – Février 2026
[ADDITION]
Every scenarios have the customisation system
[FIX]
Minor fix with win condition
