57 lines
1.9 KiB
Bash
Executable File
57 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Packages the resource pack, computes SHA1, and updates server.properties.
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SERVER_DIR="$(dirname "$SCRIPT_DIR")"
|
|
PACK_NAME="zerolands-resourcepack.zip"
|
|
OUTPUT="$SERVER_DIR/$PACK_NAME"
|
|
PROPS="$SERVER_DIR/server.properties"
|
|
|
|
echo "=== Building resource pack ==="
|
|
|
|
# Remove previous build
|
|
rm -f "$OUTPUT"
|
|
|
|
# Zip everything inside the resourcepack folder (pack.mcmeta must be at root of zip)
|
|
cd "$SCRIPT_DIR"
|
|
zip -r "$OUTPUT" pack.mcmeta assets/ -x "*.txt" -x "build_pack.sh" -x ".DS_Store"
|
|
|
|
SHA1=$(sha1sum "$OUTPUT" | awk '{print $1}')
|
|
echo "Built: $OUTPUT"
|
|
echo "SHA1: $SHA1"
|
|
|
|
# ─── Update server.properties in-place ───────────────────────────────────────
|
|
if [ -f "$PROPS" ]; then
|
|
# Read current URL (preserve whatever the user set)
|
|
CURRENT_URL=$(grep '^resource-pack=' "$PROPS" | cut -d= -f2-)
|
|
|
|
sed -i \
|
|
-e "s|^resource-pack-sha1=.*|resource-pack-sha1=$SHA1|" \
|
|
"$PROPS"
|
|
|
|
echo ""
|
|
echo "server.properties SHA1 updated."
|
|
if [ -z "$CURRENT_URL" ]; then
|
|
echo ""
|
|
echo "ACTION REQUIRED: set the resource-pack URL in server.properties:"
|
|
echo " resource-pack=http://<your-server-ip>:8080/$PACK_NAME"
|
|
else
|
|
echo "Resource pack URL: $CURRENT_URL"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Pushing to Gitea ==="
|
|
cp "$OUTPUT" "$SCRIPT_DIR/zerolands-resourcepack.zip"
|
|
cd "$SCRIPT_DIR"
|
|
git add zerolands-resourcepack.zip
|
|
git diff --cached --quiet || git commit -m "Update resource pack zip [$(date -u '+%Y-%m-%d %H:%M UTC')]"
|
|
git push
|
|
|
|
echo ""
|
|
echo "=== Done ==="
|
|
echo "Resource pack live at:"
|
|
echo " https://zerolands.duckdns.org/git/D3SXX/Minecraft-Server-1.21.1-Resourcepack/raw/branch/main/zerolands-resourcepack.zip"
|
|
echo "Then restart or reload the Minecraft server."
|