Add Folia support (#2081)

This commit is contained in:
Marie
2023-04-14 04:55:58 +02:00
committed by GitHub
parent 3019388864
commit 834127db2e
4 changed files with 53 additions and 14 deletions

View File

@@ -176,6 +176,10 @@ case "${TYPE^^}" in
exec "${SCRIPTS:-/}start-deployPaper" "$@"
;;
FOLIA)
exec "${SCRIPTS:-/}start-deployFolia" "$@"
;;
FORGE)
evaluateJavaCompatibilityForForge
exec "${SCRIPTS:-/}start-deployForge" "$@"

11
scripts/start-deployFolia Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
if [[ $FOLIA_DOWNLOAD_URL ]]; then
export PAPER_DOWNLOAD_URL="$FOLIA_DOWNLOAD_URL"
fi
if [[ $FOLIABUILD ]]; then
export PAPERBUILD="$FOLIABUILD"
fi
PAPER_PROJECT="folia" PAPER_NAME="FoliaMC" exec ${SCRIPTS:-/}start-deployPaper "$@"

View File

@@ -10,22 +10,28 @@ handleDebugMode
ourScript="$0"
ourArgs=("$@")
# Check if we're running Folia.
if [[ -z $PAPER_PROJECT ]]; then
PAPER_PROJECT="paper"
PAPER_NAME="PaperMC"
fi
function handleMissingVersion() {
expectedVersion=${VANILLA_VERSION}
versions=$(curl -fsSL "https://papermc.io/api/v2/projects/paper" -H "accept: application/json")
versions=$(curl -fsSL "https://papermc.io/api/v2/projects/${PAPER_PROJECT}" -H "accept: application/json")
if [[ $VERSION = LATEST ]]; then
tries=0
while ((tries++ < 5)); do
VANILLA_VERSION=$(echo "$versions" | jq -r ".versions[$((- tries))]")
if [[ $(curl -fsSL "https://papermc.io/api/v2/projects/paper/versions/${VANILLA_VERSION}" -H "accept: application/json" \
if [[ $(curl -fsSL "https://papermc.io/api/v2/projects/${PAPER_PROJECT}/versions/${VANILLA_VERSION}" -H "accept: application/json" \
| jq '.builds[-1]') != null ]]; then
log "WARN: using ${VANILLA_VERSION} since that's the latest provided by PaperMC"
log "WARN: using ${VANILLA_VERSION} since that's the latest provided by ${PAPER_NAME}"
# re-execute the current script with the newly computed version
exec "$ourScript" "${ourArgs[@]}"
fi
done
fi
log "ERROR: ${expectedVersion} is not published by PaperMC"
log "ERROR: ${expectedVersion} is not published by ${PAPER_NAME}"
log " Set VERSION to one of the following: "
log " $(echo "$versions" | jq -r '.versions | join(", ")')"
exit 1
@@ -40,13 +46,13 @@ elif [[ $PAPER_DOWNLOAD_URL ]]; then
zarg=(-z "$SERVER")
fi
echo "Preparing custom PaperMC jar from $PAPER_DOWNLOAD_URL"
echo "Preparing custom ${PAPER_NAME} jar from $PAPER_DOWNLOAD_URL"
curl -fsSL -o "$SERVER" "${zarg[@]}" "${PAPER_DOWNLOAD_URL}"
else
# PaperMC API v2 docs : https://papermc.io/api/docs/swagger-ui/index.html?configUrl=/api/openapi/swagger-config
# Paper API v2 docs : https://papermc.io/api/docs/swagger-ui/index.html?configUrl=/api/openapi/swagger-config
build=${PAPERBUILD:=$(curl -fsSL "https://papermc.io/api/v2/projects/paper/versions/${VANILLA_VERSION}" -H "accept: application/json" \
build=${PAPERBUILD:=$(curl -fsSL "https://papermc.io/api/v2/projects/${PAPER_PROJECT}/versions/${VANILLA_VERSION}" -H "accept: application/json" \
| jq '.builds[-1]')}
case $? in
0)
@@ -55,7 +61,7 @@ else
handleMissingVersion
;;
*)
echo "ERROR: unknown error while looking up PaperMC version=${VANILLA_VERSION}"
echo "ERROR: unknown error while looking up ${PAPER_NAME} version=${VANILLA_VERSION}"
exit 1
;;
esac
@@ -64,10 +70,10 @@ else
handleMissingVersion
fi
export SERVER=$(curl -fsSL "https://papermc.io/api/v2/projects/paper/versions/${VANILLA_VERSION}/builds/${build}" -H "accept: application/json" \
export SERVER=$(curl -fsSL "https://papermc.io/api/v2/projects/${PAPER_PROJECT}/versions/${VANILLA_VERSION}/builds/${build}" -H "accept: application/json" \
| jq -r '.downloads.application.name')
if [ $? != 0 ]; then
echo "ERROR: failed to lookup PaperMC download file from version=${VANILLA_VERSION} build=${build}"
echo "ERROR: failed to lookup ${PAPER_NAME} download file from version=${VANILLA_VERSION} build=${build}"
exit 1
fi
@@ -75,18 +81,18 @@ else
zarg=(-z "$SERVER")
fi
log "Removing old PaperMC versions ..."
log "Removing old ${PAPER_NAME} versions ..."
shopt -s nullglob
for f in paper-*.jar; do
[[ $f != $SERVER ]] && rm $f
done
log "Downloading PaperMC $VANILLA_VERSION (build $build) ..."
log "Downloading ${PAPER_NAME} $VANILLA_VERSION (build $build) ..."
curl -fsSL -o "$SERVER" "${zarg[@]}" \
"https://papermc.io/api/v2/projects/paper/versions/${VANILLA_VERSION}/builds/${build}/downloads/${SERVER}" \
"https://papermc.io/api/v2/projects/${PAPER_PROJECT}/versions/${VANILLA_VERSION}/builds/${build}/downloads/${SERVER}" \
-H "accept: application/java-archive"
if [ $? != 0 ]; then
echo "ERROR: failed to download PaperMC from version=${VANILLA_VERSION} build=${build} download=${SERVER}"
echo "ERROR: failed to download ${PAPER_NAME} from version=${VANILLA_VERSION} build=${build} download=${SERVER}"
exit 1
fi
fi