2

Minecraft のコントロール パネルを作成していますが、各画面にコマンドを送信する方法がわかりません。画面に対してコマンドを実行する方法は理解できますが、出力を読む方法はわかりません。

元。画面Aと画面Bがあります。画面Aで何かを実行し、出力を取得してから画面を終了したいです。

4

2 に答える 2

4

より簡単な解決策は次のとおりです。両方のサーバーでWebsend bukkit プラグイン(Download&info)を使用します。プラグインがインストールされ、php クラスが設定されている場合、PHP は単純にコマンドを実行して出力を受け取ることができます。また、これは bash スクリーンよりも複雑で、設定と使用がはるかに簡単です。

これの使用例を次に示します。

<?php
include_once 'Websend.php';

//Replace with bukkit server IP. To use a different port, change the constructor to new Websend(ip, port)
$ws = new Websend($ServerIP, $ServerPort); 

//Replace with password specified in Websend config file
$ws->connect("password");

$ws->doCommandAsConsole("give ".$PlayerName." 64 1");
$ws->disconnect();
?>

この例では、変数定義されたプレイヤーへのスクリプト アイテムです。$ws->doCommandAsConsole("give ".$PlayerName." 64 1");' to$ws->doCommandAsConsole("$_REQUEST['customCMD']");を置き換えることで、カスタム変数コマンドを実行できます。ここで、customCMD は GET または POST フォームのフィールドです。

于 2012-10-15T15:10:47.603 に答える
1

実際にはプラグインは必要ありませんが、shell_exec を使用すると、セキュリティに関して大きな苦痛の世界が開かれる可能性があることに注意してください。

ただし、drupal でコントロール パネルを実装する際にも同様の問題がありました。次のコードを使用して、画面にコマンドを実行することができました。

shell_exec("screen -S ScreenName -X stuff \"echo hello world\"'\n'");

どういたしまして。

于 2013-10-07T13:16:27.507 に答える