diff --git a/src/pocketmine/network/mcpe/ChunkCache.php b/src/pocketmine/network/mcpe/ChunkCache.php index 8249175e0b..c648cd7bac 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 066718122d..8a8ff3ff90 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 0000000000..1d7134bcbe --- /dev/null +++ b/src/pocketmine/world/ChunkListenerNoOpTrait.php @@ -0,0 +1,54 @@ +