2017-11-01 05:42:44 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2020-06-19 16:05:32 +00:00
|
|
|
. ${SCRIPTS:-/}start-utils
|
2020-08-15 15:02:45 +00:00
|
|
|
set -o pipefail
|
2020-09-16 22:09:16 +00:00
|
|
|
isDebugging && set -x
|
2020-03-06 15:52:17 +00:00
|
|
|
|
2020-04-22 22:08:07 +00:00
|
|
|
: ${PAPERBUILD:=latest}
|
2020-04-22 12:06:57 +00:00
|
|
|
export SERVER=paper_server-${VANILLA_VERSION}-${PAPERBUILD}.jar
|
|
|
|
|
2020-09-16 22:09:16 +00:00
|
|
|
if [ ! -f "$SERVER" ] || isTrue "$FORCE_REDOWNLOAD"; then
|
|
|
|
|
|
|
|
if [ -f "$SERVER" ]; then
|
|
|
|
zarg=(-z "$SERVER")
|
|
|
|
fi
|
2017-11-01 05:42:44 +00:00
|
|
|
|
2020-09-16 22:09:16 +00:00
|
|
|
downloadUrl=${PAPER_DOWNLOAD_URL:-https://papermc.io/api/v1/paper/${VANILLA_VERSION}/${PAPERBUILD}/download}
|
|
|
|
log "Downloading Paper $VANILLA_VERSION (build $PAPERBUILD) from $downloadUrl ..."
|
|
|
|
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"
|
2020-08-26 02:44:36 +00:00
|
|
|
fi
|
2020-09-16 22:09:16 +00:00
|
|
|
exit 3
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
log "ERROR: failed to contact PaperMC at $downloadUrl"
|
|
|
|
log " $out"
|
|
|
|
exit 3
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2020-07-11 18:30:39 +00:00
|
|
|
|
|
|
|
# Normalize on Spigot for downstream operations
|
2017-11-01 05:42:44 +00:00
|
|
|
export TYPE=SPIGOT
|
2020-04-28 12:27:33 +00:00
|
|
|
export SKIP_LOG4J_CONFIG=true
|
2017-11-01 05:42:44 +00:00
|
|
|
|
|
|
|
# Continue to Final Setup
|
2020-07-06 22:16:51 +00:00
|
|
|
exec ${SCRIPTS:-/}start-finalSetupWorld $@
|