From da32e5b4dd4678b34fcb3532116fe65b5247ecd1 Mon Sep 17 00:00:00 2001 From: iksaku Date: Tue, 29 Jul 2014 17:17:00 -0500 Subject: [PATCH] Fixed Creative issues :D (also Spectator ones :P) --- src/HealthBar/EventHandler.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/HealthBar/EventHandler.php b/src/HealthBar/EventHandler.php index 1ab35d5..73fec60 100644 --- a/src/HealthBar/EventHandler.php +++ b/src/HealthBar/EventHandler.php @@ -8,6 +8,7 @@ use pocketmine\event\Listener; use pocketmine\event\player\PlayerJoinEvent; use pocketmine\Player; +use pocketmine\Server; class EventHandler implements Listener{ /** @var \HealthBar\Loader */ @@ -26,8 +27,6 @@ public function onRegainHealth(EntityRegainHealthEvent $event){ $health = $entity->getHealth() + $event->getAmount(); if($health > $entity->getMaxHealth()){ $health = $entity->getMaxHealth(); - }elseif($health <= 0){ - $health = 0; } $this->plugin->updateHealthBar($entity, $health); } @@ -39,8 +38,12 @@ public function onRegainHealth(EntityRegainHealthEvent $event){ public function onHealthLose(EntityDamageEvent $event){ $entity = $event->getEntity(); if($entity instanceof Player && !$event->isCancelled()){ - $health = $entity->getHealth() - $event->getFinalDamage(); - $this->plugin->updateHealthBar($entity, $health); + if(Server::getGamemodeString($entity->getGamemode()) === "SPECTATOR" || Server::getGamemodeString($entity->getGamemode()) === "CREATIVE"){ + $event->setCancelled(true); + }else{ + $health = $entity->getHealth() - $event->getFinalDamage(); + $this->plugin->updateHealthBar($entity, $health); + } } } @@ -50,8 +53,12 @@ public function onHealthLose(EntityDamageEvent $event){ public function onAttack(EntityDamageByEntityEvent $event){ $entity = $event->getEntity(); if($entity instanceof Player && !$event->isCancelled()){ - $health = $entity->getHealth() - $event->getFinalDamage(); - $this->plugin->updateHealthBar($entity, $health); + if(Server::getGamemodeString($entity->getGamemode()) === "SPECTATOR" || Server::getGamemodeString($entity->getGamemode()) === "CREATIVE"){ + $event->setCancelled(true); + }else{ + $health = $entity->getHealth() - $event->getFinalDamage(); + $this->plugin->updateHealthBar($entity, $health); + } } }