Petunjuk Lengkap
Saya baru-baru ini mendekompilasi peluncur karena alasan ini, untuk mengelola pembaruan otomatis untuk pembungkus server saya dengan konvensi penamaan baru mereka.
Saya menemukan file yang mereka gunakan untuk mengetahui versi saat ini dan URL-nya:
https://launchermeta.mojang.com/mc/game/version_manifest.json
File ini mencakup yang berikut (pada jawaban ini):
"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"
},
...
]
File itu juga memiliki larik "versi". Ulangi ini untuk menemukan versi yang Anda cari di id
bidang. Ini juga biasanya merupakan entri pertama dalam larik ini, jadi Anda dapat mengalamatkannya versions[0]
. Ambil url
nilai dan ambil file yang berisi kunci berguna berikut:
"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"
}
},
Oleh karena itu, URL yang Anda butuhkan ada di downloads.server.url
.
Ringkasan
GET
https://launchermeta.mojang.com/mc/game/version_manifest.jsonGET
versions[0].url
GET
downloads.server.url
Instruksi usang - hanya untuk anak cucu
Yang kemudian dapat Anda gunakan untuk mengekstrapolasi versi terbaru untuk rilis dan cuplikan menggunakan skema ini:
https://s3.amazonaws.com/Minecraft.Download/versions/" + Ver + "/minecraft_server." + Ver + ".jar
Dengan menggunakan metode ini Anda tidak perlu mengunduh file jar/exe setiap saat, cukup file json dan kemudian jika diubah, Anda dapat mengambil toples yang sesuai.
Anda dapat menggunakan jsawk
untuk menarik nomor versi jar terbaru dari JSON versi 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
Membutuhkan:
- jsaw
- SpiderMonkey
Saya bahkan akan melemparkan topi saya ke atas ring! Sangat mirip dengan di atas, dengan beberapa tambahan.
#!/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
-
Apakah ada cara untuk memeriksa rpath saat ini di Linux?
-
Di bash, apakah ada cara untuk mengulang/mencetak stdout terakhir? Apakah ada variabel yang ditugaskan ke stdout?
-
Perintah 'ls -d' tidak menampilkan direktori. Apakah ada cara untuk mendapatkan 'ls' untuk hanya menampilkan direktori, bukan file dan direktori?