Vollständige Anleitung
Ich habe den Launcher kürzlich aus genau diesem Grund dekompiliert, um automatische Updates für meinen Server-Wrapper mit ihrer neuen Namenskonvention zu verwalten.
Ich habe die Datei gefunden, die sie verwenden, um herauszufinden, was die aktuelle Version ist, und die URL dazu:
https://launchermeta.mojang.com/mc/game/version_manifest.json
Diese Datei enthält Folgendes (Stand dieser Antwort):
"latest": {
"snapshot": "1.9-pre3",
"release": "1.8.9"
},
"versions": [
{
"id": "1.13.1",
"type": "release",
"url": "https://launchermeta.mojang.com/v1/packages/c0f1e6239a16681ffbfa68fc469038643304d5a9/1.13.1.json",
"time": "2018-08-30T09:49:34+00:00",
"releaseTime": "2018-08-22T14:03:42+00:00"
},
...
]
Diese Datei hat auch ein "Versions"-Array. Durchlaufen Sie diese, um die gesuchte Version in id
zu finden aufstellen. Es ist normalerweise auch der erste Eintrag in diesem Array, also könnten Sie es versions[0]
adressieren . Schnapp dir die url
Wert und rufen Sie die Datei ab, die den folgenden nützlichen Schlüssel enthält:
"downloads": {
"client": {
"sha1": "8de235e5ec3a7fce168056ea395d21cbdec18d7c",
"size": 16088559,
"url": "https://launcher.mojang.com/v1/objects/8de235e5ec3a7fce168056ea395d21cbdec18d7c/client.jar"
},
"server": {
"sha1": "fe123682e9cb30031eae351764f653500b7396c9",
"size": 33832589,
"url": "https://launcher.mojang.com/v1/objects/fe123682e9cb30031eae351764f653500b7396c9/server.jar"
}
},
Daher ist die benötigte URL in downloads.server.url
enthalten .
Zusammenfassung
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
Veraltete Anleitung - nur für die Nachwelt
Die Sie dann verwenden können, um die neueste Version für Release und Snapshots mit diesem Schema zu extrapolieren:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
Mit dieser Methode müssen Sie nicht jedes Mal die JAR-/EXE-Datei herunterladen, sondern nur die JSON-Datei, und wenn sie sich geändert hat, können Sie die entsprechende JAR-Datei abrufen.
Sie können jsawk
verwenden um die neueste JAR-Versionsnummer aus der JSON-Version von Minecraft abzurufen:
#!/bin/bash
VER=`curl -s https://launchermeta.mojang.com/mc/game/version_manifest.json | jsawk -n 'out(this.latest.release)'`
wget https://s3.amazonaws.com/Minecraft.Download/versions/$VER/minecraft_server.$VER.jar
Benötigt:
- jsawk
- SpiderMonkey
Ich werfe sogar meinen Hut in den Ring! Sehr ähnlich wie oben, mit ein paar Extras.
#!/bin/bash
tmpfile=/tmp/minecrafttempfile.tmp
downloadurl="https://minecraft.net/download"
serverurl=""
loc=$([[ -n $1 ]] && echo $1 || echo "/tmp/minecraft_server.jar")
if [[ -a $loc ]]; then
echo "$loc exists -- moving to ${loc}.old"
mv $loc ${loc}.old
fi
echo "Grabbing minecraft download page..."
curl $downloadurl > $tmpfile
echo "Getting download URL for minecraft server..."
serverurl=`egrep -io 'https.*versions\/(.*)\/minecraft_server.\1.jar' $tmpfile`
echo "URL = "$serverurl
echo "Downloading server jar..."
wget -q -O $loc $serverurl
https://github.com/cptskyhawk/LinuxMinecraftTools