Istruzioni complete
Di recente ho decompilato il launcher proprio per questo motivo, per gestire gli aggiornamenti automatici per il mio wrapper del server con la loro nuova convenzione di denominazione.
Ho trovato il file che usano per capire qual è la versione attuale e l'URL:
https://launchermeta.mojang.com/mc/game/version_manifest.json
Questo file include quanto segue (a partire da questa risposta):
"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"
},
...
]
Quel file ha anche un array "versioni". Passa attraverso questo per trovare la versione che stai cercando in id
campo. Di solito è anche la prima voce in questo array, quindi potresti indirizzarla versions[0]
. Prendi il url
value e recupera quel file che contiene la seguente utile chiave:
"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"
}
},
Pertanto, l'URL di cui hai bisogno è contenuto in downloads.server.url
.
Riepilogo
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
Istruzioni obsolete - solo per i posteri
Che puoi quindi utilizzare per estrapolare l'ultima versione per il rilascio e le istantanee utilizzando questo schema:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
Usando questo metodo non è necessario scaricare ogni volta il file jar/exe, solo il file json e poi, se è cambiato, puoi prendere il jar appropriato.
Puoi usare jsawk
per estrarre l'ultimo numero di versione jar dalla versione JSON di Minecraft:
#!/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
Richiede:
- jsawk
- Scimmia Ragno
Getterò persino il mio cappello sul ring! Molto simile a sopra, con alcuni extra.
#!/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