diff --git a/composer.lock b/composer.lock index 85476965b..cbdae5d2d 100644 --- a/composer.lock +++ b/composer.lock @@ -277,7 +277,7 @@ { "name": "Berry Langerak", "email": "berry@berryllium.nl", - "role": "developer" + "role": "Developer" }, { "name": "Rick van der Staaij", @@ -372,12 +372,12 @@ "source": { "type": "git", "url": "https://github.com/pmmp/NBT.git", - "reference": "38485dbfa94a80b8c5439457307a70ee0703d579" + "reference": "359149d516a042ef366f3bf234c0a9daa4d5ea2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/NBT/zipball/38485dbfa94a80b8c5439457307a70ee0703d579", - "reference": "38485dbfa94a80b8c5439457307a70ee0703d579", + "url": "https://api.github.com/repos/pmmp/NBT/zipball/359149d516a042ef366f3bf234c0a9daa4d5ea2e", + "reference": "359149d516a042ef366f3bf234c0a9daa4d5ea2e", "shasum": "" }, "require": { @@ -405,7 +405,7 @@ "source": "https://github.com/pmmp/NBT/tree/master", "issues": "https://github.com/pmmp/NBT/issues" }, - "time": "2019-04-13T14:34:37+00:00" + "time": "2019-04-25T18:53:18+00:00" }, { "name": "pocketmine/raklib", @@ -413,12 +413,12 @@ "source": { "type": "git", "url": "https://github.com/pmmp/RakLib.git", - "reference": "a0be471c23bf5d896c8ed394b1c7a377c86cde71" + "reference": "3b075c62693824b44b50ea3787b88116c7c56926" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pmmp/RakLib/zipball/a0be471c23bf5d896c8ed394b1c7a377c86cde71", - "reference": "a0be471c23bf5d896c8ed394b1c7a377c86cde71", + "url": "https://api.github.com/repos/pmmp/RakLib/zipball/3b075c62693824b44b50ea3787b88116c7c56926", + "reference": "3b075c62693824b44b50ea3787b88116c7c56926", "shasum": "" }, "require": { @@ -446,7 +446,7 @@ "source": "https://github.com/pmmp/RakLib/tree/master", "issues": "https://github.com/pmmp/RakLib/issues" }, - "time": "2019-04-22T19:12:20+00:00" + "time": "2019-05-02T15:09:56+00:00" }, { "name": "pocketmine/snooze", diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 4ffb989eb..3964f017b 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -26,6 +26,7 @@ declare(strict_types=1); */ namespace pocketmine\level; +use pocketmine\block\Air; use pocketmine\block\Block; use pocketmine\block\BlockFactory; use pocketmine\block\BlockLegacyIds; @@ -1681,7 +1682,7 @@ class Level implements ChunkManager, Metadatable{ if($player !== null){ $ev = new BlockBreakEvent($player, $target, $item, $player->isCreative(), $drops, $xpDrop); - if(($player->isSurvival() and !$target->isBreakable($item)) or $player->isSpectator()){ + if($target instanceof Air or ($player->isSurvival() and !$target->isBreakable($item)) or $player->isSpectator()){ $ev->setCancelled(); } diff --git a/src/pocketmine/network/mcpe/handler/ResourcePacksSessionHandler.php b/src/pocketmine/network/mcpe/handler/ResourcePacksSessionHandler.php index 0b6d2ae1e..d51716a13 100644 --- a/src/pocketmine/network/mcpe/handler/ResourcePacksSessionHandler.php +++ b/src/pocketmine/network/mcpe/handler/ResourcePacksSessionHandler.php @@ -82,7 +82,13 @@ class ResourcePacksSessionHandler extends SessionHandler{ break; case ResourcePackClientResponsePacket::STATUS_SEND_PACKS: foreach($packet->packIds as $uuid){ - $pack = $this->resourcePackManager->getPackById(substr($uuid, 0, strpos($uuid, "_"))); + //dirty hack for mojang's dirty hack for versions + $splitPos = strpos($uuid, "_"); + if($splitPos !== false){ + $uuid = substr($uuid, 0, $splitPos); + } + $pack = $this->resourcePackManager->getPackById($uuid); + if(!($pack instanceof ResourcePack)){ //Client requested a resource pack but we don't have it available on the server $this->disconnectWithError("Unknown pack $uuid requested, available packs: " . implode(", ", $this->resourcePackManager->getPackIdList()));