From 9242f89221847cb8989919d869478aee7c90ae86 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 7 Oct 2016 12:04:23 +0100 Subject: [PATCH] Add PlayerToggleFlightEvent --- src/pocketmine/Player.php | 8 +++- .../event/player/PlayerToggleFlightEvent.php | 42 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/pocketmine/event/player/PlayerToggleFlightEvent.php diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index a88d6d891..5b7b6f555 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -60,6 +60,7 @@ use pocketmine\event\player\PlayerMoveEvent; use pocketmine\event\player\PlayerPreLoginEvent; use pocketmine\event\player\PlayerQuitEvent; use pocketmine\event\player\PlayerRespawnEvent; +use pocketmine\event\player\PlayerToggleFlightEvent; use pocketmine\event\player\PlayerToggleSneakEvent; use pocketmine\event\player\PlayerToggleSprintEvent; use pocketmine\event\server\DataPacketReceiveEvent; @@ -1849,7 +1850,12 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade $this->kick("Flying is not enabled on this server"); break; }else{ - $this->isFlying = $packet->isFlying; + $this->server->getPluginManager()->callEvent($ev = new PlayerToggleFlightEvent($this, $packet->isFlying)); + if($ev->isCancelled()){ + $this->sendSettings(); + }else{ + $this->isFlying = $ev->isFlying(); + } break; } break; diff --git a/src/pocketmine/event/player/PlayerToggleFlightEvent.php b/src/pocketmine/event/player/PlayerToggleFlightEvent.php new file mode 100644 index 000000000..d5d53deba --- /dev/null +++ b/src/pocketmine/event/player/PlayerToggleFlightEvent.php @@ -0,0 +1,42 @@ +player = $player; + $this->isFlying = (bool) $isFlying; + } + + public function isFlying(){ + return $this->isFlying; + } + +} \ No newline at end of file