From 8ae157196dead5d5fb1a12bc7f4e3fb60b829932 Mon Sep 17 00:00:00 2001 From: fithwum Date: Sat, 20 Dec 2025 07:23:07 -0800 Subject: [PATCH] EULA test --- testing-vanilla/install_script.sh | 47 ++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/testing-vanilla/install_script.sh b/testing-vanilla/install_script.sh index 5bfb2be..e6f9c80 100644 --- a/testing-vanilla/install_script.sh +++ b/testing-vanilla/install_script.sh @@ -4,6 +4,7 @@ MC_DIR=/MCserver EULA_FILE=$MC_DIR/eula.txt +EULA_MARKER=$MC_DIR/.eula_accepted VERSION_CHECK=$(curl -s "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json" | grep -Pom 1 '"url": "\K[^"]*'$MC_VERSION'.json') MC_SERVER_FILE=$(curl -s $VERSION_CHECK | jq --raw-output '.downloads.server.url') @@ -85,22 +86,54 @@ fi # echo "WARNING ! Something went wrong, please check EULA variable" # fi -if [ ! -f "$EULA_FILE" ]; then - echo "WARNING ! EULA not found, waiting for generation..." +# Test EULA +# if [ ! -f "$EULA_FILE" ]; then +# echo "WARNING ! EULA not found, waiting for generation..." +# sleep 5 +# fi + +# if [ "$ACCEPT_EULA" = "true" ]; then +# sed -i 's/eula=false/eula=true/' "$EULA_FILE" 2>/dev/null +# echo "INFO ! EULA accepted" + +# elif [ "$ACCEPT_EULA" = "false" ]; then +# sed -i 's/eula=true/eula=false/' "$EULA_FILE" 2>/dev/null +# echo "WARNING ! EULA not accepted, server will not start" +# sleep infinity + +# else +# echo "WARNING ! ACCEPT_EULA must be set to true or false" +# sleep infinity +# fi + +# Wait briefly for installer/server to generate eula.txt +if [ ! -f "$EULA_FILE" ] && [ ! -f "$EULA_MARKER" ]; then + echo "INFO ! Waiting for EULA generation..." sleep 5 fi +# If EULA already accepted once, never touch it again +if [ -f "$EULA_MARKER" ]; then + echo "INFO ! EULA previously accepted" + return 0 2>/dev/null || true +fi + +# First-time decision if [ "$ACCEPT_EULA" = "true" ]; then - sed -i 's/eula=false/eula=true/' "$EULA_FILE" 2>/dev/null - echo "INFO ! EULA accepted" + echo "INFO ! Accepting EULA (one-time)" + + sed -i 's/eula=false/eula=true/' "$EULA_FILE" 2>/dev/null \ + || echo "eula=true" > "$EULA_FILE" + + touch "$EULA_MARKER" elif [ "$ACCEPT_EULA" = "false" ]; then - sed -i 's/eula=true/eula=false/' "$EULA_FILE" 2>/dev/null - echo "WARNING ! EULA not accepted, server will not start" + echo "WARNING ! EULA not accepted on first run" + echo "WARNING ! Set ACCEPT_EULA=true to proceed" sleep infinity else - echo "WARNING ! ACCEPT_EULA must be set to true or false" + echo "ERROR ! ACCEPT_EULA must be set to true or false on first run" sleep infinity fi