/** * @param EntityDamageEvent $event * @priority HIGH * @ignoreCancelled true */ public function onDamage(EntityDamageEvent $event) { $damaged = $event->getEntity(); if ($damaged instanceof Player) { $area = $this->main->getDatabase()->searchAreaByPosition($damaged); if ($area instanceof Area) { $cause = $event->getCause(); if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED, false, false)) { $event->setCancelled(); } elseif ($cause === EntityDamageEvent::CAUSE_BLOCK_EXPLOSION) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_EXPLOSION, false)) { $event->setCancelled(); } } elseif ($cause === EntityDamageEvent::CAUSE_VOID) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_VOID, false)) { $event->setCancelled(); } } elseif ($cause === EntityDamageEvent::CAUSE_SUFFOCATION) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_SUFFOCATE, false)) { $event->setCancelled(); } } elseif ($cause === EntityDamageEvent::CAUSE_DROWNING) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_DROWN, false)) { $event->setCancelled(); } } elseif ($cause === EntityDamageEvent::CAUSE_FALL) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_FALL, false)) { $event->setCancelled(); } } elseif ($cause === EntityDamageEvent::CAUSE_FIRE or $cause === EntityDamageEvent::CAUSE_FIRE_TICK or $cause === EntityDamageEvent::CAUSE_LAVA) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_FIRE, false)) { $event->setCancelled(); } } elseif ($event instanceof EntityDamageByEntityEvent) { $damager = $event->getDamager(); if ($damager instanceof Player) { if ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_PLAYER, false)) { $event->setCancelled(); } } elseif ($this->areaHasFlag($damaged, Area::FLAG_DAMAGED_BY_ENTITY, false)) { $event->setCancelled(); } } } } if (!$event->setCancelled() and $event instanceof EntityDamageByEntityEvent) { $damager = $event->getDamager(); if ($damager instanceof Player) { if ($damaged instanceof Player) { if (!$this->areaHasFlag($damager, Area::FLAG_DAMAGE_PLAYER, true)) { $event->setCancelled(); } } elseif (!$this->areaHasFlag($damager, Area::FLAG_DAMAGE_MOB, true)) { $event->setCancelled(); } } } }
public function onEntityDamage(EntityDamageEvent $event) { $entity = $event->getEntity(); if ($entity instanceof Player) { $player = $entity->getPlayer(); $this->renderNameTag($player); } }
public function onDamage(EntityDamageEvent $event) { $event_is = false; $c = $event->getEntity()->getLastDamageCause(); //sheep's last dmg cause $sheep = $event->getEntity(); if ($this->isSheepInCooldown($sheep)) { $p = $event->getEntity()->getLastDamageCause()->getDamager(); //player $p->sendPopup(TextFormat::YELLOW . "Sheep is in cooldown!"); $event->setCancelled(); return true; } if ($event->getEntity() instanceof Sheep) { if ($c instanceof EntityDamageByEntityEvent) { $d = $c->getDamager(); //player.. if ($d instanceof Player) { $itemf = $d->getInventory()->getItemInHand()->getId(); if ($itemf === Item::SHEARS) { $event_is = true; $amount = rand(1, 3); $d->getInventory()->addItem(new ItemBlock(new Wool(), 0, $amount)); array_push($this->cooldown, new CooldownClass($sheep, $this->getConfig()->get("cooldown"))); $d->sendPopup(TextFormat::GREEN . "Sheared and got " . $amount . " wool!"); } } } } if ($event_is) { $event->setCancelled(); } }
public function onAttack(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent or $event instanceof EntityDamageByChildEntityEvent) { if ($event->getDamager() instanceof Player and $event->getEntity() instanceof Player) { $this->attackQueue[$event->getEntity()->getName()] = $event->getDamager()->getName(); } } }
public function onDamage(EntityDamageEvent $event) { if (!$event->getEntity() instanceof Entity) { return; } if ($event->getDamage() < 3) { $color = TextFormat::GREEN; } else { if ($event->getDamage() < 6) { $color = TextFormat::YELLOW; } else { $color = TextFormat::RED; } } $pos = $event->getEntity()->add(0.1 * mt_rand(1, 9) * mt_rand(-1, 1), 0.1 * mt_rand(5, 9), 0.1 * mt_rand(1, 9) * mt_rand(-1, 1)); $damageParticle = new FloatingTextParticle($pos, "", $color . "-" . $event->getDamage()); if ($event->getEntity()->getHealth() < 7) { $color = TextFormat::RED; } else { if ($event->getEntity()->getHealth() < 14) { $color = TextFormat::YELLOW; } else { $color = TextFormat::GREEN; } } $pos = $event->getEntity()->add(0, 2.5, 0); $healthParticle = new FloatingTextParticle($pos, "", $color . ($event->getEntity()->getHealth() - $event->getDamage()) . " / " . $event->getEntity()->getMaxHealth()); $this->getServer()->getScheduler()->scheduleDelayedTask(new EventCheckTask($this, $damageParticle, $event->getEntity()->getLevel(), $event), 1); $this->getServer()->getScheduler()->scheduleDelayedTask(new EventCheckTask($this, $healthParticle, $event->getEntity()->getLevel(), $event), 1); }
public function onAttack(EntityDamageEvent $event) { if (!$event instanceof EntityDamageByEntityEvent) { return; } if ($event->getEntity() instanceof Player and $event->getDamager() instanceof Player) { if ($event->getEntity()->distance($event->getDamager()) > 7) { $event->setCancelled(); } } }
public function fallenDamagePrevent(EntityDamageEvent $event) { if ($event->getCause() == EntityDamageEvent::CAUSE_FALL) { if (!$event->getEntity() instanceof Player) { return; } if ($event->getEntity()->y > 0) { $event->setDamage(0); $event->setCancelled(); } } }
public function onDamage(EntityDamageEvent $event) { $player = $event->getEntity(); $entity = $event->getEntity(); if ($player instanceof Player && $event->getCause() === EntityDamageEvent::CAUSE_ENTITY_EXPLOSION) { switch (mt_rand(1, 2)) { case 1: $event->setDamage(10); break; case 2: $event->setDamage(8); break; } } }
public function onDamage(EntityDamageEvent $ev) { if ($ev->isCancelled()) { return; } if (!$ev instanceof EntityDamageByEntityEvent) { return; } if (!$ev->getEntity() instanceof Player) { return; } if (!$this->getState("shield", $ev->getEntity(), false)) { return; } $ev->setCancelled(); }
public function onEntityDamage(EntityDamageEvent $event) { if (!$event->isCancelled() && $event instanceof EntityDamageByEntityEvent) { $e = $event->getEntity(); $arrow = $event->getDamager(); $damage = round($event->getDamage() / 2); if ($arrow instanceof AbilityArrow) { $shoter = $arrow->shootingEntity; if ($shoter instanceof Player) { if ($arrow instanceof FireArrow) { $e->setOnFire(rand(3, 10)); } elseif ($arrow instanceof TeleportArrow) { $shoter->teleport($e); } elseif ($arrow instanceof SpiderArrow) { $e->getLevel()->setBlock($e, Block::get(30)); } elseif ($arrow instanceof HealArrow) { $damage = -$damage; } elseif ($arrow instanceof PowerArrow) { $damage = round($damage * rand(2, 3) / 2); } else { return; } $arrow->kill(); } } $event->setDamage($damage); } }
public function onPvP(EntityDamageEvent $ev) { if ($ev->isCancelled()) { return; } if (!$ev instanceof EntityDamageByEntityEvent) { return; } if (!(($pl = $ev->getEntity()) instanceof Player && $ev->getDamager() instanceof Player)) { return; } $world = $pl->getLevel()->getName(); if (!isset($this->wcfg[$world])) { return; } if ($this->wcfg[$world] !== false) { $sp = $pl->getLevel()->getSpawnLocation(); $dist = $sp->distance($pl); if ($dist > $this->owner->getServer()->getSpawnRadius()) { return; } } $this->owner->msg($ev->getDamager(), mc::_("You are not allowed to do that here")); $ev->setCancelled(); }
public function onHurt(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { if ($event->getDamager()->getInventory()->getItemInHand()->getId() === 276) { $event->getEntity()->addEffect(Effect::getEffect($this->getConfig()->get("DiamondSwordEffect"))->setAmplifier($this->getConfig()->get("DiamondSwordAmp"))->setDuration($this->getConfig()->get("DiamondSwordTime"))->setVisible(false)); } } }
public function factionPVP(EntityDamageEvent $factionDamage) { if ($factionDamage instanceof EntityDamageByEntityEvent) { if (!$factionDamage->getEntity() instanceof Player or !$factionDamage->getDamager() instanceof Player) { return true; } if (!$this->plugin->getSession($factionDamage->getEntity()->getPlayer())->inFaction() or !$this->plugin->getSession($factionDamage->getDamager()->getPlayer())) { return true; } if ($factionDamage->getEntity() instanceof Player and $factionDamage->getDamager() instanceof Player) { $player1 = $factionDamage->getEntity()->getPlayer()->getName(); $player2 = $factionDamage->getDamager()->getPlayer()->getName(); if ($this->plugin->sameFaction($player1, $player2) == true) { $factionDamage->setCancelled(true); } } } }
public function onHit(EntityDamageEvent $event) { if ($event instanceof EntityDamageByChildEntityEvent) { $target = $event->getEntity(); $player = $event->getDamager(); $event->getDamager()->sendTip("§aYou hit§c " . $target->getName()); $player->getLevel()->addSound(new AnvilFallSound($player), [$player]); } }
public function onEntityDamageByEntity(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { $victim = $event->getEntity(); $attacker = $event->getDamager(); $this->debug->onDebug('Damage denied'); $event->setCancelled(true); } }
/** * @param EnityDamageEvent $event * * @priority LOW * @ignoreCancelled true */ public function EntityDamageEvent(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { if ($event->getDamager() instanceof Player) { foreach (array($event->getDamager(), $event->getEntity()) as $players) { $this->setTime($players); } } } }
public function onDamage(EntityDamageEvent $ev) { if ($ev->isCancelled()) { return; } if ($ev->getEntity() instanceof Player) { if (isset($this->watchers[strtolower($ev->getEntity()->getName())])) { $ev->setCancelled(); return; } } if ($ev instanceof EntityDamageByEntityEvent) { if ($ev->getDamager() instanceof Player) { if (isset($this->watchers[strtolower($ev->getDamager()->getName())])) { $ev->setCancelled(); return; } } } }
public function onHurt(EntityDamageEvent $event) { $player = $event->getEntity(); if ($player instanceof Player) { if (!$player->haspermission("worldprotetor.player.hurt")) { $event->setCancelled(true); } else { $event->setCancelled(false); } } }
public function onDamage(EntityDamageEvent $event) { $victim = $event->getEntity(); if ($victim instanceof Player) { if (!$event->isCancelled()) { if ($this->plugin->getFlyingSession($victim)->getFlying()) { $this->plugin->getFlyingSession($victim)->setFlying(false); $victim->sendMessage(TF::GOLD . "You are no longer in fly mode!"); } } } }
public function onDamage(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { if ($this->purgeStarted) { return; } if ($event->getEntity() instanceof Player and $event->getDamager() instanceof Player) { // TODO 제한시간 출력 $event->setCancelled(); } } }
public function onDamage(EntityDamageEvent $ev) { /*** * http://docs.pocketmine.net/d6/d5c/_entity_damage_by_entity_event_8php_source.html * public function getDamager(){ * return $this->damager; */ $e = $ev->getEntity(); if ($e instanceof Player && $ev->getFinalDamage() - $e->getHealth() <= 0) { $e->getPlayer()->getInventory()->addItem(Item::get(262, 0, 1)); } }
public function onEntityDamageByEntity(ede $e) { if ($e instanceof edbee) { $p = $e->getEntity(); $d = $e->getDamager(); if ($this->isOni($d) and $this->isHuman($p)) { $this->Tatch($p, $d); } else { $e->setCancelled(); } } }
public function onEntityDamage(EntityDamageEvent $event) { $entity = $event->getEntity(); $world = $entity->getLevel(); $block = $world->getBlock($entity->floor()->subtract(0, 1)); if ($world->getName() == $this->getHotBlock()->getConfig()->get("world")) { switch ($block->getId()) { case Block::PLANKS: $event->setCancelled(true); break; } } }
public function onEntityDamage(EntityDamageEvent $event) { if ($p = $event->getEntity() instanceof Player && $event instanceof EntityDamageByEntityEvent && ($d = $event->getDamager() instanceof Player)) { $l = $d->getLocation(); if (!isset($this->move[$n = $d->getName()])) { $this->move[$n] = $l; } $m = $this->move[$n]; if ($p->distance($d) > 5 || $m->x == $l->x && $m->y == $l->y && $m->z == $l->z && $m->getYaw() == $l->getYaw() && $m->getPitch() == $l->getPitch()) { $event->setCancelled(false); } } }
/** * @priority MONITOR */ public function onDamage(EntityDamageEvent $ev) { if ($ev->isCancelled()) { return; } $damage = $ev->getDamage(); $player = $ev->getEntity(); if (!$player instanceof Player) { return; } for ($i = 0; $i < $damage; $i++) { $player->getLevel()->addParticle(new RedstoneParticle(self::randVector($player), mt_rand() / mt_getrandmax() * 2)); } }
public function onDamage(EntityDamageEvent $event) { $player = $event->getEntity(); $level = $player->getLevel(); $spawn = $level->getSpawnLocation(); $distance = $spawn->distance($player); if ($player instanceof Player) { if ($distance <= $this->cfg->get($level->getName())) { if (!$player->hasPermission("customradius.pvp")) { $event->setCancelled(true); } } } }
public function onDamage(EntityDamageEvent $event) { $entity = $event->getEntity(); if ($entity instanceof Player) { $session = $this->main->getSession($entity); if (!$session instanceof Session) { $event->setCancelled(); return; } if ($session->onDamage($event) === false) { $event->setCancelled(); } } }
public function onHurt(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { $damager = $event->getDamager(); $player = $event->getEntity(); if ($damager instanceof Player) { if ($damager->getInventory()->getItemInHand()->getId() === 280) { $event->setKnockBack($this->getConfig()->get("KnockBack-Power")); $player->addEffect(Effect::getEffect(20)->setAmplifier(1)->setDuration(50)->setVisible(true)); $level = $damager->getLevel(); $level->addSound(new AnvilFallSound($damager->getLocation())); } } } }
public function onFall(EntityDamageEvent $ev) { if ($ev->isCancelled()) { return; } $cause = $ev->getCause(); if ($cause !== EntityDamageEvent::CAUSE_FALL) { return; } $et = $ev->getEntity(); $id = $et->getLevel()->getBlockIdAt($et->getX(), $et->getY() - 1, $et->getZ()); if (isset($this->blocks[$id])) { // Soft landing! $ev->setCancelled(); } }
public function onDamageByPlayer(EntityDamageEvent $ev) { $cause = $ev->getCause(); switch ($cause) { case EntityDamageEvent::CAUSE_ENTITY_ATTACK: $atkr = $ev->getDamager(); $player = $ev->getEntity(); if ($atkr instanceof Player and $player instanceof Player) { if ($this->isFriend($player, $atkr->getName())) { $ev->setCancelled(); $atkr->sendMessage("Cannot attack friend :("); } } break; } }