/** * This method exists for legacy reasons to provide backwards * compatibility. It will not exist at runtime and should not be used * under any circumstances. */ @Deprecated public void _INVALID_setDamage(int damage) { setDamage(damage); }
@Override public void setDamage(double damage) { event.setDamage(damage); } }
public void setDamage(int damage) { event.setDamage(damage); }
/** * This method exists for legacy reasons to provide backwards * compatibility. It will not exist at runtime and should not be used * under any circumstances. */ @Deprecated public void _INVALID_setDamage(int damage) { setDamage(damage); }
/** * Set the original/raw damage for an EntityDamageEvent. This means damage before * applying modifiers. * * @param event * @param damage * @return * @throws RuntimeException, * in case of an IncompatibleClassChangeError without success on * recovery attempts. */ public static void setRawDamage(final EntityDamageEvent event, final double damage) { try { event.setDamage(DamageModifier.BASE, damage); } catch (Throwable t) { setFinalDamage(event, damage); } }
/** * Set the final damage for an EntityDamageEvent. This means damage after * applying modifiers. * * @param event * @param damage * @return * @throws RuntimeException, * in case of an IncompatibleClassChangeError without success on * recovery attempts. */ public static void setFinalDamage(final EntityDamageEvent event, final double damage) { try{ event.setDamage(damage); } catch(IncompatibleClassChangeError e) { invokeVoid(event, "setDamage", (int) Math.round(damage), e); } }
@EventHandler public void damage(EntityDamageEvent e){ int i = e.getDamage(); if(e.getDamager() instanceof Player){ int level = //get players level here float multiplier = (level >= 50 ? (1 + ((1/25) * (level - 50)) : ((1/3) + (1/75) * (level - 1))); e.setDamage(i * multiplier); } }
@Override public void damage(double amount) { Map<DamageModifier, Double> modifiers = new EnumMap<>(DamageModifier.class); modifiers.put(DamageModifier.BASE, 1.0); Map<DamageModifier, Function<Double, Double>> modifierFunctions = new EnumMap<>(DamageModifier.class); modifierFunctions.put(DamageModifier.BASE, damage -> damage); EntityDamageEvent event = new EntityDamageEvent(this, DamageCause.CUSTOM, modifiers, modifierFunctions); event.setDamage(amount); Bukkit.getPluginManager().callEvent(event); if (!event.isCancelled()) { setHealth(health - amount); } }
@Override @EventHandler public void onPlayerDamage(EntityDamageEvent event) { if (protectAmount > 0) { if (protectAmount >= 1) { event.setCancelled(true); } else { int newDamage = (int)Math.floor((1.0f - protectAmount) * event.getDamage()); if (newDamage == 0) newDamage = 1; event.setDamage(newDamage); } } } }
@EventHandler public void onEntityDamage(EntityDamageEvent entityDamageEvent) { Entity entity = entityDamageEvent.getEntity(); UUID uuid = entity.getUniqueId(); Double barrierRemain = barriers.getIfPresent(uuid); if (barrierRemain == null || barrierRemain <= 0) { return; } double damage = entityDamageEvent.getDamage(); entityDamageEvent.setDamage(0); barrierRemain = barrierRemain - damage; barriers.put(uuid, barrierRemain); double energyGain = Math.min(energyPerBarrier, damage * energyPerBarrier / barrierHealth); UUID source = barrierSources.getIfPresent(uuid); if (source == null) return; Pair<Long, Double> pair = energys.getIfPresent(source); long currentTime = System.currentTimeMillis(); boolean last = pair != null; long lastTime = last ? pair.getKey() : currentTime; double currentEnergy = last && pair.getValue() > 0 ? pair.getValue() : 0; double energy = currentEnergy - (currentTime - lastTime) * energyDecay / 1000 + energyGain; energys.put(source, new Pair<>(currentTime, Math.max(energy, 100.0d))); } };
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerHitTaken(EntityDamageEvent ev) { if (ev.getEntity() instanceof Player) { ev.setDamage(playerHitTaken((Player) ev.getEntity(), ev)); } }
@EventHandler (priority = EventPriority.HIGHEST) public static void onEntityDamage(EntityDamageEvent e){ Entity entity = e.getEntity(); if(!(entity instanceof LivingEntity)) return; LivingEntity le = (LivingEntity) entity; double armourDamageReduction = e.getDamage(EntityDamageEvent.DamageModifier.ARMOR); double armourPoints = le.getAttribute(Attribute.GENERIC_ARMOR).getValue(); double newReduction = armourPoints * 0.04 * - (e.getDamage() + e.getDamage(EntityDamageEvent.DamageModifier.BLOCKING)); //todo don't hardcode this value e.setDamage (EntityDamageEvent.DamageModifier.ARMOR, newReduction); INSTANCE.debug("Armour points: " + armourPoints + " Reduction: " + armourDamageReduction + " After: " + newReduction, le); }
public void apply(EntityDamageEvent event) { double redirectedDamage = calculateRedirectedDamage(event.getFinalDamage()); if (myPet.getStatus() == PetState.Here && myPet.getHealth() - redirectedDamage > 0) { myPet.getEntity().get().damage(redirectedDamage); event.setDamage(event.getDamage() - redirectedDamage); myPet.getEntity().get().getHandle().makeSound(SoundCompat.ENDERMAN_TELEPORT.get(), 0.2F, 1.0F); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getOwner().getPlayer().getLocation().add(0, 1, 0), ParticleCompat.CRIT_MAGIC.get(), 0.5F, 0.5F, 0.5F, 0.1F, 20, 20); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getLocation().get().add(0, 1, 0), ParticleCompat.CRIT.get(), 0.5F, 0.5F, 0.5F, 0.1F, 10, 20); } }
sendDebugMessage(ChatColor.DARK_RED + "Damage type " + ChatColor.BLUE + damageType + " reduced by " + ChatColor.AQUA + reduction + ChatColor.DARK_RED + " to " + ChatColor.RED + damage, 9); event.setDamage(damage); sendDebugMessage(ChatColor.DARK_RED + "Damage type " + ChatColor.BLUE + damageType + " multiplied by " + ChatColor.AQUA + multiplier + ChatColor.DARK_RED + " to " + ChatColor.RED + damage, 9); event.setDamage(damage);
entityDamageEvent.setDamage(rollCheck(player, mcMMOPlayer, entityDamageEvent.getDamage()));
event.setDamage(DamageModifier.ARMOR, 0);
event.setDamage(0D); event.setCancelled(true); } else if (bPlayer.hasElement(Element.EARTH) && event.getCause() == DamageCause.FALL && bPlayer.canBendPassive(CoreAbility.getAbility(DensityShift.class)) && bPlayer.canUsePassive(CoreAbility.getAbility(DensityShift.class)) && CoreAbility.getAbility(DensityShift.class).isEnabled() && PassiveManager.hasPassive(player, CoreAbility.getAbility(DensityShift.class))) { if (DensityShift.softenLanding(player)) { event.setDamage(0D); event.setCancelled(true); event.setDamage(0D); event.setCancelled(true); final double newdamage = event.getDamage() * Acrobatics.getFallReductionFactor(); final double finaldamage = initdamage - newdamage; event.setDamage(finaldamage); if (finaldamage <= 0.4) { event.setCancelled(true); event.setDamage(0D); event.setCancelled(true);