Saltar al contenido

¿Hay alguna manera de obtener el archivo jar del servidor más reciente a través de una URL que no cambia?

Esta es la contestación más exacta que encomtrarás compartir, sin embargo mírala detenidamente y valora si es compatible a tu proyecto.

Solución:

Instrucciones completas

Recientemente descompilé el iniciador por esta misma razón, 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 “versiones” array. Recorra esto para encontrar la versión que está buscando en el id campo. También suele ser la primera entrada en este arraypara que puedas abordarlo versions[0]. Toma el url value y obtenga ese archivo que contiene lo siguiente útil key:

"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.json
  • GETversions[0].url
  • GETdownloads.server.url

Instrucciones desactualizadas – 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 de arriba, 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

Te mostramos comentarios y calificaciones

Si tienes algún titubeo y disposición de aumentar nuestro post puedes ejecutar una nota y con placer lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *