# 🎮 Serveur NationsGlory MCPC+ 1.6.4

Serveur Minecraft 1.6.4 avec support mods (Forge) et plugins (Bukkit) via MCPC+.

## � Navigation rapide

- **🐳 [Déploiement Docker](DOCKER.md)** - Utilisation avec Docker Compose
- **🚀 [Déploiement Production](DEPLOYMENT.md)** - Migration vers /srv/minecraft
- **⚡ [Démarrage rapide](QUICKSTART.md)** - Commandes essentielles
- **🔧 [Notes techniques](TECHNICAL_NOTES.md)** - Configuration détaillée
- **📦 [Installation](INSTALLATION.md)** - Guide d'installation

## 🐳 Déploiement Docker (recommandé)

### Option 1 : Migration locale vers /srv/minecraft
```bash
sudo ./migrate-to-srv.sh
cd /srv/minecraft/moddé
make start
```

### Option 2 : Développement local
```bash
cd server-final
cp ../docker-compose.yml .
cp ../.env.example .env
make start
```

Voir [DOCKER.md](DOCKER.md) pour la documentation complète Docker.

## 📋 Prérequis

### Sans Docker (méthode originale)
- **Port 25565** disponible
- Au moins **2 GB de RAM** libre

### Avec Docker (recommandé)
- **Docker** installé sur votre système
- **Docker Compose** installé
- Au moins **2 GB de RAM** libre

## 🚀 Démarrage rapide

### Méthode Docker (recommandée)
```bash
# Avec Make
make start
make logs

# Ou avec Docker Compose
docker-compose up -d
docker-compose logs -f
```

### Méthode originale (Docker manuel)
```bash
cd server-final
./start-docker.sh
```

Le serveur démarre dans un conteneur Docker avec Java 7, requis pour MCPC+ 1.6.4.

## 📁 Structure du serveur

```
server-final/
├── mcpc.jar              # Serveur MCPC+ 1.6.4-R2.1-forge965-B251
├── start-docker.sh       # Script de démarrage Docker
├── server.properties     # Configuration serveur
├── mods/                 # Mods Forge
│   ├── chisel-1.0.jar
│   ├── ngbibliocraft-1.5.5.jar
│   ├── westerosblocksng.jar
│   └── ... (21 mods chargés)
├── plugins/              # Plugins Bukkit
│   ├── WorldEdit.jar     # Édition de terrain
│   └── Essentials.jar    # Commandes essentielles
├── config/               # Configurations mods
├── libraries/            # Dépendances Maven
└── world/                # Monde Minecraft (FLAT)
```

## ⚙️ Configuration

### Serveur (server.properties)

- **Port** : `25565`
- **Mode** : Créatif (`gamemode=1`)
- **Type de monde** : FLAT (`level-type=FLAT`)
- **Authentification** : Désactivée (`online-mode=false`) - comptes crack acceptés
- **PvP** : Désactivé (`pvp=false`)
- **Monstres** : Désactivés (`spawn-monsters=false`)
- **Vol** : Autorisé (`allow-flight=true`)

### Ressources Docker

- **RAM Max** : 2 GB (`-Xmx2G`)
- **RAM Init** : 1 GB (`-Xms1G`)
- **GC** : G1GC (optimisé)
- **File descriptors** : 65535 (ulimit configuré)

## 🎯 Plugins installés

### WorldEdit
Édition de terrain avancée pour constructions massives.

**Commandes principales** :
- `//wand` - Obtenir l'outil de sélection
- `//set <block>` - Remplir la sélection
- `//replace <from> <to>` - Remplacer des blocs
- `//copy` - Copier la sélection
- `//paste` - Coller
- `//undo` - Annuler
- `//redo` - Refaire

### Essentials
Commandes de gestion serveur essentielles.

**Commandes principales** :
- `/tp <joueur>` - Téléportation
- `/give <joueur> <item> [qté]` - Donner items
- `/gamemode <mode>` - Changer mode de jeu
- `/fly` - Activer/désactiver vol
- `/heal` - Soigner
- `/feed` - Nourrir
- `/time <set/add> <temps>` - Contrôle du temps
- `/weather <clear/rain/thunder>` - Météo

## 🔐 Gestion des permissions

### Opérateurs (OP)

Donner tous les droits à un joueur :
```
op <pseudo>
```

Retirer les droits :
```
deop <pseudo>
```

### Fichiers de permissions

- `ops.txt` - Liste des opérateurs
- `white-list.txt` - Liste blanche (si activée)
- `banned-players.txt` - Joueurs bannis
- `banned-ips.txt` - IPs bannies

## 🛠️ Commandes serveur

### Console serveur

Une fois démarré, vous pouvez taper des commandes :

```
help                    # Liste des commandes
op <pseudo>             # Donner OP
stop                    # Arrêter le serveur
save-all                # Sauvegarder le monde
list                    # Liste des joueurs
ban <pseudo>            # Bannir un joueur
pardon <pseudo>         # Débannir
```

### Redémarrage

1. Dans la console : `stop`
2. Attendre l'arrêt complet
3. Relancer : `./start-docker.sh`

## 🔧 Maintenance

### Sauvegardes

**Sauvegarder le monde** :
```bash
cd server-final
tar -czf backup-$(date +%Y%m%d-%H%M).tar.gz world/ DIM1/ DIM-1/
```

**Restaurer** :
```bash
rm -rf world/ DIM1/ DIM-1/
tar -xzf backup-YYYYMMDD-HHMM.tar.gz
```

### Réinitialiser le monde

⚠️ **Attention** : Supprime toutes les constructions !

```bash
cd server-final
rm -rf world/ DIM1/ DIM-1/
# Au prochain démarrage, un nouveau monde FLAT sera généré
```

### Nettoyer les logs

```bash
cd server-final
rm -f *.log *.log.* *.lck
rm -rf crash-reports/*
```

## 📦 Mods installés

**21 mods actifs** :
- Chisel - Blocs décoratifs
- WesterosBlocks - Blocs Game of Thrones
- BiblioCraft - Meubles et décorations
- Autoutils - Outils automatiques
- CustomNPCs - PNJs personnalisés
- Flan's Mod - Véhicules et armes
- Netherrocks - Minerais du Nether
- TLSpecialArmor - Armures spéciales
- UniversalElectricity - Électricité
- WeaponMod - Armes
- AquaTweaks - Modifications aquatiques
- Et plus...

## 🐛 Dépannage

### Le serveur ne démarre pas

1. Vérifier que Docker est lancé : `docker ps`
2. Vérifier le port 25565 : `netstat -tuln | grep 25565`
3. Vérifier les logs : `cat server-final/server.log`

### Erreur "Permission denied"

Corriger les permissions :
```bash
sudo chown -R $USER:$USER server-final/
```

### Connexion refusée

1. Vérifier que `online-mode=false` dans `server.properties`
2. Le serveur accepte les comptes crack

### Lag/performances

1. Augmenter la RAM dans `start-docker.sh` (changer `-Xmx2G` en `-Xmx4G`)
2. Réduire `view-distance` dans `server.properties`
3. Limiter les entités : `/killall [type]`

## 🌍 Type de monde

Le serveur génère un **monde plat** (`level-type=FLAT`) idéal pour :
- Constructions massives
- Villes et nations
- PvP arènes
- Projets créatifs

Pour changer le type de monde :
1. `stop` dans la console
2. Modifier `level-type` dans `server.properties` (`DEFAULT`, `FLAT`, `LARGEBIOMES`)
3. Supprimer `world/` pour régénérer
4. Redémarrer

## 📞 Support

### Logs importants

- `server.log` - Log principal
- `ForgeModLoader-server-0.log` - Logs Forge/mods
- `crash-reports/` - Rapports de crash

### Vérifier les mods chargés

Au démarrage, chercher dans les logs :
```
[INFO] Forge Mod Loader has successfully loaded 21 mods
```

### Commandes de debug

```
/forge tps           # Performance serveur
/gc                  # Garbage collector
/mem                 # Utilisation mémoire
```

## 📝 Notes importantes

- ✅ Le serveur fonctionne avec **Java 7** via Docker
- ✅ Compatible avec les **comptes crack** (online-mode=false)
- ✅ **21 mods** chargés automatiquement
- ✅ **Plugins Bukkit** compatibles 1.6.4
- ⚠️ Les warnings "anonymous item" sont normaux (compatibilité 1.7)
- ⚠️ Certains items peuvent manquer si le monde a été généré avec d'autres mods

## 🔄 Mises à jour

### Ajouter un mod

1. Placer le `.jar` dans `server-final/mods/`
2. Redémarrer le serveur
3. Vérifier les logs pour les erreurs

### Ajouter un plugin

1. Placer le `.jar` dans `server-final/plugins/`
2. Redémarrer le serveur
3. Le plugin se charge automatiquement

---

**Version** : MCPC+ 1.6.4-R2.1-forge965-B251  
**Forge** : 9.11.1.965  
**Minecraft** : 1.6.4  
**Java** : 7 (via Docker)
