Nova UHC icon

Nova UHC -----

Revolutionary all-in-one Minecraft framework for creating and managing UHC games.




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
----------, Mar 9, 2026

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
}
----------, Mar 8, 2026

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
}
----------, Mar 8, 2026

# 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

> ⚠️ 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` :

```
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
----------, Feb 23, 2026

[ADDITION]

Every scenarios have the customisation system

[FIX]

Minor fix with win condition
----------, Feb 4, 2026

Resource Information
Author:
----------
Total Downloads: 34
First Release: Feb 4, 2026
Last Update: Mar 9, 2026
Category: ---------------
All-Time Rating:
1 ratings
Find more info at nova-code.gitbook.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings