mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-27 21:59:52 +00:00
added ChunkListenerNoOpTrait to reduce chunklistener boilerplate
This commit is contained in:
parent
d85a27c5b2
commit
edccce1419
@ -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.
|
||||
|
@ -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{
|
||||
|
||||
}
|
||||
}
|
||||
|
54
src/pocketmine/world/ChunkListenerNoOpTrait.php
Normal file
54
src/pocketmine/world/ChunkListenerNoOpTrait.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\world;
|
||||
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\world\format\Chunk;
|
||||
|
||||
/**
|
||||
* This trait implements no-op default methods for chunk listeners.
|
||||
* @see ChunkListener
|
||||
*/
|
||||
trait ChunkListenerNoOpTrait/* implements ChunkListener*/{
|
||||
|
||||
public function onChunkChanged(Chunk $chunk) : void{
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public function onChunkLoaded(Chunk $chunk) : void{
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public function onChunkUnloaded(Chunk $chunk) : void{
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public function onChunkPopulated(Chunk $chunk) : void{
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public function onBlockChanged(Vector3 $block) : void{
|
||||
//NOOP
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user