|
21 | 21 | import org.bukkit.ChatColor; |
22 | 22 | import org.bukkit.GameMode; |
23 | 23 | import org.bukkit.Material; |
24 | | -import org.bukkit.entity.Entity; |
25 | | -import org.bukkit.entity.LivingEntity; |
26 | | -import org.bukkit.entity.Player; |
27 | | -import org.bukkit.entity.Trident; |
| 24 | +import org.bukkit.entity.*; |
28 | 25 | import org.bukkit.event.EventHandler; |
29 | 26 | import org.bukkit.event.Listener; |
30 | 27 | import org.bukkit.event.entity.EntityDamageByBlockEvent; |
@@ -98,6 +95,23 @@ public void onDamage(EntityDamageByEntityEvent event) { |
98 | 95 | } |
99 | 96 | trident.setItem(clone); |
100 | 97 | } |
| 98 | + if (event.getDamager() instanceof Arrow) { |
| 99 | + Arrow arrow = (Arrow) event.getDamager(); |
| 100 | + if (arrow.getShooter() instanceof Player) { |
| 101 | + Player player = (Player) arrow.getShooter(); |
| 102 | + ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot()); |
| 103 | + if (heldItem == null) { |
| 104 | + return; |
| 105 | + } |
| 106 | + if (heldItem.getType() == Material.BOW || heldItem.getType() == Material.CROSSBOW) { |
| 107 | + if (livingEntity instanceof Player) { |
| 108 | + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), updatePlayerKills(heldItem)); |
| 109 | + } else { |
| 110 | + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), updateMobKills(heldItem)); |
| 111 | + } |
| 112 | + } |
| 113 | + } |
| 114 | + } |
101 | 115 | } |
102 | 116 | // player is taken damage but not being killed |
103 | 117 | if (livingEntity instanceof Player) { |
|
0 commit comments