diff options
Diffstat (limited to 'minecraft/mclauncher')
-rwxr-xr-x | minecraft/mclauncher | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/minecraft/mclauncher b/minecraft/mclauncher index 98a2610..f837dce 100755 --- a/minecraft/mclauncher +++ b/minecraft/mclauncher @@ -207,7 +207,12 @@ download_step() { install_step_forge() { log "installing forge server" jar_name="$(get_key "JAR_NAME")" - java -jar "$SERVER_DIR/$jar_name" --installServer + + # check if library dir exists (if not... install) + library="$SERVER_DIR/libraries/net/minecraftforge/forge/$(get_key MC_VERSION)-$(get_key FORGE_VERSION)" + if [ ! -d "$library" ]; then + java -jar "$SERVER_DIR/$jar_name" --installServer + fi binary_step_forge if [ "$MCLAUNCHER_BINARY" = "" ]; then @@ -248,12 +253,24 @@ execute_step_default() { } execute_step_forge() { + + # save jvm args + echo "$JVMARGS" | tr ' ' '\n' > "$SERVER_DIR/user_jvm_args.txt" + + # check if a run script exists if [ -f "$SERVER_DIR/run.sh" ]; then - echo "$JVMARGS" | tr ' ' '\n' > "$SERVER_DIR/user_jvm_args.txt" { chmod +x "$SERVER_DIR/run.sh" || true; } exec "$SERVER_DIR/run.sh" nogui + + # check if the forge library dir exists + library="$SERVER_DIR/libraries/net/minecraftforge/forge/$(get_key MC_VERSION)-$(get_key FORGE_VERSION)" + elif [ -d "$library" ]; then + exec java @user_jvm_args.txt "@$library/unix_args.txt" + + # fallback to raw jar file else - exec java $JVMARGS -jar "$SERVER_DIR/$MCLAUNCHER_BINARY" nogui + exec java @user_jvm_args.txt -jar "$SERVER_DIR/$MCLAUNCHER_BINARY" nogui + fi } |