サーバー情報の取得(ping)
ping() は RakNet の unconnected ping を送り、サーバーの状態(MOTD・人数・バージョンなど)を ServerAdvertisement として返します。ボットを接続せずに監視したい場合に便利です。
最小のサンプル
js
const { ping } = require('bedrock-protocol')
ping({ host: 'play.cubecraft.net', port: 19132 }).then(res => {
console.log(res)
})async/await 版:
js
const { ping } = require('bedrock-protocol')
const status = await ping({ host: 'localhost', port: 19132 })
console.log(`${status.motd} / ${status.playersOnline}/${status.playersMax} 人 (${status.version})`)ServerAdvertisement のフィールド
| フィールド | 型 | 説明 |
|---|---|---|
motd | string | サーバー一覧に表示されるメインメッセージ |
name | string | サーバー名(サブヘッダ) |
protocol | number | プロトコルバージョン番号(例: 729) |
version | string | バージョン文字列(例: '1.21.50') |
playersOnline | number | 現在のオンライン人数 |
playersMax | number | 最大人数 |
serverId | string | サーバー ID |
levelName | string | ワールド名 |
gamemodeId | number | ゲームモード ID |
portV4 / portV6 | number | IPv4 / IPv6 用ポート |
用途の例
- バージョン自動判定: クライアント作成前の事前 ping と同じ仕組みです。
skipPing: trueでこの自動判定を止められます。 - サーバー監視: 定期的に ping して人数や応答を記録する監視スクリプトが簡単に書けます。
- LAN 内のサーバー探索: UDP ブロードキャストへの応答も同じ PONG 形式なので、ローカル環境の確認にも使えます。