Files
TFG/patches/0001-Add-qol-scripts-for-local-server-dev.patch
2026-03-23 10:20:14 +01:00

102 lines
2.9 KiB
Diff

From 483938fcb2b3168a64a841adb7b8e720c47dbb11 Mon Sep 17 00:00:00 2001
From: Jika <vandechat@tutanota.com>
Date: Fri, 12 Sep 2025 23:59:18 +0200
Subject: [PATCH 1/9] Add qol scripts for local server dev
---
.pakku/server-overrides/start_server.sh | 22 +++++++++++++
scripts/update_forge_auto_install.sh | 41 +++++++++++++++++++++++++
2 files changed, 63 insertions(+)
create mode 100755 .pakku/server-overrides/start_server.sh
create mode 100755 scripts/update_forge_auto_install.sh
diff --git a/.pakku/server-overrides/start_server.sh b/.pakku/server-overrides/start_server.sh
new file mode 100755
index 00000000..5b824061
--- /dev/null
+++ b/.pakku/server-overrides/start_server.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Simple Linux server start script.
+# Usage (from the serverpack root):
+# chmod +x start_server.sh
+# ./start_server.sh
+#
+# Configure via env vars:
+# JAVA_BIN=/path/to/java XMS=2G XMX=8G ./start_server.sh
+
+JAVA_BIN="${JAVA_BIN:-java}"
+XMS="${XMS:-1G}"
+XMX="${XMX:-6G}"
+
+if [ ! -f minecraft_server.jar ]; then
+ echo "minecraft_server.jar not found in $(pwd)." >&2
+ exit 1
+fi
+
+exec "$JAVA_BIN" -Xms"$XMS" -Xmx"$XMX" -jar minecraft_server.jar nogui
+
diff --git a/scripts/update_forge_auto_install.sh b/scripts/update_forge_auto_install.sh
new file mode 100755
index 00000000..9c82cc96
--- /dev/null
+++ b/scripts/update_forge_auto_install.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# Update placeholders in serverpack run file and inside serverpack zip(s)
+# using values from pakku-lock.json. Mirrors the GitHub workflow logic.
+
+
+LOCK_JSON="./pakku-lock.json"
+BASE_FILE=".pakku/server-overrides/forge-auto-install.txt"
+RUN_FILE="./build/serverpack/forge-auto-install.txt"
+SERVERPACK_DIR="./build/serverpack"
+
+# Extract info like in the workflow
+MC_VERSION=$(jq -r '.mc_versions[0]' "$LOCK_JSON")
+LOADER_KEY=$(jq -r '.loaders | keys[0]' "$LOCK_JSON")
+LOADER_VERSION=$(jq -r --arg k "$LOADER_KEY" '.loaders[$k]' "$LOCK_JSON")
+
+# Normalize loader type to expected casing
+case "$LOADER_KEY" in
+ forge|Forge) LOADER_TYPE="Forge" ;;
+ neoforge|NeoForge) LOADER_TYPE="NeoForge" ;;
+ *) LOADER_TYPE="$LOADER_KEY" ;;
+esac
+
+echo "minecraftVersion=$MC_VERSION"
+echo "loaderType=$LOADER_TYPE"
+echo "loaderVersion=$LOADER_VERSION"
+
+cp "$BASE_FILE" "$RUN_FILE"
+
+sed -i -e "s/LOADER_VERSION/${LOADER_VERSION}/g" "$RUN_FILE"
+sed -i -e "s/LOADER_TYPE/${LOADER_TYPE}/g" "$RUN_FILE"
+sed -i -e "s/MINECRAFT_VERSION/${MC_VERSION}/g" "$RUN_FILE"
+
+for z in "$SERVERPACK_DIR"/*.zip; do
+ zip -q -u -j "$z" "$RUN_FILE"
+ echo "patched zip: $z"
+done
+
+rm "$RUN_FILE"
+
diff --git a/pakku.json b/pakku.json
index 3224be1c..1a1328cb 100644
--- a/pakku.json
+++ b/pakku.json
@@ -19,5 +19,6 @@
"server.properties",
"server_starter.conf",
"server-icon.png",
+ "start_server.sh",
"start_server.bat",
"README.md"
--
2.51.1.dirty