BloodMoon/uk/co/jacekk/bukkit/bloodmoon/featurelisteners/SwordDamageListener.java

74 lines
2.7 KiB
Java
Executable File

package uk.co.jacekk.bukkit.bloodmoon.featurelisteners;
import org.bukkit.entity.Creature;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import uk.co.jacekk.bukkit.bloodmoon.BloodMoon;
public class SwordDamageListener implements Listener {
private BloodMoon plugin;
public SwordDamageListener(BloodMoon instance){
this.plugin = instance;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityDamage(EntityDamageEvent event){
if (event.isCancelled()) return;
Entity entity = event.getEntity();
if (event.getCause() == DamageCause.ENTITY_ATTACK && BloodMoon.bloodMoonWorlds.contains(entity.getWorld().getName())){
if (entity instanceof Creature){
Creature creature = (Creature) entity;
LivingEntity target = creature.getTarget();
if (target instanceof Player){
Player player = (Player) target;
ItemStack item = player.getItemInHand();
// 190 character line :D
if (BloodMoon.config.isCreatureOnMobList("features.sword-damage.mobs", creature) && plugin.rand.nextInt(100) <= BloodMoon.config.getInt("features.sword-damage.chance")){
short damage = item.getDurability();
switch (item.getType()){
case DIAMOND_SWORD:
if (damage > BloodMoon.config.getInt("features.sword-damage.damage.diamond")){
item.setDurability((short) (item.getDurability() - BloodMoon.config.getInt("features.sword-damage.damage.diamond")));
}
case IRON_SWORD:
if (damage > BloodMoon.config.getInt("features.sword-damage.damage.iron")){
item.setDurability((short) (item.getDurability() - BloodMoon.config.getInt("features.sword-damage.damage.iron")));
}
case GOLD_SWORD:
if (damage > BloodMoon.config.getInt("features.sword-damage.damage.gold")){
item.setDurability((short) (item.getDurability() - BloodMoon.config.getInt("features.sword-damage.damage.gold")));
}
case STONE_SWORD:
if (damage > BloodMoon.config.getInt("features.sword-damage.damage.stone")){
item.setDurability((short) (item.getDurability() - BloodMoon.config.getInt("features.sword-damage.damage.stone")));
}
case WOOD_SWORD:
if (damage > BloodMoon.config.getInt("features.sword-damage.damage.wood")){
item.setDurability((short) (item.getDurability() - BloodMoon.config.getInt("features.sword-damage.damage.wood")));
}
}
}
}
}
}
}
}