Improved handling of latest PaperMC version

Fixes #563
This commit is contained in:
Geoff Bourne 2020-08-25 21:44:36 -05:00
parent 42f90c8806
commit 9ea675bc89

View File

@ -12,16 +12,32 @@ fi
downloadUrl=${PAPER_DOWNLOAD_URL:-https://papermc.io/api/v1/paper/${VANILLA_VERSION}/${PAPERBUILD}/download}
log "Downloading Paper $VANILLA_VERSION (build $PAPERBUILD) from $downloadUrl ..."
if ! curl -fsSL -o "$SERVER" $zarg "$downloadUrl" 2> /dev/null; then
if versions=$(curl -fsSL https://papermc.io/api/v1/paper 2> /dev/null | jq -r '.versions | join(", ")'); then
log "ERROR: ${VANILLA_VERSION} is not (yet) published by PaperMC"
log " Set VERSION to one of the following: "
log " ${versions}"
else
log "ERROR: failed to contact PaperMC at https://papermc.io/api/v1/paper"
fi
exit 3
fi
out=$(curl -fsSL -o "$SERVER" $zarg "$downloadUrl" 2>&1)
case $? in
0)
;;
22) # = 404 HTTP status
if versions=$(curl -fsSL https://papermc.io/api/v1/paper 2> /dev/null); then
if [[ $VERSION = LATEST ]]; then
VANILLA_VERSION=$(echo $versions | jq -r '.versions[0]')
log "WARN: using ${VANILLA_VERSION} since that's the latest provided by PaperMC"
# re-execute the current script with the newly computed version
exec $0 "$@"
fi
log "ERROR: ${VANILLA_VERSION} is not (yet) published by PaperMC"
log " Set VERSION to one of the following: "
log " $(echo $versions | jq -r '.versions | join(", ")')"
else
log "ERROR: failed to retrieve versions from https://papermc.io/api/v1/paper"
fi
exit 3
;;
*)
log "ERROR: failed to contact PaperMC at $downloadUrl"
log " $out"
exit 3
;;
esac
# Normalize on Spigot for downstream operations
export TYPE=SPIGOT