ignore mob drops with our tags

fixes #22
This commit is contained in:
hyperdefined
2022-10-24 21:21:45 -04:00
parent 24d30f6059
commit 07458bfc11

View File

@@ -27,6 +27,8 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import java.util.*; import java.util.*;
@@ -48,9 +50,17 @@ public class EntityDeath implements Listener {
// if it's a mob we are tracking that matters // if it's a mob we are tracking that matters
if (toolStats.mobKill.trackedMobs.contains(livingEntityUUID)) { if (toolStats.mobKill.trackedMobs.contains(livingEntityUUID)) {
for (int i = 0; i < event.getDrops().size(); i++) { for (int i = 0; i < event.getDrops().size(); i++) {
ItemStack current = event.getDrops().get(i); ItemStack droppedItem = event.getDrops().get(i);
if (ItemChecker.isValidItem(current.getType())) { ItemMeta droppedItemMeta = droppedItem.getItemMeta();
ItemStack newItem = addLore(current, livingEntity.getName()); if (droppedItemMeta != null) {
PersistentDataContainer container = droppedItemMeta.getPersistentDataContainer();
if (container.has(toolStats.timeCreated, PersistentDataType.LONG)) {
continue; // ignore any items that have our tags
}
}
if (ItemChecker.isValidItem(droppedItem.getType())) {
ItemStack newItem = addLore(droppedItem, livingEntity.getName());
if (newItem != null) { if (newItem != null) {
event.getDrops().set(i, newItem); event.getDrops().set(i, newItem);
} }