From f242006e5fdfcd452b3893c55df8a414fdd056ca Mon Sep 17 00:00:00 2001 From: Barazok Date: Sun, 11 Oct 2020 19:40:28 +0200 Subject: [PATCH] Improve elf gameplay --- .../listeners/MineClassListeners.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/babamod/mineclass/listeners/MineClassListeners.java b/src/main/java/net/babamod/mineclass/listeners/MineClassListeners.java index f9dc73b..feda921 100644 --- a/src/main/java/net/babamod/mineclass/listeners/MineClassListeners.java +++ b/src/main/java/net/babamod/mineclass/listeners/MineClassListeners.java @@ -13,14 +13,12 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockDropItemEvent; -import org.bukkit.event.entity.EntityPickupItemEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.*; import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerPickupArrowEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.inventory.ItemStack; @@ -158,7 +156,8 @@ public class MineClassListeners implements Listener { Player player = (Player) event.getEntity(); if (event.getBow().getEnchantments().containsKey(Enchantment.ARROW_INFINITE)) { player.getInventory().addItem(new ItemStack(Material.ARROW)); - ((AbstractArrow)event.getProjectile()).setPickupStatus(AbstractArrow.PickupStatus.DISALLOWED); + ((AbstractArrow) event.getProjectile()) + .setPickupStatus(AbstractArrow.PickupStatus.DISALLOWED); } if (AppliedStatus.getInstance().isFireDwarf(player.getName())) { event.getProjectile().setFireTicks(10000); @@ -166,4 +165,25 @@ public class MineClassListeners implements Listener { } } } + + @EventHandler + public void on(EntityDamageEvent event) { + if (event.getEntity() instanceof Player) { + Player player = (Player) event.getEntity(); + if (event.getCause().equals(EntityDamageEvent.DamageCause.FALL) + && AppliedStatus.getInstance().isElf(player.getName())) { + event.setCancelled(true); + } + } + } + + @EventHandler + public void on(FoodLevelChangeEvent event) { + if (event.getEntity() instanceof Player) { + Player player = (Player) event.getEntity(); + if (AppliedStatus.getInstance().isElf(player.getName()) && player.isSprinting()) { + event.setCancelled(true); + } + } + } }