Throw exception when an invalid chunk is set as the parent of a Tile/Entity

This commit is contained in:
Shoghi Cervantes 2014-07-28 21:40:50 +02:00
parent e97139919a
commit 7d8a961374
2 changed files with 9 additions and 0 deletions

View File

@ -147,6 +147,10 @@ abstract class Entity extends Position implements Metadatable{
public function __construct(Chunk $chunk, Compound $nbt){ public function __construct(Chunk $chunk, Compound $nbt){
if($chunk->getLevel() === null){
throw new \Exception("Invalid garbage Chunk given to Entity");
}
$this->id = Entity::$entityCount++; $this->id = Entity::$entityCount++;
$this->justCreated = true; $this->justCreated = true;
$this->namedtag = $nbt; $this->namedtag = $nbt;

View File

@ -27,6 +27,7 @@ namespace pocketmine\tile;
use pocketmine\event\Timings; use pocketmine\event\Timings;
use pocketmine\level\format\Chunk; use pocketmine\level\format\Chunk;
use pocketmine\level\format\LevelProvider;
use pocketmine\level\Position; use pocketmine\level\Position;
use pocketmine\nbt\tag\Compound; use pocketmine\nbt\tag\Compound;
@ -62,6 +63,10 @@ abstract class Tile extends Position{
public $tickTimer; public $tickTimer;
public function __construct(Chunk $chunk, Compound $nbt){ public function __construct(Chunk $chunk, Compound $nbt){
if($chunk->getLevel() === null){
throw new \Exception("Invalid garbage Chunk given to Tile");
}
$this->server = $chunk->getLevel()->getLevel()->getServer(); $this->server = $chunk->getLevel()->getLevel()->getServer();
$this->chunk = $chunk; $this->chunk = $chunk;
$this->setLevel($chunk->getLevel()->getLevel(), true); //Strong reference $this->setLevel($chunk->getLevel()->getLevel(), true); //Strong reference