diff --git a/server/README.md b/server/README.md index f6ba757..0be1214 100644 --- a/server/README.md +++ b/server/README.md @@ -12,11 +12,20 @@ Serveur **Minecraft 26.3 + Fabric Loader 0.20.0**, pré-configuré en « défaut ```bash cd server -echo "eula=true" > eula.txt -./start.sh +echo "eula=true" > eula.txt # déjà présent (eula=false) : à passer à true +./start.sh # installe le runtime automatiquement si absent, puis démarre ``` -(Sous Windows : `start.bat`.) +(Sous Windows : `start.bat`, même comportement.) + +Le runtime Fabric (jars vanilla/Fabric, `libraries/`, `versions/`, `.fabric/`) n'est **pas +versionné** (voir `.gitignore`) : il est (re)généré par `setup.sh`, appelé automatiquement par +`start.sh` s'il manque, ou manuellement : + +```bash +cd server +nix-shell .. --run 'bash server/setup.sh' # ou : ./setup.sh (avec Java dans le PATH) +``` Au premier démarrage, le serveur génère `world/`, `config/`, `logs/`, etc. Pour régénérer le monde (ex. changer de `level-type`), stoppe le serveur et supprime `world/`. @@ -25,11 +34,12 @@ Pour régénérer le monde (ex. changer de `level-type`), stoppe le serveur et s | Fichier | Rôle | | --- | --- | -| `fabric-server-launch.jar` | Lanceur Fabric (généré par fabric-installer 1.1.2) | -| `server.jar` | Serveur Minecraft 26.3 vanilla (téléchargé par l'installeur) | -| `fabric-installer.jar` | Installeur (pour réinstaller/réparer) | +| `setup.sh` / `setup.bat` | Installe/repare le runtime Fabric (télécharge vanilla + lanceur Fabric) | +| `fabric-server-launch.jar` | Lanceur Fabric (généré par fabric-installer 1.1.2 — non versionné) | +| `server.jar` | Serveur Minecraft 26.3 vanilla (téléchargé par l'installeur — non versionné) | +| `fabric-installer.jar` | Installeur (pour réinstaller/réparer — non versionné) | | `mods/` | 46 mods serveur (copie physique) — voir `mods/SOURCE.md` | -| `config/` | Configs générées au premier lancement (+ customs à déposer ici) | +| `config/` | Configs générées au premier lancement (non versionnées) | | `server.properties` | Config plug-and-play (survie, normal, 20 joueurs) | | `eula.txt` | Passer à `eula=true` avant de lancer | | `start.sh` / `start.bat` | Scripts de lancement (4 Go RAM, `nogui`) | diff --git a/server/setup.bat b/server/setup.bat new file mode 100644 index 0000000..542e567 --- /dev/null +++ b/server/setup.bat @@ -0,0 +1,20 @@ +@echo off +REM SurviePote — installe/repare le runtime serveur Fabric (MC 26.3 / Loader 0.20.0) +REM Les jars vanilla/Fabric, libraries/ et versions/ ne sont PAS versionnes (.gitignore). +setlocal +cd /d "%~dp0" +set MC_VERSION=26.3 +set LOADER_VERSION=0.20.0 +set INSTALLER_VERSION=1.1.2 + +if exist fabric-server-launch.jar ( + echo Runtime deja installe ^(fabric-server-launch.jar present^) — rien a faire. + exit /b 0 +) +if not exist fabric-installer.jar ( + echo == Telechargement de fabric-installer %INSTALLER_VERSION% == + curl -fSL -o fabric-installer.jar "https://maven.fabricmc.net/net/fabricmc/fabric-installer/%INSTALLER_VERSION%/fabric-installer-%INSTALLER_VERSION%.jar" +) +echo == Installation du serveur Fabric ^(MC %MC_VERSION% / Loader %LOADER_VERSION%^) == +java -jar fabric-installer.jar server -dir . -mcversion %MC_VERSION% -loader %LOADER_VERSION% -downloadMinecraft +echo OK — lance le serveur avec start.bat diff --git a/server/setup.sh b/server/setup.sh new file mode 100755 index 0000000..91fb7a9 --- /dev/null +++ b/server/setup.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# SurviePote — installe/repare le runtime serveur Fabric (MC 26.3 / Loader 0.20.0). +# Les jars vanilla/Fabric, libraries/ et versions/ ne sont PAS versionnes (voir .gitignore) : +# ce script les (re)genere dans le dossier courant. A lancer une fois sur le serveur, avant ./start.sh. +# Requiert Java (idealement Java 25, ex. via nix-shell à la racine du repo). +set -e +cd "$(dirname "$0")" + +MC_VERSION=26.3 +LOADER_VERSION=0.20.0 +INSTALLER_VERSION=1.1.2 +INSTALLER_JAR=fabric-installer.jar +LAUNCH_JAR=fabric-server-launch.jar + +if [ -f "$LAUNCH_JAR" ]; then + echo "Runtime deja installe ($LAUNCH_JAR present) — rien a faire." + exit 0 +fi + +command -v java >/dev/null 2>&1 || { + echo "ERREUR: java introuvable." + echo "Depuis la racine du repo : nix-shell . --run 'bash server/setup.sh'" + exit 1 +} + +if [ ! -f "$INSTALLER_JAR" ]; then + echo "== Telechargement de fabric-installer $INSTALLER_VERSION ==" + curl -fSL -o "$INSTALLER_JAR" \ + "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${INSTALLER_VERSION}/fabric-installer-${INSTALLER_VERSION}.jar" +fi + +echo "== Installation du serveur Fabric (MC $MC_VERSION / Loader $LOADER_VERSION) ==" +java -jar "$INSTALLER_JAR" server \ + -dir . \ + -mcversion "$MC_VERSION" \ + -loader "$LOADER_VERSION" \ + -downloadMinecraft + +echo +echo "OK — runtime installe. Lance le serveur avec : ./start.sh" diff --git a/server/start.bat b/server/start.bat index 3c4a8fe..20cb9b3 100644 --- a/server/start.bat +++ b/server/start.bat @@ -1,6 +1,10 @@ @echo off REM SurviePote — lancement serveur Fabric MC 26.3 / Loader 0.20.0 cd /d "%~dp0" +if not exist fabric-server-launch.jar if not exist server.jar ( + echo Runtime serveur absent -^> installation automatique... + call setup.bat +) if exist fabric-server-launch.jar ( set JAR=fabric-server-launch.jar ) else if exist server.jar ( diff --git a/server/start.sh b/server/start.sh index 77eb3ad..993cf6a 100755 --- a/server/start.sh +++ b/server/start.sh @@ -3,6 +3,19 @@ # Recommandé : nix-shell (voir ../shell.nix + ../.envrc) pour avoir Java 25 + Node 22. cd "$(dirname "$0")" +# MC 26.3 exige Java 25 (class file version 69.0). +if ! java -version 2>&1 | grep -q 'version "25'; then + echo "ERREUR: Java 25 requis (java actuel : $(java -version 2>&1 | head -1))." + echo "Lance via nix-shell : nix-shell .. --run './start.sh' (ou direnv allow à la racine)." + exit 1 +fi + +# Runtime absent (clone neuf) -> installation automatique. +if [ ! -f fabric-server-launch.jar ] && [ ! -f server.jar ]; then + echo "Runtime serveur absent -> installation automatique (setup.sh)..." + bash setup.sh +fi + if [ -f fabric-server-launch.jar ]; then JAR=fabric-server-launch.jar elif [ -f server.jar ]; then @@ -12,11 +25,4 @@ else exit 1 fi -# MC 26.3 exige Java 25 (class file version 69.0). -if ! java -version 2>&1 | grep -q 'version "25'; then - echo "ERREUR: Java 25 requis (java actuel : $(java -version 2>&1 | head -1))." - echo "Lance via nix-shell : nix-shell .. --run './start.sh' (ou direnv allow à la racine)." - exit 1 -fi - java -Xms4G -Xmx4G -jar "$JAR" nogui