- Migrate Paper loader from sunset v2 API to v3 (fill.papermc.io) - Fix NeoForge: fall back to beta versions when no stable exists (set -e + grep) - Fix setEula/setperms ordering (was writing eula.txt before /data was writable) - Fix setEula/serverInfoWrite to use absolute paths (/data/server/) - Add VOLUME directive removal (was shadowing bind mounts) - Add comprehensive API test suite (110 tests across 6 suites) - Move test.sh to tests/integration.sh, switch to named volumes - Add Docker build cache to CI workflows - Add .editorconfig, expand .gitignore, improve README docs
34 lines
1.2 KiB
Bash
34 lines
1.2 KiB
Bash
getFabric() {
|
|
SERVER_TYPE="Fabric Minecraft"
|
|
|
|
if [[ -z "${MC_VERSION}" ]]; then
|
|
die "MC_VERSION is required for Fabric loader"
|
|
fi
|
|
|
|
log "Fetching Fabric loader version for MC ${MC_VERSION}..."
|
|
local LATEST_BUILD LATEST_INSTALLER
|
|
LATEST_BUILD=$(curl -sf --connect-timeout 10 --max-time 30 \
|
|
"https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}" |
|
|
jq -r '.[0].loader.version')
|
|
|
|
LATEST_INSTALLER=$(curl -sf --connect-timeout 10 --max-time 30 \
|
|
"https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml" |
|
|
xmllint --xpath "/metadata/versioning/latest/text()" -)
|
|
|
|
if [[ -z "$LATEST_BUILD" || "$LATEST_BUILD" == "null" ]]; then
|
|
die "No Fabric loader found for MC ${MC_VERSION}"
|
|
fi
|
|
if [[ -z "$LATEST_INSTALLER" ]]; then
|
|
die "Could not determine latest Fabric installer version"
|
|
fi
|
|
|
|
local VER_LOADER
|
|
VER_LOADER="${FABRIC_LOADER_VERSION:-${LATEST_BUILD}}"
|
|
local DL_URL
|
|
DL_URL="https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}/${VER_LOADER}/${LATEST_INSTALLER}/server/jar"
|
|
|
|
log "Downloading Fabric (loader ${VER_LOADER}, installer ${LATEST_INSTALLER})..."
|
|
curl -fL -o server.jar "${DL_URL}"
|
|
log "Fabric ${MC_VERSION} (loader ${VER_LOADER}) downloaded."
|
|
}
|