Skip to content

サーバー情報の取得(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 のフィールド

フィールド説明
motdstringサーバー一覧に表示されるメインメッセージ
namestringサーバー名(サブヘッダ)
protocolnumberプロトコルバージョン番号(例: 729)
versionstringバージョン文字列(例: '1.21.50')
playersOnlinenumber現在のオンライン人数
playersMaxnumber最大人数
serverIdstringサーバー ID
levelNamestringワールド名
gamemodeIdnumberゲームモード ID
portV4 / portV6numberIPv4 / IPv6 用ポート

用途の例

  • バージョン自動判定: クライアント作成前の事前 ping と同じ仕組みです。skipPing: true でこの自動判定を止められます。
  • サーバー監視: 定期的に ping して人数や応答を記録する監視スクリプトが簡単に書けます。
  • LAN 内のサーバー探索: UDP ブロードキャストへの応答も同じ PONG 形式なので、ローカル環境の確認にも使えます。