Instrucciones completas
Recientemente descompilé el iniciador por este mismo motivo, para administrar las actualizaciones automáticas para mi contenedor de servidor con su nueva convención de nomenclatura.
Encontré el archivo que usan para averiguar cuál es la versión actual y la URL:
https://launchermeta.mojang.com/mc/game/version_manifest.json
Este archivo incluye lo siguiente (a partir de esta respuesta):
"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"
},
...
]
Ese archivo también tiene una matriz de "versiones". Recorra esto para encontrar la versión que está buscando en el id
campo. También suele ser la primera entrada en esta matriz, por lo que podría abordarla versions[0]
. Toma el url
value y obtenga ese archivo que contiene la siguiente clave útil:
"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"
}
},
Por lo tanto, la URL que necesita está contenida en downloads.server.url
.
Resumen
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
Instrucciones obsoletas:solo para la posteridad
Que luego puede usar para extrapolar la última versión para el lanzamiento y las instantáneas usando este esquema:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
Con este método, no necesita descargar el archivo jar/exe cada vez, solo el archivo json y luego, si se modifica, puede tomar el archivo jar apropiado.
Puedes usar jsawk
para obtener el último número de versión de jar de la versión JSON de 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
Requiere:
- jsawk
- Mono Araña
¡Hasta arrojaré mi sombrero al ring! Muy similar al anterior, con algunos 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