Add qol scripts for local server dev

This commit is contained in:
2025-09-12 23:59:18 +02:00
parent 55181d94ba
commit 553f90bb4e
3 changed files with 64 additions and 1 deletions

View File

@@ -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

View File

@@ -310,4 +310,4 @@
"export": false
}
}
}
}

View File

@@ -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"