Created
September 13, 2020 22:56
-
-
Save optedoblivion/f04db3514c6849cc6580e7b5000a5a32 to your computer and use it in GitHub Desktop.
Auto updating Minecraft Server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
root@hwsrv-623932:~# crontab -l | |
## HOST ENTRIES | |
10 8 * * * /bin/bash /etc/hwautomate/hostwinds_backups.sh > /dev/null 2>&1 | |
# Custom Entries | |
# Update minecraft to latest every morning at 4am | |
0 4 * * * /opt/minecraft/tools/update.sh | |
root@hwsrv-623932:~# cat /opt/minecraft/tools/update.sh | |
#!/bin/bash | |
systemctl stop minecraft.service | |
URL=$(/opt/minecraft/tools/get_latest_server_jar_url.py) | |
wget -O /opt/minecraft/server/server.jar.download $URL | |
if [ $? -eq 0 ]; then | |
cp /opt/minecraft/server/server.jar.download /opt/minecraft/server/server.jar | |
rm /opt/minecraft/server/server.jar.download | |
fi | |
systemctl start minecraft.service | |
root@hwsrv-623932:~# cat /opt/minecraft/tools/get_latest_server_jar_url.py | |
#!/usr/bin/env python | |
import requests | |
from requests.exceptions import HTTPError | |
try: | |
r = requests.get("https://launchermeta.mojang.com/mc/game/version_manifest.json") | |
r.raise_for_status() | |
json_response = r.json() | |
latest_version = json_response["latest"]["release"] | |
release = json_response["versions"][0] | |
if release["id"] == latest_version: | |
release_url = release["url"] | |
rr = requests.get(release_url) | |
rr.raise_for_status() | |
rr_json_response = rr.json() | |
download_url = rr_json_response["downloads"]["server"]["url"] | |
print (download_url) | |
# print(rr_json_response) | |
else: | |
print("First object isn't the latest release like normal!") | |
except HTTPError as http_error: | |
print("HTTP Error occurred: %s" % http_error) | |
except Exception as ex: | |
print("Other error occurred: %s" % ex) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment