# 🎮 Serveur NationsGlory 1.6.4 - Docker

Serveur Minecraft 1.6.4 moddé avec MCPC+ (Forge + Bukkit) déployable via Docker.  
**Tout inclus**: mcpc.jar, 21 mods Forge, 6 plugins Bukkit, configurations.

[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)
[![Minecraft](https://img.shields.io/badge/Minecraft-1.6.4-green.svg)](https://minecraft.net/)
[![Forge](https://img.shields.io/badge/Forge-9.11.1.965-orange.svg)](https://files.minecraftforge.net/)

> 📌 **Note**: Pour un déploiement complet avec l'interface web d'administration, consultez le [README principal](../README.md) et utilisez le script `../deploy.sh`.

## 📖 Documentation

- **[⚡ Démarrage Rapide](QUICKSTART.md)** - Installation en 3 minutes
- **[🔧 Configuration Avancée](CONFIGURATION.md)** - RCON, optimisation, sauvegardes
- **[🚀 Déploiement Production](DEPLOYMENT.md)** - Guide de déploiement complet

---

## 🚀 Installation rapide

### Déploiement avec interface web (Recommandé)

Depuis le dossier parent :
```bash
cd ..
./deploy.sh
```

### Déploiement standalone du serveur Minecraft

```bash
# 1. Configuration
cp .env.example .env
nano .env  # Configurez RCON_PASSWORD

# 2. Démarrage
docker-compose up -d
```

**Serveur prêt en 2 minutes!** 🎉

### ⚙️ Configuration post-installation

```bash
# Donner droits admin
docker exec mc-nationsglory rcon-cli "op NomAdmin"
```

---

## 📋 Prérequis

- **Docker** et **Docker Compose** installés
- **Port 25565** disponible  
- **4 GB RAM** minimum
- **Git** pour cloner le dépôt (optionnel)

---

## 🎮 Commandes de gestion

### Démarrer
```bash
docker-compose up -d
```

### Voir les logs (sans spam)
```bash
docker logs -f mc-nationsglory 2>&1 | sed -u '/^>/d'
```

### Arrêter
```bash
docker-compose down
```

### Redémarrer
```bash
docker-compose restart
```

### Console interactive (RCON)

⚠️ **Note importante**: RCON nécessite une configuration manuelle avec `network_mode: host`.

#### Configuration du mot de passe RCON

Le mot de passe RCON doit être défini **avant le premier démarrage**:

```bash
# 1. Arrêter le serveur
docker-compose down

# 2. Modifier server.properties
sed -i 's/^rcon.password=.*/rcon.password=VotreMotDePasse/' server.properties

# 3. Vérifier les paramètres RCON
grep -E "enable-rcon|rcon" server.properties

# 4. Redémarrer
docker-compose up -d
```

#### Utiliser RCON

```bash
# Avec l'IP du serveur (network_mode: host)
docker exec mc-nationsglory rcon-cli --host 192.168.1.252 --port 25575 --password VotreMotDePasse "list"

# Mode interactif
docker exec -it mc-nationsglory rcon-cli --host 192.168.1.252 --port 25575 --password VotreMotDePasse

# Exemples de commandes
docker exec mc-nationsglory rcon-cli --host 192.168.1.252 --port 25575 --password VotreMotDePasse "op JoueurAdmin"
docker exec mc-nationsglory rcon-cli --host 192.168.1.252 --port 25575 --password VotreMotDePasse "save-all"
```

**Alternative simple (sans RCON)**: Utilisez `docker logs` pour surveiller le serveur.

---

## 📁 Structure du projet

```
nationsglory-server/
├── docker-compose.yml      # Configuration Docker
├── .gitignore              # Fichiers ignorés
├── .env.example            # Template configuration
│
├── mcpc.jar                # Serveur MCPC+ (INCLUS - 29 MB)
│
├── mods/                   # 21 mods Forge (20 MB)
│   ├── aquatweaksng.jar
│   ├── chisel-1.0.jar
│   ├── customnpc-1.0.jar
│   ├── flansmods-4.1.1.jar
│   ├── westerosblocksng.jar
│   └── ... (et 16 autres)
│
├── plugins/                # 6 plugins Bukkit (3.3 MB)
│   ├── Essentials.jar      # Commandes essentielles
│   ├── EssentialsChat.jar
│   ├── EssentialsSpawn.jar
│   ├── worldedit-5.6.jar   # Édition terrain
│   └── ...
│
├── config/                 # Configurations (488 KB)
│   ├── forge.cfg
│   ├── worldedit/
│   └── ... (40+ fichiers)
│
├── world/                  # Monde Minecraft (NON versionné)
└── logs/                   # Logs serveur (NON versionné)
```

**Taille totale du dépôt Git: ~53 MB**

---

## ⚙️ Configuration

### Paramètres serveur (automatiques)

- **Version**: Minecraft 1.6.4  
- **Port**: 25565
- **Mode**: Créatif (gamemode=1)
- **Type monde**: FLAT
- **RAM**: 2 GB (configurable)
- **Authentification**: Désactivée (comptes crack acceptés)
- **PvP**: Désactivé
- **Vol**: Autorisé

### Modifier la mémoire

Éditer `docker-compose.yml`:
```yaml
environment:
  MEMORY: "3G"          # RAM max
  INIT_MEMORY: "1500M"  # RAM initiale
```

### Changer le port

Éditer `docker-compose.yml`:
```yaml
ports:
  - "25566:25565"  # Utilise le port 25566
```

---

## 🎯 Plugins installés

### WorldEdit 5.6 (Édition terrain)
```
//wand              # Outil de sélection
//set <block>       # Remplir
//replace <a> <b>   # Remplacer
//copy              # Copier
//paste             # Coller
//undo              # Annuler
```

### Essentials 2.13.1 (Gestion serveur)
```
/tp <joueur>                    # Téléporter
/give <joueur> <item> [qté]     # Donner items
/gamemode <mode>                # Changer mode
/fly                            # Vol
/heal                           # Soigner
/time set <temps>               # Temps
/weather <clear/rain>           # Météo
```

---

## 🔐 Gestion des joueurs

### Donner les droits admin (OP)
```bash
# Via RCON
docker exec mc-nationsglory rcon-cli --password <mdp> "op <pseudo>"

# Ou via console interactive
docker exec -it mc-nationsglory rcon-cli --password <mdp>
> op <pseudo>
```

### Retirer les droits
```bash
docker exec mc-nationsglory rcon-cli --password <mdp> "deop <pseudo>"
```

### Bannir/débannir
```bash
# Bannir
docker exec mc-nationsglory rcon-cli --password <mdp> "ban <pseudo>"

# Débannir
docker exec mc-nationsglory rcon-cli --password <mdp> "pardon <pseudo>"
```

---

## 🛠️ Maintenance

### Sauvegarder le monde
```bash
docker exec mc-nationsglory rcon-cli --password <mdp> "save-all"
tar -czf backup-$(date +%Y%m%d).tar.gz world/
```

### Restaurer une sauvegarde
```bash
docker-compose down
rm -rf world/
tar -xzf backup-YYYYMMDD.tar.gz
docker-compose up -d
```

### Réinitialiser le monde
```bash
docker-compose down
rm -rf world/
docker-compose up -d  # Un nouveau monde FLAT sera créé
```

### Nettoyer les logs
```bash
docker exec mc-nationsglory sh -c "rm -f /data/*.log /data/*.lck"
docker-compose restart
```

---

## 📦 Mods inclus (21 mods)

- **Chisel** - Blocs décoratifs variés
- **WesterosBlocks** - Blocs Game of Thrones
- **BiblioCraft** - Meubles et décorations
- **CustomNPCs** - PNJs personnalisables
- **Flan's Mod** - Véhicules et armes
- **UniversalElectricity** - Système électrique
- **Netherrocks** - Nouveaux minerais
- **WeaponMod** - Armes modernes
- **TLSpecialArmor** - Armures spéciales
- **AquaTweaks** - Modifications aquatiques
- **Chisel** - Blocs architecturaux
- **Parachute Mod** - Parachutes
- **Dragons Radio Mod** - Radio
- **Get All The Seeds** - Graines
- **MapWriter** - Minimap
- **Melons Spawn** - Pastèques
- **NationsGUI** - Interface NationsGlory
- **NGContent** - Contenu NationsGlory
- **NGElectricity** - Électricité NationsGlory
- **Pam's Harvestcraft** - Agriculture
- **Et plus...**

---

## 🔄 Mise à jour et déploiement

### Sur un nouveau serveur
```bash
git clone <repo>
cd nationsglory-server
docker-compose up -d
```

### Mettre à jour le serveur
```bash
git pull
docker-compose restart
```

### Ajouter un mod
```bash
# 1. Copier le mod
cp nouveau-mod.jar mods/

# 2. Commiter
git add mods/nouveau-mod.jar
git commit -m "Add: nouveau-mod"
git push

# 3. Sur le serveur
git pull
docker-compose restart
```

---

## 🐛 Dépannage

### Le serveur ne démarre pas
```bash
# Vérifier les logs
docker logs mc-nationsglory

# Vérifier le conteneur
docker ps -a

# Recréer le conteneur
docker-compose down
docker-compose up -d
```

### Impossible de se connecter
```bash
# Vérifier le port
docker ps | grep 25565

# Vérifier que le serveur écoute
nc -zv localhost 25565
```

### Lag/performances
```bash
# Augmenter la RAM dans docker-compose.yml
MEMORY: "4G"
INIT_MEMORY: "2G"

# Redémarrer
docker-compose down
docker-compose up -d
```

### RCON ne fonctionne pas
```bash
# Récupérer le bon mot de passe
docker exec mc-nationsglory cat /data/server.properties | grep rcon.password

# Tester
docker exec mc-nationsglory rcon-cli --password <mdp> "list"
```

---

## 📊 Informations techniques

- **Version Minecraft**: 1.6.4
- **Serveur**: MCPC+ 1.6.4-R2.1-forge965-B251
- **Forge**: 9.11.1.965
- **Java**: 7 (via conteneur Docker)
- **Image Docker**: itzg/minecraft-server:java7
- **Mods**: 21 (Forge)
- **Plugins**: 6 (Bukkit)
- **Taille dépôt**: ~53 MB

---

## 📖 Documentation complémentaire

- [DEPLOY_README.md](DEPLOY_README.md) - Guide de déploiement détaillé
- [DEPLOYMENT_CHECKLIST.md](DEPLOYMENT_CHECKLIST.md) - Checklist de déploiement
- `.env.example` - Variables d'environnement disponibles

---

## ⚠️ Notes importantes

- ✅ **Comptes crack acceptés** (online-mode=false)
- ✅ **Docker obligatoire** (Java 7 requis)
- ✅ **Tout inclus** (mcpc.jar, mods, plugins)
- ⚠️ Les warnings "anonymous item" sont normaux (compatibilité 1.7)
- ⚠️ Le monde est en **FLAT** par défaut (idéal pour constructions)
- ⚠️ `world/` n'est PAS versionné (données spécifiques au serveur)

---

**Serveur prêt à déployer en 3 commandes** 🚀
