ここに書いてあるコード、情報に誤りがあり、あなたにいかなる損害を与えたとしても私は責任を負わないものとします。 2017/10/05 wakame0731
1.2のアップデートで設定画面に独自のフォームが出せるようになりました。
ここではその出し方について説明したいと思います。
{
"type": "custom_form",
"title": "タイトル",
"icon":[
"type" =>"url",
"data":"https://minecraft-ja.gamepedia.com/media/minecraft-ja.gamepedia.com/c/c5/Grass.png"
],
"content": [
{
"type": "label",
"text": "テキストはこれで書く"
},
{
"type": "input",
"text": "inputText",
"placeholder": "placeholder",
"default": "Default"
}
]
}
基本的にはModalFormの時と同じです。ただ、設定画面に出すときのみiconを設定してあげることができます。
use pocketmine\network\mcpe\protocol\ServerSettingsRequestPacket;
use pocketmine\network\mcpe\protocol\ServerSettingsResponsePacket;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\Player;
function D(DataPacketReceiveEvent $e){
$p = $e->getPlayer();
$pk = $e->getPacket();
if ($pk instanceof ServerSettingsRequestPacket) {
$packet = new ServerSettingsResponsePacket();
$packet->formId = $id;//FormのID
$packet->formData =$data//jsonのデータ
$p->dataPacket($packet);
}
}
軽く説明すると、ServerSettingsRequestPacketがクライアントから送られてきたときにServerSettingsResponsePacketをサーバー側から送ってあげれば、サーバーの設定画面にオリジナルのフォームを出すことができます。
フォームに入力されたデータは設定画面が閉じられたときにModalFormResponsePacketで返ってきます。
その部分に関してはhttps://gist.github.com/wakame0731/144a02b8e79f625ddd92edd61032147c で書いたので省略します。