From edccce1419ef9185648090dd0d90297368628ee2 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Tue, 25 Jun 2019 16:23:43 +0100 Subject: [PATCH] added ChunkListenerNoOpTrait to reduce chunklistener boilerplate --- src/pocketmine/network/mcpe/ChunkCache.php | 24 +++------ src/pocketmine/player/Player.php | 21 ++------ .../world/ChunkListenerNoOpTrait.php | 54 +++++++++++++++++++ 3 files changed, 67 insertions(+), 32 deletions(-) create mode 100644 src/pocketmine/world/ChunkListenerNoOpTrait.php diff --git a/src/pocketmine/network/mcpe/ChunkCache.php b/src/pocketmine/network/mcpe/ChunkCache.php index 8249175e0..c648cd7ba 100644 --- a/src/pocketmine/network/mcpe/ChunkCache.php +++ b/src/pocketmine/network/mcpe/ChunkCache.php @@ -25,6 +25,7 @@ namespace pocketmine\network\mcpe; use pocketmine\math\Vector3; use pocketmine\world\ChunkListener; +use pocketmine\world\ChunkListenerNoOpTrait; use pocketmine\world\format\Chunk; use pocketmine\world\World; use function spl_object_id; @@ -159,6 +160,13 @@ class ChunkCache implements ChunkListener{ } } + use ChunkListenerNoOpTrait { + //force overriding of these + onChunkChanged as private; + onBlockChanged as private; + onChunkUnloaded as private; + } + /** * @see ChunkListener::onChunkChanged() * @param Chunk $chunk @@ -187,22 +195,6 @@ class ChunkCache implements ChunkListener{ $this->world->unregisterChunkListener($this, $chunk->getX(), $chunk->getZ()); } - /** - * @see ChunkListener::onChunkLoaded() - * @param Chunk $chunk - */ - public function onChunkLoaded(Chunk $chunk) : void{ - //NOOP - } - - /** - * @see ChunkListener::onChunkPopulated() - * @param Chunk $chunk - */ - public function onChunkPopulated(Chunk $chunk) : void{ - //NOOP - we also receive this in onChunkChanged, so we don't care here - } - /** * Returns the number of bytes occupied by the cache data in this cache. This does not include the size of any * promises referenced by the cache. diff --git a/src/pocketmine/player/Player.php b/src/pocketmine/player/Player.php index 066718122..8a8ff3ff9 100644 --- a/src/pocketmine/player/Player.php +++ b/src/pocketmine/player/Player.php @@ -104,6 +104,7 @@ use pocketmine\timings\Timings; use pocketmine\utils\TextFormat; use pocketmine\utils\UUID; use pocketmine\world\ChunkListener; +use pocketmine\world\ChunkListenerNoOpTrait; use pocketmine\world\ChunkLoader; use pocketmine\world\format\Chunk; use pocketmine\world\particle\PunchBlockParticle; @@ -2701,26 +2702,14 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener, $this->server->getPlayerMetadata()->removeMetadata($this, $metadataKey, $owningPlugin); } + use ChunkListenerNoOpTrait { + onChunkChanged as private; + } + public function onChunkChanged(Chunk $chunk) : void{ if(isset($this->usedChunks[$hash = World::chunkHash($chunk->getX(), $chunk->getZ())])){ $this->usedChunks[$hash] = false; $this->nextChunkOrderRun = 0; } } - - public function onChunkLoaded(Chunk $chunk) : void{ - - } - - public function onChunkPopulated(Chunk $chunk) : void{ - - } - - public function onChunkUnloaded(Chunk $chunk) : void{ - - } - - public function onBlockChanged(Vector3 $block) : void{ - - } } diff --git a/src/pocketmine/world/ChunkListenerNoOpTrait.php b/src/pocketmine/world/ChunkListenerNoOpTrait.php new file mode 100644 index 000000000..1d7134bcb --- /dev/null +++ b/src/pocketmine/world/ChunkListenerNoOpTrait.php @@ -0,0 +1,54 @@ +