mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2025-12-06 06:41:44 +00:00
work
This commit is contained in:
@@ -9,6 +9,8 @@ import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public final class ToolStats extends JavaPlugin {
|
||||
@@ -30,6 +32,8 @@ public final class ToolStats extends JavaPlugin {
|
||||
// stores how much damage armor has taken
|
||||
public final NamespacedKey armorDamage = new NamespacedKey(this, "damage-taken");
|
||||
|
||||
public Set<NamespacedKey> keys = new HashSet<>();
|
||||
|
||||
public BlocksMined blocksMined;
|
||||
public CraftItem craftItem;
|
||||
public EntityDeath entityDeath;
|
||||
@@ -58,6 +62,15 @@ public final class ToolStats extends JavaPlugin {
|
||||
new Metrics(this, 14110);
|
||||
|
||||
Bukkit.getScheduler().runTaskAsynchronously(this, this::checkForUpdates);
|
||||
|
||||
keys.add(craftedOwner);
|
||||
keys.add(craftedTime);
|
||||
keys.add(swordPlayerKills);
|
||||
keys.add(swordMobKills);
|
||||
keys.add(genericMined);
|
||||
keys.add(fishingRodCaught);
|
||||
keys.add(shearsSheared);
|
||||
keys.add(armorDamage);
|
||||
}
|
||||
|
||||
public void checkForUpdates() {
|
||||
|
||||
@@ -67,7 +67,9 @@ public class EntityDamage implements Listener {
|
||||
Player player = (Player) livingEntity;
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
for (ItemStack armor : inventory.getArmorContents()) {
|
||||
updateArmorDamage(armor, event.getDamage());
|
||||
if (armor != null) {
|
||||
updateArmorDamage(armor, event.getDamage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,14 @@ package lol.hyper.toolstats.events;
|
||||
|
||||
import lol.hyper.toolstats.ToolStats;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -26,6 +28,22 @@ public class EntityDeath implements Listener {
|
||||
UUID livingEntityUUID = event.getEntity().getUniqueId();
|
||||
if (toolStats.mobKill.trackedMobs.contains(livingEntityUUID)) {
|
||||
for (ItemStack current : event.getDrops()) {
|
||||
ItemMeta meta = current.getItemMeta();
|
||||
boolean hasKey = false;
|
||||
// check if the mob has one of our keys
|
||||
// this will prevent the "dropped by" tag from being added
|
||||
if (meta != null) {
|
||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||
for (NamespacedKey key : container.getKeys()) {
|
||||
if (toolStats.keys.contains(key)) {
|
||||
hasKey = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasKey) {
|
||||
continue;
|
||||
}
|
||||
String name = current.getType().toString().toLowerCase(Locale.ROOT);
|
||||
for (String item : toolStats.craftItem.validItems) {
|
||||
if (name.contains(item)) {
|
||||
|
||||
Reference in New Issue
Block a user