読者です 読者をやめる 読者になる 読者になる

ろきくんわーるど

フォロワーさん!ブログですよ!ブログ!

Minecraft鯖の状態を取得する

Minecraft PHP

今回はMinecraft APIを利用して、簡単にマルチサーバーの状態を取得するアレです。

情報を取得したいサーバーのアドレスを 以下URLのserver= のあとにつけるとJSON形式で返してくれます。
http://minecraft-api.com/v1/get/?server=play.example.com

{
    "status": true,
    "players": {
        "online": 0,
        "max": 20
    },
    "motd": "rokicraft v1.7.4",
    "version": "1.7.4",
    "latency": "0.166"
}

ボクのろき鯖で取得するとこんな感じで返してくれます。

様々な言語でできますが、今回はサイトにサーバー情報を載せたかったので比較的楽なPHPを使いました。

<?php
	$info = json_decode( file_get_contents('http://minecraft-api.com/v1/get/?server=play.example.com'),true); //サーバー情報の取得
	if($info['status'] == true){ //サーバーがオンライン状態なら
		echo 'サーバーは稼働しています。<br>';
		echo 'オンライン人数:'.$info['players']['online'].'/'.$info['players']['max'].'';
	}else { //サーバーがオフライン状態なら
		echo 'サーバーは稼働していません<br>';
	}
?>


file_get_contents — ファイルの内容を全て文字列に読み込む
json_decode — JSON 文字列をデコードする(引数にtrueを渡せば連想配列で返してくれる)

これでサーバーのオンライン状況とオンライン人数が取得できると思います。

他にいろんな情報が取得できるみたいですね。
プレイヤーリストが何故か取得できなかったり、結構頻繁に鯖落ち(?)してるのでそこまでおすすめしないです。


最近JSON扱うの多いから勉強しないと~。w