diff --git a/src/pocketmine/entity/Living.php b/src/pocketmine/entity/Living.php index 09a5b986a..b0f082744 100644 --- a/src/pocketmine/entity/Living.php +++ b/src/pocketmine/entity/Living.php @@ -629,7 +629,9 @@ abstract class Living extends Entity implements Damageable{ $hasUpdate = parent::entityBaseTick($tickDiff); - $this->doEffectsTick($tickDiff); + if($this->doEffectsTick($tickDiff)){ + $hasUpdate = true; + } if($this->isAlive()){ if($this->isInsideOfSolid()){ @@ -641,6 +643,7 @@ abstract class Living extends Entity implements Damageable{ if(!$this->canBreathe()){ $this->setBreathing(false); $this->doAirSupplyTick($tickDiff); + $hasUpdate = true; }elseif(!$this->isBreathing()){ $this->setBreathing(true); $this->setAirSupplyTicks($this->getMaxAirSupplyTicks()); @@ -656,7 +659,7 @@ abstract class Living extends Entity implements Damageable{ return $hasUpdate; } - protected function doEffectsTick(int $tickDiff = 1) : void{ + protected function doEffectsTick(int $tickDiff = 1) : bool{ foreach($this->effects as $instance){ $type = $instance->getType(); if($type->canTick($instance)){ @@ -667,6 +670,8 @@ abstract class Living extends Entity implements Damageable{ $this->removeEffect($instance->getId()); } } + + return !empty($this->effects); } /**