Skip to content

API リファレンス

bedrock-protocol パッケージからエクスポートされる主な要素のリファレンスです。型定義はリポジトリの index.d.ts が正式な情報源です。

エクスポート一覧

js
const {
  createClient,
  createServer,
  ping,
  Relay
} = require('bedrock-protocol')
名前説明
createClient(options)(options: ClientOptions) => Clientクライアントを作成し、サーバーへ接続する
createServer(options)(options: ServerOptions) => Serverサーバーを作成し、待ち受けを開始する
ping({ host, port })Promise<ServerAdvertisement>サーバーへ ping を送り、状態を取得する
Relayclass extends ServerMITM プロキシ。new Relay(options) + listen()
Client / Serverclassクラス本体。delayedInit などによる手動ライフサイクル用に直接コンストラクト可能
titleprismarine-auth の Titles認証タイトル定数(Titles.MinecraftNintendoSwitch など)。詳細はエコシステムガイド
ServerAdvertisementclassMOTD データクラス。toString() / fromString() / toBuffer() を持つ(下記)

Connection(共通基底クラス)

ClientPlayer の共通の親クラスです。

プロパティ

名前説明
statusClientStatus接続状態(Disconnected / Authenticating / Initializing / Initialized)

メソッド

write(name, params)

パケットを Protodef でシリアライズし、キューを介さず即座に送信 します。

js
client.write('text', { /* ... */ })

queue(name, params)

パケットを送信キューに入れ、次の送信バッチでまとめて送ります(デフォルト 20ms 間隔)。通常はこちらを推奨。

sendBuffer(buffer, immediate?)

Protodef シリアライズを スキップ して、既に構築済みの MCPE バイト列(Buffer)をそのまま送ります。immediate: true でキューを無視して即送信します。低レベル操作用です。

バージョン比較ヘルパー

接続相手のバージョンと比較します。バージョン分岐の実装に使えます。

js
if (player.versionLessThan('1.21.130')) {
  // 古いバージョン向けのフィールド構成
}
メソッド意味
versionLessThan(v)相手 < v
versionGreaterThan(v)相手 > v
versionGreaterThanOrEqualTo(v)相手 >= v
versionLessThanOrEqualTo(v)相手 <= v(index.d.ts 未記載だが実装あり)

Client

Connection を継承。サーバーに接続する側です。型定義にないメンバーも含めて記載します。

メンバー説明
entityId (readonly)サーバーが割り当てたエンティティ ID(BigInt)。実体は startGameData.runtime_entity_id
startGameData受信した start_game パケットの中身(スポーン座標・ゲームモード・ワールド設定など)
profile / username認証後に確定するプロファイル { name, uuid, xuid } と表示名
ping()接続先への RakNet ping(接続前の疎通確認)
connect()手動フロー用。delayedInit: true + connect_allowed 後に呼ぶ(ガイド)
close(reason?)接続を閉じて退出する
disconnect()disconnect パケットを送ってから切断する

Player

Connection を継承。サーバーに接続してきたプレイヤーを表します。

プロパティ

名前説明
profile{ xuid, uuid, name } | undefined検証済みプロファイル情報
versionstringクライアントのプロトコルバージョン(数値)
authenticationAuthenticationResult認証結果。詳細はサーバーガイド参照
userDataobjectログイン JWT の identity ペイロード全体(displayName / XUID / identity(UUID) 等)。getUserData() と同一
skinDataobjectログイン JWT の clientData ペイロード(スキン情報)。Relay では上流への転送に使われる

メソッド

メソッド説明
getUserData()ユーザーデータ(XUID・UUID・表示名・スキン等)を取得
sendDisconnectStatus(playStatus)ログイン完了前に PlayStatus で切断する(例: 'failed_server_full')
disconnect(reason, hide?)理由を表示して切断。hide: true で理由を非表示
close()RakNet 接続を閉じる(disconnect からも呼ばれる)

Server

メンバー説明
clients接続中のプレイヤー一覧。実装はオブジェクト(キーは 接続アドレス、値は Player)。index.d.ts では Map 扱いだが実体は plain object
clientCount現在の接続数
advertisement内部保持の ServerAdvertisement インスタンス(オンライン人数は毎秒自動更新)
conLogログ出力関数
listen()待ち受けを開始する(Promise)
close(disconnectReason?)全員に切断を通知して終了する(Promise)
getAdvertisement()現在の告知データを返す。advertisementFn 指定時はその結果
setCompressor(algorithm, level, threshold)圧縮設定を実行時に変更('none' / 'deflate' / 'snappy')
versionLessThan(v)サーバー自身のバージョン比較ヘルパー

ServerAdvertisement

ping 応答・サーバー告知のデータクラスです。既定値:motd = 'Bedrock Protocol Server'levelName = 'bedrock-protocol'playersMax = 5(createServer では maxPlayers で上書き)、gamemode = 'Creative'

フィールド一覧は ping ガイド を参照してください。

js
const adv = new ServerAdvertisement({ motd: 'My Server' }, 19132, '1.21.50')
adv.playersMax = 100

adv.toString()                       // RakNet の PONG 文字列形式(MCPE;...;)
ServerAdvertisement.fromString(str)  // 文字列 → インスタンス
adv.toBuffer()                       // length プレフィックス付き Buffer

Relay

Server を継承した MITM プロキシクラスです。詳細は Relay ガイド を参照してください。

メンバー説明
upstreamsMap<addressHash, Client> — 上流(バックエンド)への接続一覧
forceSingle1 クライアント制限の有効フラグ
enableChunkCachingチャンクキャッシュの有効フラグ
openUpstreamConnection(player, addr) / closeUpstreamConnection(addr)上流接続の手動管理