NovaUHC v2.6.0

Revolutionary all-in-one Minecraft framework for creating and managing UHC games.
# 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 LGAuraManager et lock automatique pour Ange/Prêtresse/GMW/Loup Blanc.
  • LGRole base : pattern getEffects() / getDayEffects() / getNightEffects() appliqué automatiquement via applyInfiniteEffects aux 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 ArenaMirrorManager pour 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 par LoadingChunkTask à 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 dropAmount obsidiennes 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 les RandomGameEvent d'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.schematic
  • core/src/main/resources/api/schem/sanctuaire.schematic

#### 🗑️ Système Revive supprimé
  • Suppression de ReviveAbility (template) et ReviveCMD (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.

---

### Module ultimate — 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 de templates/HOWTO.md : checklist qualité pour scaffolder un nouveau module à partir des squelettes templates/classic/ et templates/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 EffectsConfigUi accessible depuis DefaultUi pour configurer par joueur les multiplicateurs de combat :
  • forcePercent — pourcentage de force (dégâts en mêlée)
  • forceCriticPercent — pourcentage de dégâts critiques
  • resistancePercent — pourcentage de résistance aux dégâts
  • Ces valeurs sont lues dynamiquement par AttackNerfEvent et ResistanceNerfEvent.

#### 📊 Scoreboard amélioré
- Ajout de nouvelles clés dans ScoreboardLang pour 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 LimiteStuffUiLang pour les labels correspondants.

---

## [2.4.0] — 2026-04-04

### Nouvelles fonctionnalités

#### 🌀 Module DanDaDan (nouveau module)
  • Nouveau module dandadan avec 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.
  • RandomEventScheduler planifie 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 les ScenarioRole.
  • Injection via scenario.setWinCondition(playerRoles -> ...).

#### 🗺️ UI Dispatcher pour ScenarioRole
  • Nouveau ScenarioRoleDispatcherUi : menu intermédiaire pour les ScenarioRole qui ont à la fois des @ScenarioVariable et des rôles.
  • [Config des Rôles] → navigation camps/rôles
  • [Config du Scénario]ScenarioVariableUi

#### 🗜️ VariableSerializer
- Nouveau VariableSerializer : sérialisation/désérialisation unifiée pour Ability, Role, et Scenario via 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, CommandAbility déplacées dans le package ability/template/.
  • Shims de compatibilité maintenus pour UseAbiliy et BowAbbility.

#### 📂 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 — 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.javabasePath "message""".
  • SkyHigthLang.javabasePath "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 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 |

---

## [2.0.0] — 2026-02-26

### 🏗️ Refonte complète du système de traduction

#### Nouveaux composants (Core)

  • Lang (interface) — 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) — 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 dans Main.java :

Java:
LangManager l = LangManager.get();
l.register(MyScenarioLang.values());
l.register(AnotherScenarioLang.values());

Règle getBasePath() — tous les enums ScenarioLang doivent 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 CommonString for 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 TpMeetup scenario.
  • ReconnectionManager : support de la reconnexion en cours de partie.
  • Amélioration null-safety de LangManager.
  • Nettoyage de FixedPlayerBucketConnection et é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 :


FichierLang Enum créé
ScenariosUi.javaScenariosUiLang
TeamConfigUi.javaTeamConfigUiLang
ConfigVarUi.javaConfigVarUiLang
CenterUi.javaCenterUiLang
BorderConfig.javaBorderConfigLang
WorldUi.javaWorldUiLang
LimiteStuffUi.javaLimiteStuffUiLang
ScenarioVariableUi.javaScenarioVariableUiLang
OrePopulatorUi.javaOrePopulatorUiLang
ConfirmMenu.javaCommonLang (existant)
inGameScenario.javainGameScenarioLang
MumbleUi.javaMumbleUiLang
+ 12 autres UIenums 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énarioEnum
GoldenHeadGoldenHeadLang
InventorsInventorsLang
BlockRushBlockRushLang
NineSlotNineSlotLang
OreRouletteOreRouletteLang
SimonSaysSimonSaysLang
NoNetherNoNetherLang
NoEndNoEndLang
LongShootLongShootLang
LoupGarouLoupGarouLang
FireForceFireForceLang
+ 12 autresenums 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énarioEnum
MysteryTeamMysteryTeamLang
SoulBrotherSoulBrotherLang
SkyDefSkyDefLang

🔄 CommonString → LangManager (module Ultimate)​


Fichiers migrés dans le module ultimate :


FichierRemplacements
King.javaTEAM_REDEFINED_AUTO
Legend.javaTEAM_REDEFINED_AUTO
SkyDef.javaTEAM_REDEFINED_AUTO
TaupeGun.javaTEAM_REDEFINED_AUTO × 2, LOBBY_CHAT_FORMAT, CANT_TALK_DEATH, CHAT_DISABLED, CHAT_GLOBAL_FORMAT
TaupeCMD.javaDISABLE_ACTION × 2
TeamAtFirstSeigth.javaTEAM_REDEFINED_AUTO
FallenUi.javaCLICK_GAUCHE, CLICK_DROITE
FallenKingdom.javaDISABLE_ACTION × 2
SoulBrother.javaTEAM_REDEFINED_AUTO
SlaveMarketUi.javaDISABLE_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 :


ClasseCapacité principale
ArcherBonus dégâts arc
AssassinInvisibilité au kill
CavalierBoost vitesse monture
CorneEffet de corne
DragonSouffle de feu
MageProjectile magique
MarionnettisteContrôle d'entité
MedecinSoin passif d'équipe
NainRésistance souterraine
NecromancienInvocation à la mort
OgreForce passive
PaladinAura de protection
PrincesseCharme
PrisonnierChaîne
SoldatArmure passive
SuccubeVol de vie
TankAbsorption de dégâts
ZeusFoudre à 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 :

  • 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 :
- Total de serveurs
- 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 le config.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
EULA: Free EULA
Buy additional addons now
$0.00
Support
Standard
(free)
Includes:
Download the resource
Access new updates
Support from the creator
Extras
Ultimate- Donation
+ $1.99
Share and earn
Refer this resource and earn a 10% commission.
630 Views
26 Downloads
Feb 4, 2026 Published
May 3, 2026 Updated
5.00 star(s)
Average rating (1)
3.4 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Minigame
  1. Core
Game mode
  1. UHC
Supported software
  1. Spigot
Supported versions
  1. 1.8
Supported languages
  1. English
  1. Spanish
  1. Russian
  1. German
  1. French
  1. Portugese
  1. Polish
  1. Turkish
  1. Chinese
  1. Indonesian
  1. Italian
  1. Vietnamese
  1. Dutch
  1. Korean
  1. Czech
  1. Thai
  1. Hungarian
  1. Arabic
  1. Japanese
  1. Ukrainian
  1. Swedish
  1. Danish
  1. Romanian
  1. Slovak
  1. Hebrew
  1. Lithuanian
Crediting original
lezombie3D Shitey
Creator
Owner
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,169 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,088 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,029 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,800 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,569 purchases
Share and earn
Refer this resource and earn a 10% commission.
630 Views
26 Downloads
Feb 4, 2026 Published
May 3, 2026 Updated
5.00 star(s)
Average rating (1)
3.4 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Minigame
  1. Core
Game mode
  1. UHC
Supported software
  1. Spigot
Supported versions
  1. 1.8
Supported languages
  1. English
  1. Spanish
  1. Russian
  1. German
  1. French
  1. Portugese
  1. Polish
  1. Turkish
  1. Chinese
  1. Indonesian
  1. Italian
  1. Vietnamese
  1. Dutch
  1. Korean
  1. Czech
  1. Thai
  1. Hungarian
  1. Arabic
  1. Japanese
  1. Ukrainian
  1. Swedish
  1. Danish
  1. Romanian
  1. Slovak
  1. Hebrew
  1. Lithuanian
Crediting original
lezombie3D Shitey
Creator
Owner
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,169 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,088 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,029 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,800 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,569 purchases
Top