diff --git a/src/API/PlayerAPI.php b/src/API/PlayerAPI.php index bc919fffc..d8fdf5466 100644 --- a/src/API/PlayerAPI.php +++ b/src/API/PlayerAPI.php @@ -95,7 +95,7 @@ class PlayerAPI{ $message .= " hit the ground too hard"; break; case "flying": - $message .= " tried to get up to the sky"; + $message .= " tried to fly up to the sky"; break; default: $message .= " died"; @@ -176,6 +176,7 @@ class PlayerAPI{ if($player !== false){ $player->entity->setPosition($x, $y, $z, 0, 0); $player->fallY = false; + $player->fallStart = false; $player->dataPacket(MC_MOVE_PLAYER, array( "eid" => 0, "x" => $x, @@ -185,6 +186,7 @@ class PlayerAPI{ "pitch" => 0, )); $player->fallY = false; + $player->fallStart = false; return true; } return false; diff --git a/src/classes/material/IDs.php b/src/classes/material/IDs.php index 910300ba4..7d4c7eca4 100644 --- a/src/classes/material/IDs.php +++ b/src/classes/material/IDs.php @@ -275,9 +275,4 @@ define("NETHER_BRICK", 405); define("QUARTZ", 406); define("NETHER_QUARTZ", 406); -define("CAMERA", 456); - -/* - -define("", ); -*/ \ No newline at end of file +define("CAMERA", 456); \ No newline at end of file diff --git a/src/classes/material/item/generic/Painting.php b/src/classes/material/item/generic/Painting.php index dcd50a3bd..27dadfd20 100644 --- a/src/classes/material/item/generic/Painting.php +++ b/src/classes/material/item/generic/Painting.php @@ -33,11 +33,19 @@ class PaintingItem extends Item{ public function onActivate(BlockAPI $level, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ if($target->isTransparent === false and $face > 1){ + $faces = array( + 2 => 1, + 3 => 3, + 4 => 0, + 5 => 2, + + ); + $data = array( "x" => $target->x, "y" => $target->y, "z" => $target->z, - "yaw" => ($face % 4) * 90, + "yaw" => $faces[$face] * 90, ); $server = ServerAPI::request(); $e = $server->api->entity->add(ENTITY_OBJECT, OBJECT_PAINTING, $data); diff --git a/src/classes/world/Entity.php b/src/classes/world/Entity.php index 9782ac5b0..f12dd68d6 100644 --- a/src/classes/world/Entity.php +++ b/src/classes/world/Entity.php @@ -281,7 +281,9 @@ class Entity extends stdClass{ } if($this->fallY !== false and ($this->fallStart + 8) < microtime(true)){ //Flying $this->harm(1, "flying"); - $this->fallY = $y; + if($y > $this->fallY){ + $this->fallY = $y; + } } }elseif($this->fallY !== false){ //Fall damage! if($y < $this->fallY){ @@ -548,6 +550,8 @@ class Entity extends stdClass{ $this->air = 300; $this->fire = 0; $this->crouched = false; + $this->fallY = false; + $this->fallStart = false; $this->updateMetadata(); $this->dead = true; $this->server->api->dhandle("entity.event", array("entity" => $this, "event" => 3)); //Entity dead