diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index bbca13299..70f5e3344 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -3340,6 +3340,9 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ $pk = new ModalFormRequestPacket(); $pk->formId = $id; $pk->formData = json_encode($form); + if($pk->formData === false){ + throw new \InvalidArgumentException("Failed to encode form JSON: " . json_last_error_msg()); + } if($this->dataPacket($pk)){ $this->forms[$id] = $form; } diff --git a/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter.php b/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter.php index 5186cdd6a..adecfab3d 100644 --- a/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter.php +++ b/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter.php @@ -79,6 +79,10 @@ class PlayerNetworkSessionAdapter extends NetworkSession{ } public function handleDataPacket(DataPacket $packet){ + if(!$this->player->isConnected()){ + return; + } + $timings = Timings::getReceiveDataPacketTimings($packet); $timings->startTiming();