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 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 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 onEntityHitByProjectile(EntityDamageEvent $event) { if (!$event instanceof EntityDamageByEntityEvent) { return; } $damager = $event->getDamager(); if (!$damager instanceof Projectile) { return; } if (isset($damager->namedtag["ArcheryDamage"])) { $event->setDamage($damager->namedtag["ArcheryDamage"]); } }
/** * @priority LOWEST */ public function onDamage(EntityDamageEvent $event) { // Try keep the player alive while on transit... $victim = $event->getEntity(); if (!$victim instanceof Player) { return; } $vname = $victim->getName(); if (!isset($this->teleporters[$vname])) { return; } if (time() - $this->teleporters[$vname] > 2) { unset($this->teleporters[$vname()]); return; } $victim->heal($event->getDamage()); $event->setDamage(0); $event->setCancelled(true); }
public function onHurt(EntityDamageEvent $ev) { $p = $ev->getEntity(); if ($ev instanceof EntityDamageByEntityEvent) { $damager = $ev->getDamager(); if ($damager instanceof Player) { if ($damager->getInventory()->getItemInHand()->getId() === 369) { $ev->setKnockBack(0.5); $ev->setDamage($ev->getDamage() + 3); $x = $p->getX(); $y = $p->getY(); $z = $p->getZ(); $r = mt_rand(0, 255); $g = mt_rand(0, 255); $b = mt_rand(0, 255); $p->getLevel()->addParticle(new DustParticle(new Vector3($x, $y, $z), $r, $g, $b)); $p->addEffect(Effect::getEffect(9)->setAmplifier(1)->setDuration(20)->setVisible(true)); $level = $damager->getLevel(); $damager->getLevel()->addSound(new AnvilFallSound($damager->getLocation())); } } } }
public function AllDamage(EntityDamageEvent $event) { //僵尸击退修复 if ($event instanceof EntityDamageByEntityEvent) { $p = $event->getDamager(); $zo = $event->getEntity(); if (isset($this->animals[$zo->getId()]) and $zo instanceof Zombie or $zo instanceof Villager) { if ($p instanceof Player) { $weapon = $p->getInventory()->getItemInHand()->getID(); //得到玩家手中的武器 $high = 0; if ($weapon == 258 or $weapon == 271 or $weapon == 275) { //击退x5 $back = 0.7; } elseif ($weapon == 267 or $weapon == 272 or $weapon == 279 or $weapon == 283 or $weapon == 286) { //击退x1 $back = 1; } elseif ($weapon == 276) { //击退x2 $back = 2; } elseif ($weapon == 292) { //击退x10 $back = 10; $high = 5; } else { $back = 0.5; } $zom =& $this->animals[$zo->getId()]; if (isset($this->dogs[$zo->getId()])) { if ($weapon = 352) { $dog =& $this->dogs[$zo->getId()]; if ($dog['love'] != 9999) { if ($p->getinventory()->getItemInHand()->getID() == 352) { //var_dump("玩家".$p->getName()."喂养了ID为".$zo->getId()."的wolf"); $p->getinventory()->removeItem(new Item(352, $p->getInventory()->getItemInHand()->getDamage(), 1)); $pos3 = new Vector3($zom['x'], $zom['y'] + 1, $zom['z'], $zo->getLevel()); $pos4 = new Vector3($zom['x'], $zom['y'], $zom['z'], $zo->getLevel()); $w1 = new HeartParticle($pos3); $w2 = new HeartParticle($pos4); $zo->getLevel()->addParticle($w1); $zo->getLevel()->addParticle($w2); if ($dog['love'] == 10 or $dog['love'] == 9999) { $dog['love'] = 9999; $dog['owner'] = $p->getName(); $p->sendTip(TextFormat::GREEN . "驯养成功!"); } else { $dog['love'] = $dog['love'] + 1; $dog['owner'] = $p->getName(); } $event->setDamage(0); $event->setKnockBack(0); } } else { $zom['IsChasing'] = $p->getName(); } } } @$zo->knockBack($p, 0, -$zom['xxx'] * $back, -$zom['zzz'] * $back, 0.4); //var_dump("玩家".$p->getName()."攻击了ID为".$zo->getId()."的僵尸"); $zom['x'] = $zom['x'] - $zom['xxx'] * $back; $zom['y'] = $zo->getY() + $high; $zom['z'] = $zom['z'] - $zom['zzz'] * $back; $pos2 = new Vector3($zom['x'], $zom['y'], $zom['z']); //目标坐标 $zo->setPosition($pos2); if ($zo->getHealth() - $event->getDamage() <= 0) { //var_dump("玩家".$p->getName()."杀死了ID为".$zo->getId()."的僵尸"); unset($this->animals[$zo->getId()]); } } } } }
public function onEntityDamageEvent(EntityDamageEvent $event) { if ($event instanceof EntityDamageByEntityEvent) { if ($event->getDamager() instanceof ExperienceOrb) { $event->setCancelled(); return; } if ($event->getDamager() instanceof Player) { $attribute = $this->attributeprovider->getAttribute($event->getDamager()); $enhance = $event->getDamage() * ($attribute->getExpLevel() / 100); $damage = $event->getDamage() + $enhance <= 15 ? $event->getDamage() - $enhance : 15; $event->setDamage($damage); HungerSystem::exhaustion($event->getDamager(), HungerSystem::RECEIVING_ANY_DAMAGE); } if ($event->getEntity() instanceof Player) { $attribute = $this->attributeprovider->getAttribute($event->getEntity()); $protect = $event->getDamage() * ($attribute->getExpLevel() / 100); $damage = $event->getDamage() + $protect >= 1 ? $event->getDamage() - $protect : 1; $event->setDamage($damage); HungerSystem::exhaustion($event->getEntity(), HungerSystem::RECEIVING_ANY_DAMAGE); } } }
/** * @param EntityDamageEvent $event * @priority LOWEST */ public function onDamage(EntityDamageEvent $event) { if ($event->isApplicable(EntityDamageEvent::MODIFIER_ARMOR) and ($damage = $event->getDamage(EntityDamageEvent::MODIFIER_ARMOR)) > 0) { $event->setDamage(-floor($event->getDamage() * 0.04 * $damage), EntityDamageEvent::MODIFIER_ARMOR); } }
public function onDamage(EntityDamageEvent $event) { if ($event->getEntity() instanceof Entities and $event instanceof EntityDamageByEntityEvent) { if (!$event->getDamager() instanceof Player) { return; } switch ($event->getEntity()->getType()) { case 10: if (!isset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()])) { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["chickin-item-id"], 0, $this->rewardList["chickin-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-egg")); $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()] = $this->makeTimestamp(date("Y-m-d H:i:s")); } else { $before = $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]; $after = $this->makeTimestamp(date("Y-m-d H:i:s")); $timeout = intval($after - $before); if ($timeout < $this->config["Reward-DelayTime"]) { $event->getDamager()->sendMessage(TextFormat::RED . $this->get("not-yet-ready-egg")); } else { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["chickin-item-id"], 0, $this->rewardList["chickin-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-egg")); unset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]); } } $event->setCancelled(); break; case 11: if (!isset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()])) { $event->setDamage(0); if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["cow-item-id"], 0, $this->rewardList["cow-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-steak")); $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()] = $this->makeTimestamp(date("Y-m-d H:i:s")); } else { $before = $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]; $after = $this->makeTimestamp(date("Y-m-d H:i:s")); $timeout = intval($after - $before); if ($timeout < $this->config["Reward-DelayTime"]) { $event->getDamager()->sendMessage(TextFormat::RED . $this->get("not-yet-ready-steak")); $event->setCancelled(); } else { $event->setDamage(0); if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["cow-item-id"], 0, $this->rewardList["cow-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-steak")); unset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]); } } break; case 12: if (!isset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()])) { $event->setDamage(0); if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["pig-item-id"], 0, $this->rewardList["pig-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-pork")); $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()] = $this->makeTimestamp(date("Y-m-d H:i:s")); } else { $before = $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]; $after = $this->makeTimestamp(date("Y-m-d H:i:s")); $timeout = intval($after - $before); if ($timeout < $this->config["Reward-DelayTime"]) { $event->getDamager()->sendMessage(TextFormat::RED . $this->get("not-yet-ready-pork")); $event->setCancelled(); } else { $event->setDamage(0); if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["pig-item-id"], 0, $this->rewardList["pig-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-pork")); unset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]); } } break; case 13: if (!isset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()])) { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["sheep-item-id"], 0, $this->rewardList["sheep-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-wool")); $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()] = $this->makeTimestamp(date("Y-m-d H:i:s")); } else { $before = $this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]; $after = $this->makeTimestamp(date("Y-m-d H:i:s")); $timeout = intval($after - $before); if ($timeout < $this->config["Reward-DelayTime"]) { $event->getDamager()->sendMessage(TextFormat::RED . $this->get("not-yet-ready-wool")); } else { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["sheep-item-id"], 0, $this->rewardList["sheep-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-wool")); unset($this->damage_delay[$event->getDamager()->getName()][$event->getEntity()->getId()]); } } $event->setCancelled(); break; case 15: if ($event->getEntity()->getHealth() - $event->getDamage() <= 0) { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get(array_rand($this->rewardList["villager-item-id"]), 0, $this->rewardList["villager-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-villager-item")); } break; case 34: if ($event->getEntity()->getHealth() - $event->getDamage() <= 0) { if ($this->dead_id[$event->getDamager()->getName()] == $event->getEntity()->getId()) { return; } $this->dead_id[$event->getDamager()->getName()] = $event->getEntity()->getId(); $event->getDamager()->getInventory()->addItem(Item::get($this->rewardList["skelleton-item-id"], 0, $this->rewardList["skelleton-item-count"])); $event->getDamager()->sendMessage(TextFormat::DARK_AQUA . $this->get("success-get-skelleton-item")); } } } }
public function fallenDamagePrevent(EntityDamageEvent $event) { if ($event->getCause() == EntityDamageEvent::CAUSE_FALL) { if (!$event->getEntity() instanceof Player) { return; } if (isset($this->fallen[$event->getEntity()->getName()])) { $event->setDamage(0); $this->fallen[$event->getEntity()->getName()]--; if ($this->fallen[$event->getEntity()->getName()] == 0) { unset($this->fallen[$event->getEntity()->getName()]); } } } }
public function onEntityDamage(EntityDamageEvent $event) { if ($event->isCancelled()) { return; } $damagedEntity = $event->getEntity(); if ($event instanceof EntityDamageByEntityEvent && $event->getFinalDamage() > $damagedEntity->getHealth()) { $attacker = $event->getDamager(); if ($attacker instanceof Player) { if ($damagedEntity instanceof Player && !self::$pvpEnabled) { $event->setCancelled(); return; } $attackerPlayer = $this->getRPGPlayerByName($attacker->getName()); if ($attackerPlayer !== null) { $xp = 0; $xpPercentage = 0; foreach ($this->getConfiguration("kill-exp", ["default" => 10]) as $id => $amount) { if ($id === "default" || $id === $damagedEntity::NETWORK_ID) { $xp = $amount; } } foreach ($this->getConfiguration("kill-exp-percentage", ["default" => 0.01]) as $id => $amount) { if ($id === "default" || $id === $damagedEntity::NETWORK_ID) { $xpPercentage = $amount; } } $attackerPlayer->addXp($xp + $attackerPlayer->getNeededXP() * ($xpPercentage / 100)); } } } if (!$damagedEntity instanceof Player) { return; } if (!$this->isValidPlayer($damagedEntity)) { return; } $formerHealth = $this->players[$damagedEntity->getName()]->getHealth(); $this->getRPGPlayerByName($damagedEntity->getName())->setHealth($formerHealth - $event->getFinalDamage()); $event->setDamage(0); $event->setDamage(0, EntityDamageEvent::MODIFIER_STRENGTH); $event->setDamage(0, EntityDamageEvent::MODIFIER_WEAKNESS); $event->setDamage(0, EntityDamageEvent::MODIFIER_ARMOR); $event->setDamage(0, EntityDamageEvent::MODIFIER_RESISTANCE); }
public function onHurtf(EntityDamageEvent $event) { //$cause = $event->getCause(); //arrow check for the catchy phrase thing :PPP $causet = $event->getCause(); if ($causet === 2) { $arrowed = true; } else { $arrowed = false; } $pr = $event->getEntity(); $cause = $pr->getLastDamageCause(); if ($cause instanceof EntityDamageByEntityEvent) { $dam = $event->getDamager()->getName(); $ent = $event->getEntity()->getPlayer()->getName(); if ($arrowed) { if (!is_file($this->getDataFolder() . $dam . ".json")) { return true; } $file = file_get_contents($this->getDataFolder() . $dam . ".json"); $decode = json_decode($file, true); if (isset($decode["annihilator"]) and $decode["annihilator"] === "yes") { $nt = $event->getEntity()->getPlayer(); $event->setDamage(0); $spawn = $nt->getSpawn(); $nt->teleport($spawn, $nt->getYaw(), $nt->getPitch()); $this->getServer()->getPlayer($ent)->sendMessage("One-shot, one kill! You didn't even see that coming!"); return true; } else { return true; } } $this->killer[$dam] = strval($ent); if ($dam instanceof Player) { $ms = $dam; if (!\is_file($this->getDataFolder() . $ms . ".json")) { return true; } $hhd = file_get_contents($this->getDataFolder() . $ms . ".json"); $dec = json_decode($hhd, true); if (isset($dec["annihilator"])) { if ($dec["annihilator"] === "yes") { $event->setDamage(PHP_INT_MAX); return true; } } } if ($dam instanceof Arrow) { $this->getLogger()->info("yeah!"); } } }
public function attack($damage, EntityDamageEvent $source) { if (!$this->isAlive()) { return; } $source->setDamage(-floor($source->getDamage() * $this->inventory->calculateArmorModifiers($source) * 0.04), EntityDamageEvent::MODIFIER_ARMOR); if ($this->isCreative() and $source->getCause() !== EntityDamageEvent::CAUSE_SUICIDE and $source->getCause() !== EntityDamageEvent::CAUSE_VOID) { $source->setCancelled(); } elseif ($this->allowFlight and $source->getCause() === EntityDamageEvent::CAUSE_FALL) { $source->setCancelled(); } parent::attack($source->getFinalDamage(), $source); if ($source->isCancelled()) { return; } if ($source instanceof EntityDamageByEntityEvent || $source instanceof EntityDamageByChildEntityEvent) { $damager = $source->getDamager(); $damage = 0; foreach ($this->inventory->getArmorContents() as $item) { if (($ench = $item->getEnchantment(Enchantment::TYPE_ARMOR_THORNS)) != null) { $rnd = mt_rand(1, 100); if ($rnd <= $ench->getLevel() * 15) { $damage = mt_rand(1, 4); } } } if ($damage > 0) { $damager->attack($damage, new EntityDamageEvent($damager, EntityDamageEvent::CAUSE_MAGIC, $damage)); } } if ($this->getLastDamageCause() === $source and $this->spawned) { $pk = new EntityEventPacket(); $pk->eid = 0; $pk->event = EntityEventPacket::HURT_ANIMATION; $this->dataPacket($pk); if ($this->getHealth() < 0 or $this->getHealth() == 0) { $pk = new RespawnPacket(); $pos = $this->getSpawn(); $pk->x = $pos->x; $pk->y = $pos->y; $pk->z = $pos->z; $this->dataPacket($pk); } } }
public function onPlayerDeath(EntityDamageEvent $event) { if ($event->getEntity() instanceof Player) { if ($this->disablePlayerDeath) { if ($event->getDamage() >= $event->getEntity()->getHealth()) { $event->setDamage(0.0); $event->getEntity()->setHealth(20); } } } return; }
public function i_onDamage(EntityDamageEvent $event, &$victimSession) { $victim = $event->getEntity(); if (!$victim instanceof Player) { return; } $victimSession = $this->getMain()->getSessions()->getSession($victim); if (!$victimSession->inSession($this)) { return; } $origCancelled = $event->isCancelled(); $event->setCancelled(false); if (!$event instanceof EntityDamageByEntityEvent) { if ($event->getCause() === EntityDamageEvent::CAUSE_SUFFOCATION) { $event->setCancelled(); $victimSession->teleport(Settings::kitpvp_spawn($this->getMain()->getServer())); return; } if ($event->getCause() === EntityDamageEvent::CAUSE_FALL) { $fallCause = $victim->getLastDamageCause(); if ($fallCause instanceof EntityDamageByEntityEvent) { if (isset($fallCause->_legionpeEta_timestamp) and microtime(true) - $fallCause->_legionpeEta_timestamp < 2) { /** @noinspection PhpUndefinedFieldInspection */ $event->_legionpeEta_fallCause = $fallCause; } } } return; } $victim = $event->getEntity(); $damager = $event->getDamager(); if (!$victim instanceof Player or !$damager instanceof Player) { return; } $attackerSession = $this->main->getSessions()->getSession($damager); if (!$attackerSession->inSession($this)) { $event->setCancelled($origCancelled); return; } $hitterData = $this->playerData[$attackerSession->getUID()]; $victimData = $this->playerData[$victimSession->getUID()]; if ($hitterData->invulnerable) { $attackerSession->tell("You are in invulnerability mode!"); $event->setCancelled(); return; } if ($victimData->invulnerable) { $attackerSession->tell("The vicitm is in invulnerability mode!"); $event->setCancelled(); return; } if (Settings::kitpvp_isSafeArea($victim) or Settings::kitpvp_isSafeArea($damager)) { $event->setCancelled(); $attackerSession->tell("You may not attack players at/from spawn!"); } elseif ($hitterData->areFriends($victimSession->getUID())) { $event->setCancelled(); } else { /** @noinspection PhpUndefinedFieldInspection */ $event->_legionpeEta_timestamp = microtime(true); /** @noinspection PhpUndefinedFieldInspection */ $event->_legionpeEta_isLadder = $victim->getLevel()->getBlockIdAt($victim->getFloorX(), $victim->getFloorY(), $victim->getFloorZ()) === Block::LADDER; if ($event instanceof EntityDamageByChildEntityEvent) { $child = $event->getChild(); if ($child instanceof Snowball) { $event->setKnockBack($event->getKnockBack() * 2.5); } elseif ($child instanceof Arrow) { $points = 0; if (!$event->isApplicable(EntityDamageEvent::MODIFIER_ARMOR)) { $armorValues = [Item::LEATHER_CAP => 1, Item::LEATHER_TUNIC => 3, Item::LEATHER_PANTS => 2, Item::LEATHER_BOOTS => 1, Item::CHAIN_HELMET => 1, Item::CHAIN_CHESTPLATE => 5, Item::CHAIN_LEGGINGS => 4, Item::CHAIN_BOOTS => 1, Item::GOLD_HELMET => 1, Item::GOLD_CHESTPLATE => 5, Item::GOLD_LEGGINGS => 3, Item::GOLD_BOOTS => 1, Item::IRON_HELMET => 2, Item::IRON_CHESTPLATE => 6, Item::IRON_LEGGINGS => 5, Item::IRON_BOOTS => 2, Item::DIAMOND_HELMET => 3, Item::DIAMOND_CHESTPLATE => 8, Item::DIAMOND_LEGGINGS => 6, Item::DIAMOND_BOOTS => 3]; foreach ($attackerSession->getPlayer()->getInventory()->getArmorContents() as $armor) { if (isset($armorValues[$armor->getId()])) { $points += $armorValues[$armor->getId()]; } } } list(, , , $damage, $fire, $knockPct) = Settings::kitpvp_getBowInfo($hitterData->getBowLevel()); $event->setDamage(max($damage - $points, 0)); if ($fire > 0) { $victim->setOnFire($fire / 20); $this->getMain()->getServer()->getScheduler()->scheduleDelayedTask(new CallbackPluginTask($this->getMain(), function () use($victim) { $victim->setOnFire(0); }), $fire); } if ($knockPct > 0) { $event->setKnockBack($event->getKnockBack() * (1 + $knockPct / 100)); // what the, I put / as *? } } } } }