my code works but when I click on the button "submit" nothing happens FormAPI PHP: public function playerSelector(Player $sender){ $api = $this->getServer()->getPluginManager()->getPlugin("FormAPI"); $form = $api->createCustomForm(function (Player $sender, array $data){ switch($data[0]){ case 0: $sender->sendMessage("test"); break; case 1: $sender->sendMessage("test"); break; case 2: $sender->sendMessage("test"); break; } }); $form->setTitle(""); foreach($this->getServer()->getOnlinePlayers() as $online){ $name = $online->getName(); } $form->addDropdown("Player Liste:", array("1", "2", "3")); $form->sendToPlayer($sender); } other API PHP: public function playerSelector(Player $player){ $ui = new CustomForm("Player Selector","......."); foreach($this->getServer()->getOnlinePlayers() as $online){ $name = $online->getName(); } $Dropdown = new Dropdown("Player Liste:", array($name)); $ui->addElement($Dropdown); $pk = new ModalFormRequestPacket(); $pk->formId = 111; $pk->formData = json_encode($ui); $player->dataPacket($pk); return true; } PHP: public function DataPacketReceiveEvent(DataPacketReceiveEvent $event){ $packet = $event->getPacket(); $player = $event->getPlayer(); if($packet instanceof ModalFormResponsePacket){ $id = $packet->formId; $data = $packet->formData; $data = json_decode($data); if($data === Null) return true; if($id === 111){ if($data === 0){ $player->sendMessage("TEST"); return true; } } } } }
PHP: if($data === Null) return true; if($id === 111){ if($data === 0){ $player->sendMessage("TEST"); return true; } }} calculate brackets
Your code looks fine to me, I modified it a bit and this worked for me: PHP: <?php//form apipublic function sendForm(Player $player) { $api = $this->plugin->getServer()->getPluginManager()->getPlugin("FormAPI"); if(is_null($api)) { return False; } $function = function(Player $player, array $data) { if(empty($data)) { //player closed the UI return; } switch($data[0]) { case 0: // this is "1" //code here; break; case 1: // this is "2" //code here; break; case 2: // this is "3" //code here; break; } }; $form = $api->createCustomForm($function); $form->addDropdown("Player Liste:", ["1", "2", "3"]); $form->sendToPlayer($player);}
Never used the "other api", FormAPI will be discontinued soon I suggest using the 'forms-api' branch of PMMP.
The same way you provided the array for the dropdown can be used to get its value. So an example code would be: Code: $choosen = $previousArray[$data];