diff --git a/src/API/BanAPI.php b/src/API/BanAPI.php index 8b6aed653..f733927bd 100644 --- a/src/API/BanAPI.php +++ b/src/API/BanAPI.php @@ -56,6 +56,7 @@ class BanAPI{ $this->server->addHandler("console.command", array($this, "permissionsCheck"), 1); $this->server->addHandler("player.block.break", array($this, "permissionsCheck"), 1); $this->server->addHandler("player.block.place", array($this, "permissionsCheck"), 1); + $this->server->addHandler("player.flying", array($this, "permissionsCheck"), 1); } public function cmdWhitelist($cmd){ @@ -74,6 +75,11 @@ class BanAPI{ public function permissionsCheck($data, $event){ switch($event){ + case "player.flying": + if($this->isOp($data->iusername)){ + return true; + } + break; case "player.block.break": case "player.block.place": if(!$this->isOp($data["player"]->iusername)){ diff --git a/src/world/Entity.php b/src/world/Entity.php index 7ec998c52..d75d0ed1d 100644 --- a/src/world/Entity.php +++ b/src/world/Entity.php @@ -351,7 +351,7 @@ class Entity extends stdClass{ $this->fallY = $y; $this->fallStart = microtime(true); }elseif($this->class === ENTITY_PLAYER and ($this->fallStart + 5) < microtime(true)){ - if($this->player->gamemode !== CREATIVE and $this->server->api->getProperty("allow-flight") !== true){ + if($this->player->gamemode !== CREATIVE and $this->server->api->getProperty("allow-flight") !== true and $this->server->handle("player.flying", $this->player) !== true){ $this->player->close("flying"); return; }