現在接続されているプレイヤーのリストを取得するための RESTful API を持つ Twisted Python サーバーで Minecraft サーバー アプリケーションをラップする作業を行っています。Twisted アプリは、reactor.spawnProcess()を介して minecraft サーバーを起動し、標準入力に書き込むProcessTransportを介して通信します。stdout と stdin の読み取りは、別のprotocol.ProcessProtocolクラスによって処理されます。
非常に具体的なコマンド (「list」コマンド、次のような結果を返す) の結果を取得したい場合:
[INFO] Connected players: blah, blah2
stdout でプレーヤー リストの行を選択できる場合、接続されているプレーヤーのリストを要求している RESTful API ビューにこれを配信する最良の方法は何ですか? 私のstdout リーダーは、接続されているプレーヤーのリストを取得しようとしている関数と直接通信できないことに注意してください。ビューと stdout リーダーが直接接続されていないため、stdout を解析して、配信するプレーヤー リストを特定できます。接続されたプレーヤー リストをクライアントに送信する Web API ビューにそれを配信する方法がわかりません。コンタクト。
これを処理するためのハックな方法がいくつかありますが、誰かがアイデアを持っている場合は、これを「正しい方法」で行うことをお勧めします。