Address several LevelDB related crashdumps in the crash archive

This commit is contained in:
Dylan K. Taylor 2017-08-30 15:42:31 +01:00
parent 120cf56a47
commit 23752548fe
3 changed files with 7 additions and 2 deletions

View File

@ -634,7 +634,7 @@ class Chunk{
* @param Tile $tile
*/
public function addTile(Tile $tile){
if($tile->closed){
if($tile->isClosed()){
throw new \InvalidArgumentException("Attempted to add a garbage closed Tile to a chunk");
}
$this->tiles[$tile->getId()] = $tile;

View File

@ -514,8 +514,9 @@ class LevelDB extends BaseLevelProvider{
private function writeTags(array $targets, string $index){
$nbt = new NBT(NBT::LITTLE_ENDIAN);
$out = [];
/** @var Entity|Tile $target */
foreach($targets as $target){
if(!$target->closed){
if(!$target->isClosed()){
$target->saveNBT();
$out[] = $target->namedtag;
}

View File

@ -180,6 +180,10 @@ abstract class Tile extends Position{
$this->level->updateTiles[$this->id] = $this;
}
public function isClosed() : bool{
return $this->closed;
}
public function __destruct(){
$this->close();
}