詳しい説明
私は最近、まさにこの理由でランチャーを逆コンパイルし、新しい命名規則でサーバー ラッパーの自動更新を管理しました。
現在のバージョンとその URL を調べるために彼らが使用しているファイルを見つけました:
https://launchermeta.mojang.com/mc/game/version_manifest.json
このファイルには以下が含まれます (この回答の時点で):
"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"
},
...
]
そのファイルには「バージョン」配列もあります。これをループして、探しているバージョンを id
で見つけます 分野。これは通常、この配列の最初のエントリでもあるため、versions[0]
にアドレス指定できます。 . url
をつかむ 値を取得し、次の便利なキーを含むファイルを取得します:
"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"
}
},
したがって、必要な URL は downloads.server.url
に含まれています。 .
まとめ
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
時代遅れの指示 - 後世のみ
次に、このスキームを使用して、リリースとスナップショットの最新バージョンを推定するために使用できます:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
この方法を使用すると、毎回 jar/exe ファイルをダウンロードする必要はなく、json ファイルだけをダウンロードするだけで、変更された場合は適切な jar を取得できます。
jsawk
を使用できます Minecraft バージョンの JSON から最新の jar バージョン番号を取得するには:
#!/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
必須:
- ジャソーク
- SpiderMonkey
帽子もリングに投げ入れます!上記と非常によく似ていますが、いくつか追加があります。
#!/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