diff --git a/scripts/init b/scripts/init index 92186cb..fd55c35 100644 --- a/scripts/init +++ b/scripts/init @@ -9,6 +9,9 @@ JAVA_VERSION=${JAVA_VERSION:-"temurin@21"} JAVA_HOME=/data/java/${JAVA_VERSION} JAR=${JAR:-"server.jar"} +XMS=${XMS:-2G} +XMX=${XMX:-4G} + MEM=${MEMORY:-2G} ADD_ARGS=${ADD_ARGS:-""} @@ -70,6 +73,14 @@ javaCheck() { JAVA="java" } +newForge() { + if [[ "$(printf '%s\n' "1.17.1" "$MC_VERSION" | sort -V | head -n1)" = "1.17.1" ]]; then + NEW_FORGE=true + else + NEW_FORGE=false + fi +} + # Vanilla getVanilla() { echo "Not yet implemented" @@ -147,21 +158,26 @@ getForge() { if [[ -n "$DL_URL" ]]; then echo "$DL_URL" rm -rf server.jar - curl -o forge-install.jar ${DL_URL} echo "$JAVA -jar forge-install.jar --installServer" $JAVA -jar forge-install.jar --installServer - ln -s forge-${VER_MINECRAFT}-${VER_LOADER}.jar server.jar + # if greater or equalt to 1.17.1 + if [[ "$(printf '%s\n' "1.17.1" "$MC_VERSION" | sort -V | head -n1)" = "1.17.1" ]]; then + NEW_FORGE=true + rm -f forge-install.jar + rm -f forge-install.jar.log + + # less than 1.71.1 + else + NEW_FORGE=false + rm -f forge-install.jar + rm -f forge-install.jar.log + ln -s forge-"${VER_MINECRAFT}"-"${VER_LOADER}".jar server.jar + fi touch server.properties - rm -f user_jvm_args.txt - rm -f forge-install.jar - rm -f forge-install.jar.log - rm -f README.txt - rm -f run.bat - rm -f run.sh else echo "No Valid Download URL" fi @@ -208,8 +224,10 @@ getNeoForge() { # Server route choice serverSelect() { mkdir -p /data/server - cd /data/server - if [[ ! -f server.jar ]]; then + cd /data/server || exit + if [[ -f "server.jar" ]] || [[ -f "run.sh" ]]; then + echo "Found what appears to be a server, sending it" + else case $MC_LOADER in vanilla) getVanilla @@ -233,10 +251,11 @@ serverSelect() { esac fi } + # Build out java command buildCommand() { - JAVA_ARGS="-Xms${MEM} -Xmx${MEM}" - if [[ ! -z ${ADD_ARGS+x} ]]; then + JAVA_ARGS="-Xms${XMS} -Xmx${XMX}" + if [[ -n $ADD_ARGS ]]; then RUN_STRING="${ADD_ARGS} ${JAVA_ARGS} -jar ${JAR} nogui" else RUN_STRING="${JAVA_ARGS} -jar ${JAR} nogui" @@ -260,8 +279,9 @@ MC_LOADER_VERSION=$MC_LOADER_VERSION JAVA_VERSION=$JAVA_VERSION JAR=$JAR -MEMORY=$MEM -ADD_ARGS=$ADD_ARGS +XMS=$XMS +XMX=$XMX +ADD_ARGS=${ADD_ARGS:-"NONE"} PUID=$PUID PGID=$PGID @@ -270,10 +290,10 @@ EOF ## ----------------- SEND IT ----------------- ## while true; do - cd /data/server + cd /data/server || exit if [[ ! -f "server.properties" ]]; then touch "server.properties"; fi - if [[ -f $JAR ]]; then + if [[ -f $JAR || -f "run.sh" ]]; then echo -e "|_______________________________________________________|" echo -e "|##----------------- Server Starting -----------------##|" echo -e "|#| Minecraft Version: $MC_VERSION" @@ -283,22 +303,30 @@ while true; do echo -e "|#| " echo -e "|#| Java Version: $JAVA_VERSION" echo -e "|#| Jar: $JAR" - echo -e "|#| Memory Allocated: $MEM" - echo -e "|#| Additional Args: $ADD_ARGS" + echo -e "|#| Memory Allocated: " + echo -e "|#| Xms: $XMS" + echo -e "|#| Xmx: $XMX" + echo -e "|#| Additional Args: ${ADD_ARGS:-"NONE"}" echo -e "|#| " echo -e "|#| Running as:" - echo -e "|#| User: $PUID" - echo -e "|#| Group: $PGID" + echo -e "|#| User: $PUID" + echo -e "|#| Group: $PGID" echo -e "|#| " - echo -e "|#| Run Command:" - echo -e "|#| java $RUN_STRING" + if [[ ! $NEW_FORGE ]]; then + echo -e "|#| Run Command:" + echo -e "|#| java $RUN_STRING" + fi echo -e "|##---------------------------------------------------##|" echo -e "|-------------------------------------------------------|" echo -e " " serverInfoWrite + newForge if [[ "$MC_LOADER" == "neoforge" ]]; then - exec java @user_jvm_args.txt @libraries/net/neoforged/neoforge/$MC_LOADER_VERSION/unix_args.txt "$@" + exec java @user_jvm_args.txt @libraries/net/neoforged/neoforge/"$MC_LOADER_VERSION"/unix_args.txt "$@" + elif [[ "$MC_LOADER" == "forge" ]] && [[ $NEW_FORGE == "true" ]]; then + exec java @user_jvm_args.txt @libraries/net/minecraftforge/forge/"$MC_VERSION"-"$MC_LOADER_VERSION"/unix_args.txt "$@" else + echo "java $RUN_STRING" exec java $RUN_STRING fi else