74 lines
2.7 KiB
Java
Executable File
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")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|