Minecraft-Java-Edition

有沒有辦法通過不變的 URL 獲取最新的伺服器 jar?

  • January 24, 2022

我正在編寫一個 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.

概括


過時的說明 - 僅供後代使用

然後,您可以使用此方案來推斷發布和快照的最新版本:

https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar

使用這種方法你不需要每次都下載jar/exe文件,只需要json文件,然後如果它改變了,你可以抓住合適的jar。

引用自:https://gaming.stackexchange.com/questions/123194