6e13a0aa15
Build dev image / build (push) Failing after 18m12s
- Split monolithic init into modular lib files under scripts/lib/
(common.sh, java.sh, server.sh, loaders/{vanilla,paper,fabric,forge,neoforge}.sh)
- Add bedrock loader: downloads from Minecraft Services API,
runs native binary with LD_LIBRARY_PATH, skips Java setup
- Add auto-detection for JAVA_VERSION from Mojang version manifest
(MC 1.20.5+ -> temurin@21, 1.17-1.20.4 -> temurin@17,
1.17 -> temurin@16, pre-1.17 -> temurin@8)
- Fix NEW_FORGE unbound variable when non-Forge loaders run
- Fix Fabric loader jq filter (-s slurp removed, null string check fixed)
- Fix Forge test detection (recursive find for forge-*-server.jar)
- Dynamic healthcheck: nc -z TCP 25565 for Java, nc -zu UDP 19132 for bedrock
- Add .gitea/workflows/build-dev.yml for dev branch CI builds
- Base image: debian:bookworm-slim (from ubuntu:noble)
- Add unzip, netcat-openbsd to Docker image
- Switch to shebangs, set -euo pipefail throughout
42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
Bash
BEDROCK_API_URL="https://net.web.minecraft-services.net/api/v1.0/download/links"
|
|
BEDROCK_FALLBACK_URL="https://raw.githubusercontent.com/kittizz/bedrock-server-downloads/refs/heads/main/bedrock-server-downloads.json"
|
|
|
|
_bedrockDownload() {
|
|
local platform="$1"
|
|
local version="${2:-}"
|
|
|
|
local DL_URL
|
|
DL_URL=$(curl -sL -A "Mozilla/5.0 (X11; Linux x86_64)" "$BEDROCK_API_URL" | jq -r '.result.links[] | select(.downloadType == "'"$platform"'") | .downloadUrl // empty')
|
|
if [[ -z "$DL_URL" ]]; then
|
|
DL_URL=$(curl -sL -A "Mozilla/5.0 (X11; Linux x86_64)" "$BEDROCK_FALLBACK_URL" |
|
|
jq --arg type "$( [[ "$platform" == *Preview* ]] && echo preview || echo release )" -r '
|
|
.[$type] | to_entries | sort_by(.key | split(".") | map(tonumber)) | last | .value.linux.url // empty
|
|
')
|
|
fi
|
|
if [[ -z "$DL_URL" ]]; then
|
|
echo "Failed to look up Bedrock download URL"
|
|
crash
|
|
fi
|
|
|
|
if [[ -n "$version" ]]; then
|
|
DL_URL=$(echo "$DL_URL" | sed -E "s/(bedrock-server-)[^/]+(\.zip)/\1${version}\2/")
|
|
fi
|
|
|
|
VER=$(echo "$DL_URL" | grep -oP 'bedrock-server-\K[\d.]+(?=\.zip)')
|
|
echo "$DL_URL"
|
|
curl -o bedrock-server.zip -L -A "Mozilla/5.0 (X11; Linux x86_64)" "$DL_URL"
|
|
unzip -o bedrock-server.zip
|
|
rm -f bedrock-server.zip
|
|
chmod +x bedrock_server
|
|
}
|
|
|
|
getBedrock() {
|
|
SERVER_TYPE="Bedrock Server"
|
|
_bedrockDownload "serverBedrockLinux" "${MC_VERSION:-}"
|
|
}
|
|
|
|
getBedrockPreview() {
|
|
SERVER_TYPE="Bedrock Server (Preview)"
|
|
_bedrockDownload "serverBedrockPreviewLinux" "${MC_VERSION:-}"
|
|
}
|