Úplné pokyny
Právě z tohoto důvodu jsem nedávno dekompiloval launcher, abych mohl spravovat automatické aktualizace pro můj server wrapper s jejich novou konvencí pojmenování.
Našel jsem soubor, který používají ke zjištění aktuální verze a adresy URL:
https://launchermeta.mojang.com/mc/game/version_manifest.json
Tento soubor obsahuje následující (od této odpovědi):
"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"
},
...
]
Tento soubor má také pole "verzí". Projděte toto a vyhledejte verzi, kterou hledáte v id
pole. Obvykle je to také první položka v tomto poli, takže ji můžete zadat versions[0]
. Popadněte url
value a načtěte soubor, který obsahuje následující užitečný klíč:
"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"
}
},
Proto je adresa URL, kterou potřebujete, obsažena v downloads.server.url
.
Shrnutí
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
Zastaralé pokyny – pouze pro potomky
Které pak můžete použít k extrapolaci nejnovější verze pro vydání a snímky pomocí tohoto schématu:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
Pomocí této metody nemusíte pokaždé stahovat soubor jar/exe, stačí soubor json a pokud se změní, můžete si vzít příslušný jar.
Můžete použít jsawk
vytáhnout nejnovější číslo verze jar z verze Minecraft JSON:
#!/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
Vyžaduje:
- jsawk
- SpiderMonkey
Dokonce hodím klobouk do ringu! Velmi podobné výše uvedenému, s několika doplňky.
#!/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