- 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
46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
getForge() {
|
|
SERVER_TYPE="Forge Server"
|
|
|
|
if [[ -z "${MC_VERSION}" ]]; then
|
|
die "MC_VERSION is required for Forge loader"
|
|
fi
|
|
|
|
local DL_URL
|
|
if [[ -n "${FORGE_VERSION}" ]]; then
|
|
VER_LOADER="${FORGE_VERSION}"
|
|
DL_URL="https://maven.minecraftforge.net/net/minecraftforge/forge/${MC_VERSION}-${VER_LOADER}/forge-${MC_VERSION}-${VER_LOADER}-installer.jar"
|
|
else
|
|
log "Fetching latest Forge version for MC ${MC_VERSION}..."
|
|
local LATEST_BUILD
|
|
LATEST_BUILD=$(curl -sf --connect-timeout 10 --max-time 30 \
|
|
"https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json" |
|
|
jq -r ".promos[\"${MC_VERSION}-latest\"]")
|
|
|
|
if [[ -z "$LATEST_BUILD" || "$LATEST_BUILD" == "null" ]]; then
|
|
die "No Forge version found for MC ${MC_VERSION}"
|
|
fi
|
|
|
|
VER_LOADER="$LATEST_BUILD"
|
|
DL_URL="https://maven.minecraftforge.net/net/minecraftforge/forge/${MC_VERSION}-${VER_LOADER}/forge-${MC_VERSION}-${VER_LOADER}-installer.jar"
|
|
fi
|
|
|
|
log "Downloading Forge ${MC_VERSION}-${VER_LOADER} installer..."
|
|
rm -f server.jar
|
|
curl -fL -o forge-install.jar "${DL_URL}"
|
|
|
|
log "Running Forge installer..."
|
|
$JAVA -jar forge-install.jar --installServer
|
|
|
|
newForge
|
|
rm -f forge-install.jar forge-install.jar.log
|
|
|
|
if [[ "${NEW_FORGE}" == "true" ]]; then
|
|
log "Forge ${MC_VERSION} installed (new-style launcher)."
|
|
else
|
|
ln -sf "forge-${MC_VERSION}-${VER_LOADER}.jar" server.jar
|
|
log "Forge ${MC_VERSION}-${VER_LOADER} installed."
|
|
fi
|
|
|
|
touch server.properties
|
|
}
|