From b1c9be3bbdef49d3a3b21127e03228e4eadeeb63 Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Sun, 30 Jan 2022 17:16:16 -0500 Subject: [PATCH] track kills for bows and crossbows --- .../hyper/toolstats/events/EntityDamage.java | 22 +++++++++++++++---- src/main/resources/config.yml | 4 +++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java index 6d1dc8c..275e7b5 100644 --- a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java +++ b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java @@ -21,10 +21,7 @@ import lol.hyper.toolstats.ToolStats; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Material; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Trident; +import org.bukkit.entity.*; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByBlockEvent; @@ -98,6 +95,23 @@ public class EntityDamage implements Listener { } trident.setItem(clone); } + if (event.getDamager() instanceof Arrow) { + Arrow arrow = (Arrow) event.getDamager(); + if (arrow.getShooter() instanceof Player) { + Player player = (Player) arrow.getShooter(); + ItemStack heldItem = player.getInventory().getItem(player.getInventory().getHeldItemSlot()); + if (heldItem == null) { + return; + } + if (heldItem.getType() == Material.BOW || heldItem.getType() == Material.CROSSBOW) { + if (livingEntity instanceof Player) { + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), updatePlayerKills(heldItem)); + } else { + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), updateMobKills(heldItem)); + } + } + } + } } // player is taken damage but not being killed if (livingEntity instanceof Player) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index f43650d..c8f73e3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -9,7 +9,7 @@ enabled: shears: true bow: true armor: true - # Will show time the item is created + # Will show time the item is created created-date: pickaxe: true sword: true @@ -53,10 +53,12 @@ enabled: sword: true axe: true trident: true + bow: true mob-kills: sword: true axe: true trident: true + bow: true blocks-mined: pickaxe: true shovel: true