Files
MinecraftServerScripts/update-minecraft.sh
2025-01-31 10:00:29 +01:00

38 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
function logdate { printf '[%(%d/%m/%Y %H:%M:%S)T] '; }
# Stop de minecraft server
systemctl stop minecraft
# download de nieuwste server
MANIFEST=$(curl -s https://launchermeta.mojang.com/mc/game/version_manifest.json)
LATEST=$(echo "$MANIFEST"|jq .latest.release)
echo Latest release: "$LATEST"
LOGFILE=$(echo "/var/log/minecraft-update/$LATEST.log"|sed 's/\"//g')
if [[ -f $LOGFILE ]]; then
echo Minecraft is up-to-date: "$LATEST"|sed 's/\"//g'
logdate >> "$LOGFILE"
echo Minecraft is up-to-date: "$LATEST"|sed 's/\"//g' >> "$LOGFILE"
exit
fi
logdate >> "$LOGFILE"
echo Latest release: "$LATEST" >> "$LOGFILE"
LATESTJSON=$(echo "$MANIFEST"|jq ".versions[]|select(.id==$LATEST)")
JSONURL=$(echo "$LATESTJSON"|jq .url| sed 's/\"//g')
SERVERURL=$(curl -s "$JSONURL"|jq .downloads.server.url|sed 's/\"//g')
echo Download: "$SERVERURL"
logdate >> "$LOGFILE"
echo Download: "$SERVERURL" >> "$LOGFILE"
wget "$SERVERURL" -O /srv/minecraft/server.jar -nv --progress=bar:force:noscroll --append-output="$LOGFILE"
chown minecraft /srv/minecraft/server.jar
# Start de minecraft server
systemctl start minecraft
systemctl status minecraft >> "$LOGFILE"
echo Finished Minecraft Server update to version "$LATEST"|sed 's/\"//g'
logdate >> "$LOGFILE"
echo Finished Minecraft Server update to version "$LATEST"|sed 's/\"//g' >> "$LOGFILE"