From feca6cfa8314a15f103f4d90560185c88861f1f1 Mon Sep 17 00:00:00 2001 From: Jeremy McClure Date: Tue, 22 Jul 2025 12:32:13 -0400 Subject: [PATCH] Fix forge and implement NeoForge --- scripts/init | 77 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 6 deletions(-) diff --git a/scripts/init b/scripts/init index 6f7e695..f703942 100644 --- a/scripts/init +++ b/scripts/init @@ -70,6 +70,11 @@ javaCheck() { JAVA="java" } +# Vanilla +getVanilla() { + echo "Not yet implemented" +} + # Paper Server getPaper() { SERVER_TYPE="Paper Minecraft" @@ -123,15 +128,32 @@ getFabric() { # Forge Server getForge() { SERVER_TYPE="Forge Server" - LATEST_BUILD=$(curl -s https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json | jq -r ".promos[\"${MC_VERSION}-latest\"]") - DL_BUILD=${MC_VERSION}-${LATEST_BUILD} - DL_URL=https://maven.minecraftforge.net/net/minecraftforge/forge/$DL_BUILD/forge-$DL_BUILD-installer.jar - if [ "$LATEST_BUILD" != "null" ]; then + + if [[ -n "$MC_VERSION" ]]; then + VER_MINECRAFT=$MC_VERSION + if [[ -n "$MC_LOADER_VERSION" ]]; then + VER_LOADER=$MC_LOADER_VERSION + DL_URL=https://maven.minecraftforge.net/net/minecraftforge/forge/${VER_MINECRAFT}-${VER_LOADER}/forge-${VER_MINECRAFT}-${VER_LOADER}-installer.jar + else + LATEST_BUILD=$(curl -s https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json | jq -r ".promos[\"${VER_MINECRAFT}-latest\"]") + VER_LOADER=$LATEST_BUILD + DL_URL=https://maven.minecraftforge.net/net/minecraftforge/forge/${VER_MINECRAFT}-${VER_LOADER}/forge-${VER_MINECRAFT}-${VER_LOADER}-installer.jar + fi + else + echo "Minecraft version not set" + exit 1 + fi + + 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-${MC_VERSION}-${LATEST_BUILD}-shim.jar server.jar + + ln -s forge-${VER_MINECRAFT}-${VER_LOADER}.jar server.jar + touch server.properties rm -f user_jvm_args.txt @@ -141,10 +163,50 @@ getForge() { rm -f run.bat rm -f run.sh else - echo "TODO ERROR TEXT" + echo "No Valid Download URL" fi } +# Neoforge +getNeoForge() { + SERVER_TYPE="NeoForge Server" + + if [[ -n "$MC_VERSION" ]]; then + VER_MINECRAFT=$MC_VERSION + if [[ -n "$MC_LOADER_VERSION" ]]; then + VER_LOADER=$MC_LOADER_VERSION + DL_URL=https://maven.neoforged.net/releases/net/neoforged/neoforge/$VER_LOADER/neoforge-$VER_LOADER-installer.jar + else + echo "Minecraft version not set" + exit 1 + fi + fi + + if [[ -n "$DL_URL" ]]; then + echo "$DL_URL" + rm -rf server.jar + + curl -o neoforge-$VER_LOADER-installer.jar ${DL_URL} + $JAVA -jar neoforge-$VER_LOADER-installer.jar --installServer --server.jar + + mv server.jar neoforge-$VER_LOADER.jar + ln -s neoforge-$VER_LOADER.jar server.jar + + touch server.properties + + rm -f user_jvm_args.txt + rm -f neoforge-$VER_LOADER-installer.jar + rm -f neoforge-$VER_LOADER-installer.jar.log + rm -f README.txt + rm -f run.bat + rm -f run.sh + + else + echo "No Valid Download URL" + fi + +} + # Server route choice serverSelect() { mkdir -p /data/server @@ -163,6 +225,9 @@ serverSelect() { forge) getForge ;; + neoforge) + getNeoForge + ;; *) echo "Server of type ${MC_LOADER} is not recognized." crash