From 30c3718ea811b6ad6403c0f108244f0df6198c85 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 20 Oct 2014 12:58:05 +0200 Subject: [PATCH 1/6] Improved Explosion item drop position --- src/pocketmine/level/Explosion.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/level/Explosion.php b/src/pocketmine/level/Explosion.php index 4be81852b7..c22441dab6 100644 --- a/src/pocketmine/level/Explosion.php +++ b/src/pocketmine/level/Explosion.php @@ -205,7 +205,7 @@ class Explosion{ $tnt->spawnToAll(); }elseif(mt_rand(0, 100) < $yield){ foreach($block->getDrops($air) as $drop){ - $this->level->dropItem($block, Item::get(...$drop)); + $this->level->dropItem($block->add(0.5, 0.5, 0.5), Item::get(...$drop)); } } $this->level->setBlockIdAt($block->x, $block->y, $block->z, 0); From ef97efcd96672244455802d90383a35699cb1e4c Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 20 Oct 2014 13:00:03 +0200 Subject: [PATCH 2/6] Added explosion death message --- src/pocketmine/Player.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 85265c25a7..0be6cb83cc 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2424,6 +2424,9 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ case EntityDamageEvent::CAUSE_BLOCK_EXPLOSION: case EntityDamageEvent::CAUSE_ENTITY_EXPLOSION: + $message = $this->getName() . " blew up"; + break; + case EntityDamageEvent::CAUSE_MAGIC: case EntityDamageEvent::CAUSE_CUSTOM: From 5310ba3ae62d6eb3ea147344959bd97367202522 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 20 Oct 2014 13:06:53 +0200 Subject: [PATCH 3/6] Fixed crash when doing var_dump() of anything that contains the Server object --- src/pocketmine/Server.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 1e3272ab3f..b4700540b7 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -1988,7 +1988,7 @@ class Server{ } public function __debugInfo(){ - return get_class($this); + return []; } private function tickProcessor(){ From 8f7dfe0b717301904b4e1d9567c7c5ff7e61983f Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 21 Oct 2014 18:37:29 +0200 Subject: [PATCH 4/6] Removed extra ; from if, fixes #2205 --- src/pocketmine/Player.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 0be6cb83cc..b6e91472c4 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -863,7 +863,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $time = $this->level->getTime() % Level::TIME_FULL; - if($time >= Level::TIME_NIGHT and $time < Level::TIME_SUNRISE);{ + if($time >= Level::TIME_NIGHT and $time < Level::TIME_SUNRISE){ foreach($this->level->getPlayers() as $p){ if($p->sleeping === false){ return; @@ -2620,4 +2620,4 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ } -} \ No newline at end of file +} From 580ade9092602f6f39d1f28a3b987b3c85200ec4 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 21 Oct 2014 19:26:16 +0200 Subject: [PATCH 5/6] Possible fix for entities not closing correctly --- src/pocketmine/entity/Entity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pocketmine/entity/Entity.php b/src/pocketmine/entity/Entity.php index 80209d80ca..2ebce59fcf 100644 --- a/src/pocketmine/entity/Entity.php +++ b/src/pocketmine/entity/Entity.php @@ -1175,7 +1175,7 @@ abstract class Entity extends Location implements Metadatable{ } public function close(){ - if($this->closed === false){ + if(!$this->closed){ $this->server->getPluginManager()->callEvent(new EntityDespawnEvent($this)); $this->closed = true; unset($this->level->updateEntities[$this->id]); From 516bb37a509282dc7af97344ad2d627d9168e7b1 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Tue, 21 Oct 2014 19:28:29 +0200 Subject: [PATCH 6/6] Removed some direct type checks on Entity/Tile->closed --- src/pocketmine/level/format/anvil/Chunk.php | 2 +- src/pocketmine/tile/Tile.php | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pocketmine/level/format/anvil/Chunk.php b/src/pocketmine/level/format/anvil/Chunk.php index 0373a0d567..1fccad31f0 100644 --- a/src/pocketmine/level/format/anvil/Chunk.php +++ b/src/pocketmine/level/format/anvil/Chunk.php @@ -170,7 +170,7 @@ class Chunk extends BaseChunk{ $entities = []; foreach($this->getEntities() as $entity){ - if(!($entity instanceof Player) and $entity->closed !== true){ + if(!($entity instanceof Player) and !$entity->closed){ $entity->saveNBT(); $entities[] = $entity->namedtag; } diff --git a/src/pocketmine/tile/Tile.php b/src/pocketmine/tile/Tile.php index 2444e6b337..b87fd6a43b 100644 --- a/src/pocketmine/tile/Tile.php +++ b/src/pocketmine/tile/Tile.php @@ -49,7 +49,7 @@ abstract class Tile extends Position{ public $z; public $attach; public $metadata; - public $closed; + public $closed = false; public $namedtag; protected $lastUpdate; protected $server; @@ -69,7 +69,6 @@ abstract class Tile extends Position{ $this->chunk = $chunk; $this->setLevel($chunk->getProvider()->getLevel()); $this->namedtag = $nbt; - $this->closed = false; $this->name = ""; $this->lastUpdate = microtime(true); $this->id = Tile::$tileCount++; @@ -112,7 +111,7 @@ abstract class Tile extends Position{ } public function close(){ - if($this->closed === false){ + if(!$this->closed){ $this->closed = true; unset($this->level->updateTiles[$this->id]); if($this->chunk instanceof FullChunk){