Minecraft-Java-Edition
有沒有辦法通過不變的 URL 獲取最新的伺服器 jar?
我正在編寫一個 bash 腳本來管理我的 eeePC 上的 vanilla 伺服器安裝。現在我一直在使用
http://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
獲取 minecraft_server jar。它似乎只獲得 1.5.2 伺服器版本而不是 1.6.2 伺服器版本。關於如何通過類似的網址獲取最新穩定版本的任何想法?
完整說明
出於這個原因,我最近反編譯了啟動器,以便使用新的命名約定管理我的伺服器包裝器的自動更新。
我找到了他們用來計算目前版本的文件及其 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。