File Details
zombiemod-1.0.2.jar
- R
- Nov 21, 2025
- 3.53 MB
- 197
- 1.20.1
- Forge
File Name
zombiemod-1.0.2.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
---
📋 CHANGELOG - Zombie Mod Forge 1.20.1
Backport depuis NeoForge 1.21.1
---
🎮 SYSTÈME DE JEU PRINCIPAL
GameManager (manager/GameManager.java)
- Gestion des états de jeu : WAITING, STARTING, WAVE_ACTIVE, WAVE_COOLDOWN
- Countdown de 60 secondes avant le début de partie
- Gestion des joueurs actifs et en attente
- Commandes /zombiestart, /zombiestop, /zombiejoin
- Auto-stop automatique quand tous les joueurs se déconnectent
- Suppression de tous les zombies lors de l'arrêt
WaveManager (manager/WaveManager.java)
- Système de vagues progressives
- Spawn de zombies avec difficulté croissante
- Cooldown de 10 secondes entre les vagues
- Sons de début et fin de vague (round_start, round_end)
- Support des mobs personnalisés via config
PointsManager (manager/PointsManager.java)
- Système de points par joueur
- +10 points par hit sur zombie
- +100 points par kill de zombie
- Points persistants pendant la partie
RespawnManager (manager/RespawnManager.java)
- Gestion du respawn des joueurs morts
- Système d'attente jusqu'à la fin de la vague
- Respawn automatique au début de chaque nouvelle vague
---
🗺️ SYSTÈME DE MAPS
MapManager (map/MapManager.java)
- Gestion multi-maps avec fichiers JSON
- Sauvegarde/chargement des configurations
- Commande /zombiemap pour gérer les maps
MapConfig (map/MapConfig.java)
- Configuration par map : spawn joueurs, spawn zombies
- Points de spawn multiples configurables
ZombieSpawnPoint (map/ZombieSpawnPoint.java)
- Points de spawn zombies avec poids
- Distribution aléatoire selon les poids
DoorConfig (map/DoorConfig.java)
- Configuration des portes par map
- Stockage des zones de déblocage
---
🚪 SYSTÈME DE PORTES
DoorCommand (command/DoorCommand.java)
- /zombiedoor <numéro> <prix> - Créer une porte
- /zombiedoor remove - Supprimer une porte
- /zombiedoor setzone <numéro> - Définir zone de déblocage
- /zombiedoor clearzone <numéro> - Effacer zone
DoorInteractionHandler (event/DoorInteractionHandler.java)
- Clic droit sur panneau mural pour acheter
- Vérification des points du joueur
- Déblocage des blocs dans la zone définie
- Synchronisation client des données
ClientDoorData (client/ClientDoorData.java)
- Cache client pour l'affichage HUD des portes
- Affichage du prix et état (ouverte/fermée)
---
📦 SYSTÈME DE WEAPON CRATES
WeaponCrateCommand (command/WeaponCrateCommand.java)
- /weaponcrate <prix> - Créer une caisse d'armes
- /weaponcrate remove - Supprimer une caisse
- /weaponcrate addammo <type> <quantité> <prix> - Ajouter munitions
- Support des items avec NBT
WeaponCrateManager (data/WeaponCrateManager.java)
- Gestion des caisses d'armes
- Stockage des items et munitions
WeaponCrateSavedData (data/WeaponCrateSavedData.java)
- Persistance des caisses dans le monde
- Sauvegarde NBT automatique
ChestInteractionHandler (event/ChestInteractionHandler.java)
- Clic droit = Acheter arme (animation roulette si plusieurs items)
- Clic gauche = Acheter munitions
- Son mystery_box pour l'animation roulette
- Vérification des points
WeaponCrateAnimationManager (system/WeaponCrateAnimationManager.java)
- Animation roulette style "Mystery Box"
- Cycle rapide puis ralentissement
- Affichage de l'item final
- Fix: pas d'animation bloquante pour caisse à 1 item
ClientWeaponCrateData (client/ClientWeaponCrateData.java)
- Cache client pour affichage HUD
- Données des caisses synchronisées
---
🎵 SYSTÈME JUKEBOX ZOMBIE
ZombieJukeboxCommand (command/ZombieJukeboxCommand.java)
- /zombiejukebox <prix> - Créer un jukebox zombie
- /zombiejukebox remove - Supprimer un jukebox
JukeboxManager (system/JukeboxManager.java)
- Gestion des jukeboxes zombie
- Lecture de la musique "115"
- Toggle play/stop
JukeboxInteractionHandler (event/JukeboxInteractionHandler.java)
- Clic droit pour activer/désactiver
- Déduction des points
- Messages de feedback
ServerJukeboxTracker (system/ServerJukeboxTracker.java)
- Tracking serveur des positions de jukebox
- Synchronisation avec les clients
ClientJukeboxData (client/ClientJukeboxData.java)
- Cache client pour affichage HUD
- Prix et état du jukebox
---
🔊 SYSTÈME DE SONS
ModSounds (ModSounds.java)
- mystery_box - Son d'ouverture caisse roulette
- round_start - Son début de vague
- round_end - Son fin de vague
- 115 - Musique du jukebox zombie
- Registration via DeferredRegister
sounds.json (resources)
- Définition des fichiers audio
- Chemins vers les fichiers .ogg
---
📊 HUD CLIENT
ZombieHUD (client/ZombieHUD.java)
- Affichage permanent :
- Vague actuelle
- Zombies restants
- Points du joueur
- Scoreboard des joueurs (classement par points)
- Countdowns :
- 60s avant début de partie
- 10s entre les vagues
- Infos contextuelles (raycast 5 blocs) :
- Weapon Crate : prix arme + munitions, actions
- Porte : numéro, prix, état (ouverte/fermée)
- Jukebox : prix, action activer/arrêter
- Animations de points flottants (+10/+100)
PointsAnimationManager (client/PointsAnimationManager.java)
- Animation "+10" vert pour les hits
- Animation "+100" or pour les kills
- Vélocité aléatoire avec spread
- Mouvement vers le haut
- Fade out progressif
- Effet de scale au démarrage
ClientTickHandler (client/ClientTickHandler.java)
- Tick client pour les animations
- Mise à jour des FloatingPoints
ClientGameData (client/ClientGameData.java)
- Cache des données de jeu côté client
- État de la partie, vague, joueurs, points
---
🌐 RÉSEAU
NetworkHandler (network/NetworkHandler.java)
- GameStatePacket - Sync état de jeu
- WavePacket - Sync vague et zombies restants
- PointsPacket - Sync points joueur
- PlayerListPacket - Sync liste joueurs
- WeaponCrateSyncPacket - Sync données caisses
- CrateAnimationPacket - Animation roulette
- DoorSyncPacket - Sync données portes
- JukeboxSyncPacket - Sync données jukeboxes
- PlaySoundPacket - Jouer son global
- PointsAnimationPacket - Animation +10/+100
---
⚙️ CONFIGURATION
ZombieConfig (config/ZombieConfig.java)
- zombie_damage - Dégâts des zombies (défaut: 6.0)
- Fichier zombiemod.json
ZombieDropsConfig (config/ZombieDropsConfig.java)
- Configuration des drops de zombies
- Items avec probabilités et quantités
- Support NBT complet
ZombieMobsConfig (config/ZombieMobsConfig.java)
- Configuration des mobs par vague
- Types de mobs avec poids de spawn
---
📝 COMMANDES
| Commande | Description |
|--------------------------|-------------------------------|
| /zombiestart | Démarrer une partie |
| /zombiestop | Arrêter la partie |
| /zombiejoin | Rejoindre la partie |
| /zombiespawn add | Ajouter point spawn zombie |
| /zombiespawn remove | Supprimer point spawn |
| /zombierespawn set | Définir point respawn joueurs |
| /zombiemap create <nom> | Créer une map |
| /zombiemap select <nom> | Sélectionner une map |
| /zombiemap list | Lister les maps |
| /zombiedoor <num> <prix> | Créer une porte |
| /zombiedoor remove | Supprimer une porte |
| /weaponcrate <prix> | Créer une caisse |
| /weaponcrate remove | Supprimer une caisse |
| /weaponcrate addammo | Ajouter munitions |
| /zombiejukebox <prix> | Créer un jukebox |
| /zombiejukebox remove | Supprimer un jukebox |
| /zombiehelp | Afficher l'aide |
---
🛡️ ÉVÉNEMENTS
ZombieEventHandler (event/ZombieEventHandler.java)
- Points sur hit (+10) et kill (+100)
- Envoi des packets d'animation
- Décrément compteur zombies
PlayerDeathHandler (event/PlayerDeathHandler.java)
- Gestion mort joueur actif
- Mise en file d'attente pour respawn
ZombieDropHandler (event/ZombieDropHandler.java)
- Drops configurables sur kill zombie
- Annulation des drops vanilla
PlayerConnectionHandler (event/PlayerConnectionHandler.java)
- Sync données à la connexion
- Nettoyage à la déconnexion
- Auto-stop si plus de joueurs
---
🔧 ADAPTATIONS FORGE 1.20.1
- NeoForge → MinecraftForge
- DeferredRegister.create(Registries.SOUND_EVENT) → DeferredRegister.create(ForgeRegistries.SOUND_EVENTS)
- PayloadRegistrar → SimpleChannel avec registerMessage()
- @EventBusSubscriber remplacé par registration manuelle
- FMLEnvironment.dist pour check client/serveur
- GuiGraphics compatible 1.20.1
- TickEvent.ServerTickEvent / TickEvent.ClientTickEvent
- Gestion NBT avec CompoundTag et ListTag
---
📁 STRUCTURE DES FICHIERS
src/main/java/com/zombiemod/
├── ZombieMod.java (main)
├── ModSounds.java
├── client/
│ ├── ClientGameData.java
│ ├── ClientWeaponCrateData.java
│ ├── ClientDoorData.java
│ ├── ClientJukeboxData.java
│ ├── ClientTickHandler.java
│ ├── PointsAnimationManager.java
│ └── ZombieHUD.java
├── command/
│ ├── GameCommands.java
│ ├── SpawnCommand.java
│ ├── RespawnCommand.java
│ ├── DoorCommand.java
│ ├── WeaponCrateCommand.java
│ └── ZombieJukeboxCommand.java
├── commands/
│ ├── ZombieMapCommand.java
│ └── ZombieHelpCommand.java
├── config/
│ ├── ZombieConfig.java
│ ├── ZombieDropsConfig.java
│ └── ZombieMobsConfig.java
├── data/
│ ├── WeaponCrateManager.java
│ └── WeaponCrateSavedData.java
├── event/
│ ├── ZombieEventHandler.java
│ ├── PlayerDeathHandler.java
│ ├── ZombieDropHandler.java
│ ├── PlayerConnectionHandler.java
│ ├── ChestInteractionHandler.java
│ ├── DoorInteractionHandler.java
│ └── JukeboxInteractionHandler.java
├── manager/
│ ├── GameManager.java
│ ├── WaveManager.java
│ ├── PointsManager.java
│ └── RespawnManager.java
├── map/
│ ├── MapManager.java
│ ├── MapConfig.java
│ ├── ZombieSpawnPoint.java
│ └── DoorConfig.java
├── network/
│ └── NetworkHandler.java
└── system/
├── WeaponCrateAnimationManager.java
├── JukeboxManager.java
└── ServerJukeboxTracker.java
---
✅ BUGS CORRIGÉS PENDANT LE BACKPORT
1. Animation bloquante caisse 1 item - Fix: hasActiveAnimation() vérifie isRoulette
2. getChunks() protected - Fix: Création de ServerJukeboxTracker
3. removePlayer() manquant - Fix: Ajout méthode dans GameManager
4. Permissions crates - Fix: Vérification OP level 2
5. Sync client déconnexion - Fix: Nettoyage propre des listes
---
Version: 1.0.0-forge
Minecraft: 1.20.1
Forge: 47.x
Backporté depuis: NeoForge 1.21.1

