#!/bin/bash # Script de changement de version Minecraft set -e if [ $# -ne 1 ]; then echo "Usage: $0 " exit 1 fi NEW_VERSION=$1 MINECRAFT_DIR="{{ minecraft_server_dir }}" TEMP_BUILD_DIR="{{ temp_build_dir }}" BACKUP_DIR="${MINECRAFT_DIR}/backup-$(date +%Y%m%d_%H%M%S)" echo "Changement vers la version ${NEW_VERSION}" # Vérification que le nouveau JAR existe if [ ! -f "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" ]; then echo "Erreur: Fichier spigot-${NEW_VERSION}.jar introuvable" exit 1 fi # Arrêt du serveur echo "Arrêt du serveur Minecraft..." systemctl stop minecraft || true sleep 10 # Sauvegarde de l'ancienne version echo "Sauvegarde de l'ancienne version..." mkdir -p "${BACKUP_DIR}" cp "${MINECRAFT_DIR}/spigot.jar" "${BACKUP_DIR}/spigot-old.jar" 2>/dev/null || true # Copie de la nouvelle version echo "Installation de la nouvelle version..." cp "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" "${MINECRAFT_DIR}/spigot.jar" chown {{ minecraft_user }}:{{ minecraft_group }} "${MINECRAFT_DIR}/spigot.jar" # Test de démarrage echo "Test de la nouvelle version..." systemctl start minecraft # Vérification que le serveur démarre correctement sleep 30 if systemctl is-active --quiet minecraft; then echo "Mise à jour réussie vers la version ${NEW_VERSION}" echo "Ancienne version sauvegardée dans: ${BACKUP_DIR}" else echo "Erreur: La nouvelle version ne démarre pas correctement" echo "Restauration de l'ancienne version..." systemctl stop minecraft || true cp "${BACKUP_DIR}/spigot-old.jar" "${MINECRAFT_DIR}/spigot.jar" 2>/dev/null || true systemctl start minecraft exit 1 fi