はじめに
以下のチャット画面の最下部にコマンド入力フォームを設置して、Webブラウザで入力したコマンドをマインクラフト側で実行できるようにしました。
上の画面はReact版のものですが、jQuery版にも同じように実装しています。
動作環境
- プラットフォーム
- Windows10
- マインクラフト(統合版)
- Windows Edition v1.21.2
- ブラウザ
- Chrome v127.0.6533.120
- socket-manager
- v1.14.0
- 言語
- PHP v8.2.4(v8.1.0以降)
使い方
折角なのでWebsocketサーバーでのみ使える以下の隠しコマンドを使ってみます。
- agent create
- プレイヤー専用のエージェントを呼び出します。
- agent tp <coordinates>
- エージェントを指定した座標へテレポートします。
まずは以下のようにコマンド実行先にあたるマインクラフトユーザーの名前を入力します。
今回の場合「マイクラー」という名前がマインクラフト側から接続しているユーザー名です。
そして以下のようにエージェントの作成コマンドを実行してみます。
マインクラフトの画面でリアルタイムに連携されている事がわかると思います。
マインクラフトからのレスポンスも反映していますので、例えばsummonコマンドをsammonと打ち間違えていたとしても以下のようにエラーの内容が赤字で表示されるようにしています。
おわりに
動作確認をするためにはWebsocketサーバーをあらかじめ起動した状態で、Webブラウザとマインクラフトからの接続を完了しておく必要があります。
接続手順や画面の起動方法については以下のページでご紹介しています。
ここで入力されたコマンドはそのままマインクラフト上で実行されますが、実行者がエンティティである事を前提としている一部のコマンド(例えばexecuteコマンド)では使えないものがあるので注意が必要です。
そんなわけでWebsocketサーバー側の実装では全てのコマンドが使えるわけではありませんが、独自の隠しコマンドも存在するため、どのコマンドが利用可能で隠しコマンドがどのように利用できるのかを、この機能を使って調査していく事ができます。
以下の実装を確認する際にも利用しています。