From 056d24c67dc2c2d330100b55f23566c3efa7d1c3 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 22 Jun 2018 19:39:18 +0100 Subject: [PATCH 1/4] Add MUTTON as an ID constant fixes crashdump #518862 - Unable to resolve "minecraft:mutton" to a valid item PC refers to these as just mutton, but PE calls them muttonraw --- src/pocketmine/item/ItemIds.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/item/ItemIds.php b/src/pocketmine/item/ItemIds.php index 2fe989bb2..79cfb00e5 100644 --- a/src/pocketmine/item/ItemIds.php +++ b/src/pocketmine/item/ItemIds.php @@ -193,7 +193,7 @@ interface ItemIds extends BlockIds{ public const LEAD = 420; public const NAMETAG = 421, NAME_TAG = 421; public const PRISMARINE_CRYSTALS = 422; - public const MUTTONRAW = 423, MUTTON_RAW = 423, RAW_MUTTON = 423; + public const MUTTON = 423, MUTTONRAW = 423, MUTTON_RAW = 423, RAW_MUTTON = 423; public const COOKED_MUTTON = 424, MUTTONCOOKED = 424, MUTTON_COOKED = 424; public const ARMOR_STAND = 425; public const END_CRYSTAL = 426; From 87852f2fe175ad22a85e1225150f1bf342f2f7ae Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 22 Jun 2018 21:31:22 +0100 Subject: [PATCH 2/4] EmeraldOre: remove excess indentation --- src/pocketmine/block/EmeraldOre.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/block/EmeraldOre.php b/src/pocketmine/block/EmeraldOre.php index 7e790702a..e6d6cfbe6 100644 --- a/src/pocketmine/block/EmeraldOre.php +++ b/src/pocketmine/block/EmeraldOre.php @@ -53,7 +53,7 @@ class EmeraldOre extends Solid{ public function getDropsForCompatibleTool(Item $item) : array{ return [ - ItemFactory::get(Item::EMERALD) + ItemFactory::get(Item::EMERALD) ]; } } From dd6b5902a6537f37eda563c3de7496f550d9c836 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 22 Jun 2018 21:35:58 +0100 Subject: [PATCH 3/4] EmeraldOre: fixed not dropping XP on break --- src/pocketmine/block/EmeraldOre.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pocketmine/block/EmeraldOre.php b/src/pocketmine/block/EmeraldOre.php index e6d6cfbe6..7dcbcde65 100644 --- a/src/pocketmine/block/EmeraldOre.php +++ b/src/pocketmine/block/EmeraldOre.php @@ -56,4 +56,8 @@ class EmeraldOre extends Solid{ ItemFactory::get(Item::EMERALD) ]; } + + protected function getXpDropAmount() : int{ + return mt_rand(3, 7); + } } From 76174f192036cad1436e9f8f085d92bf3f472db0 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 23 Jun 2018 13:02:19 +0100 Subject: [PATCH 4/4] Explosion: avoid leaving arrows stuck in nonexistent blocks --- src/pocketmine/level/Explosion.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pocketmine/level/Explosion.php b/src/pocketmine/level/Explosion.php index 49300a66f..cc45e2082 100644 --- a/src/pocketmine/level/Explosion.php +++ b/src/pocketmine/level/Explosion.php @@ -236,6 +236,9 @@ class Explosion{ if(!isset($this->affectedBlocks[$index = Level::blockHash($sideBlock->x, $sideBlock->y, $sideBlock->z)]) and !isset($updateBlocks[$index])){ $this->level->getServer()->getPluginManager()->callEvent($ev = new BlockUpdateEvent($this->level->getBlockAt($sideBlock->x, $sideBlock->y, $sideBlock->z))); if(!$ev->isCancelled()){ + foreach($this->level->getNearbyEntities(new AxisAlignedBB($sideBlock->x - 1, $sideBlock->y - 1, $sideBlock->z - 1, $sideBlock->x + 2, $sideBlock->y + 2, $sideBlock->z + 2)) as $entity){ + $entity->onNearbyBlockChange(); + } $ev->getBlock()->onNearbyBlockChange(); } $updateBlocks[$index] = true;