GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada cara untuk mendapatkan toples server terbaru melalui URL yang tidak berubah?

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


Linux
  1. Ubah batas waktu MySQL di server

  2. UTF-8 sepenuhnya

  3. Apakah ada cara untuk membuat mv membuat direktori untuk dipindahkan jika tidak ada?

  1. Apakah ada cara untuk memeriksa rpath saat ini di Linux?

  2. Di bash, apakah ada cara untuk mengulang/mencetak stdout terakhir? Apakah ada variabel yang ditugaskan ke stdout?

  3. Perintah 'ls -d' tidak menampilkan direktori. Apakah ada cara untuk mendapatkan 'ls' untuk hanya menampilkan direktori, bukan file dan direktori?

  1. Cara mengubah nama host di server web cPanel

  2. Linux - Apakah ada cara untuk mengidentifikasi kecepatan memori Anda melalui perangkat lunak?

  3. Apakah ada cara untuk mengubah id volume file .iso dari baris perintah?