diff --git a/startserver.sh b/startserver.sh new file mode 100644 index 0000000..2dbdb62 --- /dev/null +++ b/startserver.sh @@ -0,0 +1,73 @@ +#!/bin/sh +set -eu +NEOFORGE_VERSION=21.1.248 +# To use a specific Java runtime, set an environment variable named ATM10_JAVA to the full path of java.exe. +# To disable automatic restarts, set an environment variable named ATM10_RESTART to false. +# To install the pack without starting the server, set an environment variable named ATM10_INSTALL_ONLY to true. + +INSTALLER="neoforge-$NEOFORGE_VERSION-installer.jar" +NEOFORGE_URL="https://maven.neoforged.net/releases/net/neoforged/neoforge/$NEOFORGE_VERSION/neoforge-$NEOFORGE_VERSION-installer.jar" +ATM10_RESTART=false + +pause() { + printf "%s\n" "Press enter to continue..." + read ans +} + +if ! command -v "${ATM10_JAVA:-java}" >/dev/null 2>&1; then + echo "Minecraft 1.21 requires Java 21 - Java not found" + pause + exit 1 +fi + +cd "$(dirname "$0")" +if [ ! -d libraries ]; then + echo "Neoforge not installed, installing now." + if [ ! -f "$INSTALLER" ]; then + echo "No Neoforge installer found, downloading now." + if command -v wget >/dev/null 2>&1; then + echo "DEBUG: (wget) Downloading $NEOFORGE_URL" + wget -O "$INSTALLER" "$NEOFORGE_URL" + else + if command -v curl >/dev/null 2>&1; then + echo "DEBUG: (curl) Downloading $NEOFORGE_URL" + curl -o "$INSTALLER" -L "$NEOFORGE_URL" + else + echo "Neither wget or curl were found on your system. Please install one and try again" + pause + exit 1 + fi + fi + fi + + echo "Running Neoforge installer." + "${ATM10_JAVA:-java}" -jar "$INSTALLER" -installServer +fi + +if [ ! -e server.properties ]; then + printf "allow-flight=true\nmotd=All the Mods 10\nmax-tick-time=180000\nsimulation-distance=5\nview-distance=8" > server.properties +fi + +if [ "${ATM10_INSTALL_ONLY:-false}" = "true" ]; then + echo "INSTALL_ONLY: complete" + exit 0 +fi + +JAVA_VERSION=$("${ATM10_JAVA:-java}" -fullversion 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1) +if [ ! "$JAVA_VERSION" -ge 21 ]; then + echo "Minecraft 1.21 requires Java 21 - found Java $JAVA_VERSION" + pause + exit 1 +fi + +while true +do + "${ATM10_JAVA:-java}" @user_jvm_args.txt @libraries/net/neoforged/neoforge/$NEOFORGE_VERSION/unix_args.txt nogui || EXIT_CODE=$? + + if [ "${ATM10_RESTART:-true}" = "false" ]; then + exit 0 + fi + + echo "Restarting automatically in 10 seconds (press Ctrl + C to cancel)" + sleep 10 +done