server-config/minecraft/update.sh

25 lines
1.0 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
MINECRAFT_VERSION="1.19.3"
function update_paper() {
local CURRENT_VERSION LATEST_VERSION
CURRENT_VERSION="$(cat .paper-version)"
LATEST_VERSION="$(curl -s "https://papermc.io/api/v2/projects/paper/versions/${MINECRAFT_VERSION}" -H 'accept: application/json' | jq .builds[-1])"
echo "Currently running version is ${CURRENT_VERSION}"
echo "Latest version is ${MINECRAFT_VERSION}-${LATEST_VERSION}"
[ -f "paper-${MINECRAFT_VERSION}-${LATEST_VERSION}.jar" ] && return
echo "Updating to ${MINECRAFT_VERSION}-${LATEST_VERSION}"
curl --progress-bar -L "https://papermc.io/api/v2/projects/paper/versions/${MINECRAFT_VERSION}/builds/${LATEST_VERSION}/downloads/paper-${MINECRAFT_VERSION}-${LATEST_VERSION}.jar" -o "paper-${MINECRAFT_VERSION}-${LATEST_VERSION}.jar"
echo "${MINECRAFT_VERSION}-${LATEST_VERSION}" >.paper-version
}
function cleanup_previous_jars() {
find . -maxdepth 1 -type f -name 'paper-*.jar' | sort -r | tail -n +3 | xargs rm -vf
}
update_paper
cleanup_previous_jars