GNU/Linux >> Znalost Linux >  >> Linux

Existuje způsob, jak získat nejnovější jar serveru prostřednictvím adresy URL, která se nemění?

Ú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.json
  • GET 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


Linux
  1. Změňte výchozí číslo portu serveru SSH

  2. Změňte časový limit MySQL na serveru

  3. UTF-8 celou cestu

  1. Existuje způsob, jak přimět mv, aby vytvořil adresář, do kterého se má přesunout, pokud neexistuje?

  2. Existuje způsob, jak zkontrolovat aktuální rpath v Linuxu?

  3. Příkaz 'ls -d' nezobrazuje adresáře. Existuje způsob, jak získat 'ls', aby zobrazoval pouze adresáře namísto souborů a adresářů?

  1. Jak rychle nastavit server KVM

  2. Jak změnit název hostitele na webovém serveru cPanel

  3. Existuje rychlý způsob, jak získat úplně poslední soubor ve velkém TAR?