diff --git a/src/main/java/lol/hyper/toolstats/ToolStats.java b/src/main/java/lol/hyper/toolstats/ToolStats.java index f3a0149..b9bd56b 100644 --- a/src/main/java/lol/hyper/toolstats/ToolStats.java +++ b/src/main/java/lol/hyper/toolstats/ToolStats.java @@ -28,119 +28,18 @@ import lol.hyper.toolstats.tools.config.ConfigTools; import lol.hyper.toolstats.tools.config.ConfigUpdater; import net.kyori.adventure.text.logger.slf4j.ComponentLogger; import org.bukkit.Bukkit; -import org.bukkit.NamespacedKey; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ShapedRecipe; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; -import java.util.HashSet; -import java.util.Set; public final class ToolStats extends JavaPlugin { - /** - * Stores who created an item. - */ - public final NamespacedKey itemOwner = new NamespacedKey(this, "owner"); - /** - * Stores when the item was created. - */ - public final NamespacedKey timeCreated = new NamespacedKey(this, "time-created"); - /** - * Stores how many player kills. - */ - public final NamespacedKey playerKills = new NamespacedKey(this, "player-kills"); - /** - * Stores how many mob kills. - */ - public final NamespacedKey mobKills = new NamespacedKey(this, "mob-kills"); - /** - * Stores how many blocks were mined. - */ - public final NamespacedKey blocksMined = new NamespacedKey(this, "generic-mined"); - /** - * Stores how many crops were harvested. - */ - public final NamespacedKey cropsHarvested = new NamespacedKey(this, "crops-mined"); - /** - * Stores how many fish were caught. - */ - public final NamespacedKey fishCaught = new NamespacedKey(this, "fish-caught"); - /** - * Stores how many sheep were sheared. - */ - public final NamespacedKey sheepSheared = new NamespacedKey(this, "sheared"); - /** - * Stores how much damage an armor piece has taken. - */ - public final NamespacedKey armorDamage = new NamespacedKey(this, "damage-taken"); - /** - * Stores how much damage a weapon has done. - */ - public final NamespacedKey damageDone = new NamespacedKey(this, "damage-done"); - /** - * Key for tracking new elytras that spawn. - */ - public final NamespacedKey newElytra = new NamespacedKey(this, "new"); - /** - * Key for item has. - */ - public final NamespacedKey hash = new NamespacedKey(this, "hash"); - /** - * Key for arrows shot. - */ - public final NamespacedKey arrowsShot = new NamespacedKey(this, "arrows-shot"); - /** - * Key for arrows shot. - */ - public final NamespacedKey droppedBy = new NamespacedKey(this, "dropped-by"); - /** - * Key for tracking flight time. - */ - public final NamespacedKey flightTime = new NamespacedKey(this, "flightTime"); - /** - * Key for token type. This is for the token itself. - */ - public final NamespacedKey tokenType = new NamespacedKey(this, "token-type"); - /** - * Key for applied token. This is what goes onto the tool/armor to record the type. - */ - public final NamespacedKey tokenApplied = new NamespacedKey(this, "token-applied"); - /** - * Key for withers killed. - */ - public final NamespacedKey witherKills = new NamespacedKey(this, "wither-kills"); - /** - * Key for withers killed. - */ - public final NamespacedKey enderDragonKills = new NamespacedKey(this, "enderdragon-kills"); - /** - * Key for critical strikes. - */ - public final NamespacedKey criticalStrikes = new NamespacedKey(this, "critical-strikes"); - /** - * Key for trident throws. - */ - public final NamespacedKey tridentThrows = new NamespacedKey(this, "trident-throws"); - - /** - * Stores how an item was created. - * 0 = crafted. - * 1 = dropped. - * 2 = looted. - * 3 = traded. - * 4 = founded (for elytras). - * 5 = fished. - * 6 = spawned in (creative). - */ - public final NamespacedKey originType = new NamespacedKey(this, "origin"); - public final int CONFIG_VERSION = 14; public final ComponentLogger logger = this.getComponentLogger(); public final File configFile = new File(this.getDataFolder(), "config.yml"); public boolean tokens = false; - public final Set tokenKeys = new HashSet<>(); public BlockBreak blockBreak; public ChunkPopulate chunkPopulate; @@ -172,6 +71,7 @@ public final class ToolStats extends JavaPlugin { public HyperLib hyperLib; public TextUtils textUtils; public ProjectileShoot projectileShoot; + public ToolStatsKeys toolStatsKeys; @Override public void onEnable() { @@ -190,6 +90,8 @@ public final class ToolStats extends JavaPlugin { loadConfig(); configTools = new ConfigTools(this); + toolStatsKeys = new ToolStatsKeys(this); + toolStatsKeys.make(); tokenData = new TokenData(this); tokenData.setup(); for (ShapedRecipe recipe : tokenData.getRecipes()) { @@ -223,21 +125,6 @@ public final class ToolStats extends JavaPlugin { blockDispenseEvent = new BlockDispenseEvent(this); projectileShoot = new ProjectileShoot(this); - // save which stat can be used by a reset token - tokenKeys.add(blocksMined); - tokenKeys.add(playerKills); - tokenKeys.add(mobKills); - tokenKeys.add(cropsHarvested); - tokenKeys.add(sheepSheared); - tokenKeys.add(fishCaught); - tokenKeys.add(flightTime); - tokenKeys.add(arrowsShot); - tokenKeys.add(armorDamage); - tokenKeys.add(witherKills); - tokenKeys.add(enderDragonKills); - tokenKeys.add(criticalStrikes); - tokenKeys.add(tridentThrows); - Bukkit.getServer().getPluginManager().registerEvents(blockBreak, this); Bukkit.getServer().getPluginManager().registerEvents(chunkPopulate, this); Bukkit.getServer().getPluginManager().registerEvents(craftItem, this); diff --git a/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java b/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java index c2e8422..507a6a8 100644 --- a/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java +++ b/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java @@ -254,8 +254,8 @@ public class CommandToolStats implements TabExecutor { // set how the item was obtained Integer origin = -1; - if (container.has(toolStats.originType, PersistentDataType.INTEGER)) { - origin = container.get(toolStats.originType, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER)) { + origin = container.get(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER); } // set to -1 if it's invalid @@ -263,10 +263,10 @@ public class CommandToolStats implements TabExecutor { origin = -1; } - if (container.has(toolStats.droppedBy, PersistentDataType.STRING)) { + if (container.has(toolStats.toolStatsKeys.getDroppedBy(), PersistentDataType.STRING)) { if (toolStats.config.getBoolean("enabled.dropped-by")) { - if (container.has(toolStats.droppedBy)) { - String droppedBy = container.get(toolStats.droppedBy, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getDroppedBy())) { + String droppedBy = container.get(toolStats.toolStatsKeys.getDroppedBy(), PersistentDataType.STRING); lore.add(toolStats.configTools.formatLore("dropped-by", "{name}", droppedBy)); } else { player.sendMessage(Component.text("Unable to set 'dropped-by', as this item has no record of it.")); @@ -274,8 +274,8 @@ public class CommandToolStats implements TabExecutor { } } - if (container.has(toolStats.itemOwner, new UUIDDataType())) { - UUID owner = container.get(toolStats.itemOwner, new UUIDDataType()); + if (container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { + UUID owner = container.get(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType()); String ownerName = null; // if we can read the current owner if (owner != null) { @@ -288,7 +288,7 @@ public class CommandToolStats implements TabExecutor { if (ownerName == null) { player.sendMessage(Component.text("The owner of this item is null. Setting to " + player.getName() + ".", NamedTextColor.RED)); ownerName = player.getName(); - container.set(toolStats.itemOwner, new UUIDDataType(), player.getUniqueId()); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), player.getUniqueId()); } // add the ownership lore @@ -298,8 +298,8 @@ public class CommandToolStats implements TabExecutor { } } - if (container.has(toolStats.timeCreated, PersistentDataType.LONG)) { - Long time = container.get(toolStats.timeCreated, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG)) { + Long time = container.get(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG); if (time != null) { // add the creation time lore Component creationTimeLore = toolStats.itemLore.formatCreationTime(time, origin, original); @@ -309,8 +309,8 @@ public class CommandToolStats implements TabExecutor { } } if (toolStats.config.getBoolean("enabled.flight-time")) { - if (container.has(toolStats.flightTime, PersistentDataType.LONG)) { - Long flightTime = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG)) { + Long flightTime = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (flightTime != null) { Map flightTimeFormatted = toolStats.numberFormat.formatTime(flightTime); Component line = toolStats.configTools.formatLoreMultiplePlaceholders("flight-time", flightTimeFormatted); @@ -319,16 +319,16 @@ public class CommandToolStats implements TabExecutor { } } if (toolStats.configTools.checkConfig(original.getType(), "player-kills")) { - if (container.has(toolStats.playerKills, PersistentDataType.INTEGER)) { - Integer kills = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER)) { + Integer kills = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (kills != null) { lore.add(toolStats.configTools.formatLore("kills.player", "{kills}", toolStats.numberFormat.formatInt(kills))); } } } if (toolStats.configTools.checkConfig(original.getType(), "mob-kills")) { - if (container.has(toolStats.mobKills, PersistentDataType.INTEGER)) { - Integer kills = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER)) { + Integer kills = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (kills != null) { lore.add(toolStats.configTools.formatLore("kills.mob", "{kills}", toolStats.numberFormat.formatInt(kills))); } @@ -336,87 +336,87 @@ public class CommandToolStats implements TabExecutor { } if (toolStats.configTools.checkConfig(original.getType(), "blocks-mined")) { if (original.getType().toString().toLowerCase(Locale.ROOT).contains("hoe")) { - if (container.has(toolStats.cropsHarvested, PersistentDataType.INTEGER)) { - Integer crops = container.get(toolStats.cropsHarvested, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER)) { + Integer crops = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); if (crops != null) { lore.add(toolStats.configTools.formatLore("crops-harvested", "{crops}", toolStats.numberFormat.formatInt(crops))); } } } - if (container.has(toolStats.blocksMined, PersistentDataType.INTEGER)) { - Integer blocksMined = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER)) { + Integer blocksMined = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (blocksMined != null) { lore.add(toolStats.configTools.formatLore("blocks-mined", "{blocks}", toolStats.numberFormat.formatInt(blocksMined))); } } } if (toolStats.config.getBoolean("enabled.fish-caught")) { - if (container.has(toolStats.fishCaught, PersistentDataType.INTEGER)) { - Integer fish = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER)) { + Integer fish = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (fish != null) { lore.add(toolStats.configTools.formatLore("fished.fish-caught", "{fish}", toolStats.numberFormat.formatInt(fish))); } } } if (toolStats.config.getBoolean("enabled.sheep-sheared")) { - if (container.has(toolStats.sheepSheared, PersistentDataType.INTEGER)) { - Integer sheep = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER)) { + Integer sheep = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (sheep != null) { lore.add(toolStats.configTools.formatLore("sheep-sheared", "{sheep}", toolStats.numberFormat.formatInt(sheep))); } } } if (toolStats.config.getBoolean("enabled.armor-damage")) { - if (container.has(toolStats.armorDamage, PersistentDataType.DOUBLE)) { - Double damage = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE)) { + Double damage = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (damage != null) { lore.add(toolStats.configTools.formatLore("damage-taken", "{damage}", toolStats.numberFormat.formatDouble(damage))); } } } if (toolStats.configTools.checkConfig(original.getType(), "damage-done")) { - if (container.has(toolStats.damageDone, PersistentDataType.DOUBLE)) { - Double damage = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE)) { + Double damage = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (damage != null) { lore.add(toolStats.configTools.formatLore("damage-done", "{damage}", toolStats.numberFormat.formatDouble(damage))); } } } if (toolStats.config.getBoolean("enabled.arrows-shot")) { - if (container.has(toolStats.arrowsShot, PersistentDataType.INTEGER)) { - Integer arrows = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER)) { + Integer arrows = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); if (arrows != null) { lore.add(toolStats.configTools.formatLore("arrows-shot", "{arrows}", toolStats.numberFormat.formatInt(arrows))); } } } if (toolStats.config.getBoolean("enabled.bosses-killed.wither")) { - if (container.has(toolStats.witherKills, PersistentDataType.INTEGER)) { - Integer kills = container.get(toolStats.witherKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER)) { + Integer kills = container.get(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER); if (kills != null) { lore.add(toolStats.configTools.formatLore("bosses-killed.wither", "{kills}", toolStats.numberFormat.formatInt(kills))); } } } if (toolStats.config.getBoolean("enabled.bosses-killed.enderdragon")) { - if (container.has(toolStats.enderDragonKills, PersistentDataType.INTEGER)) { - Integer kills = container.get(toolStats.enderDragonKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER)) { + Integer kills = container.get(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER); if (kills != null) { lore.add(toolStats.configTools.formatLore("bosses-killed.enderdragon", "{kills}", toolStats.numberFormat.formatInt(kills))); } } } if (toolStats.config.getBoolean("enabled.critical-strikes")) { - if (container.has(toolStats.criticalStrikes, PersistentDataType.INTEGER)) { - Integer strikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER)) { + Integer strikes = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (strikes != null) { lore.add(toolStats.configTools.formatLore("critical-strikes", "{strikes}", toolStats.numberFormat.formatInt(strikes))); } } } if (toolStats.config.getBoolean("enabled.trident-throws")) { - if (container.has(toolStats.tridentThrows, PersistentDataType.INTEGER)) { - Integer tridentThrows = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER)) { + Integer tridentThrows = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); if (tridentThrows != null) { lore.add(toolStats.configTools.formatLore("trident-throws", "{times}", toolStats.numberFormat.formatInt(tridentThrows))); } @@ -461,7 +461,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.cropsHarvested)) { + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { int value; try { value = Integer.parseInt((String) userValue); @@ -473,7 +473,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.cropsHarvested, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -490,7 +490,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.blocksMined)) { + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { int value; try { value = Integer.parseInt((String) userValue); @@ -502,7 +502,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -519,7 +519,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.armorDamage)) { + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { double value; try { value = Double.parseDouble((String) userValue); @@ -531,7 +531,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Double statValue = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + Double statValue = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -548,7 +548,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.damageDone)) { + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { double value; try { value = Double.parseDouble((String) userValue); @@ -560,7 +560,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Double statValue = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + Double statValue = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -577,7 +577,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.mobKills)) { + if (container.has(toolStats.toolStatsKeys.getMobKills())) { int value; try { value = Integer.parseInt((String) userValue); @@ -589,7 +589,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -606,7 +606,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.playerKills)) { + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { int value; try { value = Integer.parseInt((String) userValue); @@ -618,7 +618,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -635,7 +635,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.arrowsShot)) { + if (container.has(toolStats.toolStatsKeys.getArrowsShot())) { int value; try { value = Integer.parseInt((String) userValue); @@ -647,7 +647,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -664,7 +664,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.sheepSheared)) { + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { int value; try { value = Integer.parseInt((String) userValue); @@ -676,7 +676,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -693,7 +693,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.flightTime)) { + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { int value; try { value = Integer.parseInt((String) userValue); @@ -705,7 +705,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Long statValue = container.get(toolStats.flightTime, PersistentDataType.LONG); + Long statValue = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -722,7 +722,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.fishCaught)) { + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { int value; try { value = Integer.parseInt((String) userValue); @@ -734,7 +734,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -751,7 +751,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.witherKills)) { + if (container.has(toolStats.toolStatsKeys.getWitherKills())) { int value; try { value = Integer.parseInt((String) userValue); @@ -763,7 +763,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.witherKills, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -780,7 +780,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.enderDragonKills)) { + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills())) { int value; try { value = Integer.parseInt((String) userValue); @@ -792,7 +792,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.enderDragonKills, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -809,7 +809,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.criticalStrikes)) { + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { int value; try { value = Integer.parseInt((String) userValue); @@ -821,7 +821,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -838,7 +838,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("This stat is disabled.", NamedTextColor.RED)); return; } - if (container.has(toolStats.tridentThrows)) { + if (container.has(toolStats.toolStatsKeys.getTridentThrows())) { int value; try { value = Integer.parseInt((String) userValue); @@ -850,7 +850,7 @@ public class CommandToolStats implements TabExecutor { player.sendMessage(Component.text("Number must be positive.", NamedTextColor.RED)); return; } - Integer statValue = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + Integer statValue = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; @@ -888,23 +888,23 @@ public class CommandToolStats implements TabExecutor { PersistentDataContainer container = editedItemMeta.getPersistentDataContainer(); switch (stat) { case "crops-harvested": { - if (container.has(toolStats.cropsHarvested)) { - Integer statValue = container.get(toolStats.cropsHarvested, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.cropsHarvested); + container.remove(toolStats.toolStatsKeys.getCropsHarvested()); List newTokens = toolStats.itemChecker.removeToken(tokens, "crops-mined"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("crops-harvested", "{crops}", toolStats.numberFormat.formatInt(statValue)); @@ -916,23 +916,23 @@ public class CommandToolStats implements TabExecutor { break; } case "blocks-mined": { - if (container.has(toolStats.blocksMined)) { - Integer statValue = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.blocksMined); + container.remove(toolStats.toolStatsKeys.getBlocksMined()); List newTokens = toolStats.itemChecker.removeToken(tokens, "blocks-mined"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("blocks-mined", "{blocks}", toolStats.numberFormat.formatInt(statValue)); @@ -944,23 +944,23 @@ public class CommandToolStats implements TabExecutor { break; } case "damage-taken": { - if (container.has(toolStats.armorDamage)) { - Double statValue = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { + Double statValue = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.armorDamage); + container.remove(toolStats.toolStatsKeys.getArmorDamage()); List newTokens = toolStats.itemChecker.removeToken(tokens, "damage-taken"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("damage-taken", "{damage}", toolStats.numberFormat.formatDouble(statValue)); @@ -972,23 +972,23 @@ public class CommandToolStats implements TabExecutor { break; } case "damage-done": { - if (container.has(toolStats.damageDone)) { - Double statValue = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { + Double statValue = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.damageDone); + container.remove(toolStats.toolStatsKeys.getDamageDone()); List newTokens = toolStats.itemChecker.removeToken(tokens, "damage-done"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("damage-done", "{damage}", toolStats.numberFormat.formatDouble(statValue)); @@ -1000,23 +1000,23 @@ public class CommandToolStats implements TabExecutor { break; } case "mob-kills": { - if (container.has(toolStats.mobKills)) { - Integer statValue = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.mobKills); + container.remove(toolStats.toolStatsKeys.getMobKills()); List newTokens = toolStats.itemChecker.removeToken(tokens, "mob-kills"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("kills.mob", "{kills}", toolStats.numberFormat.formatInt(statValue)); @@ -1028,23 +1028,23 @@ public class CommandToolStats implements TabExecutor { break; } case "player-kills": { - if (container.has(toolStats.playerKills)) { - Integer statValue = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.playerKills); + container.remove(toolStats.toolStatsKeys.getPlayerKills()); List newTokens = toolStats.itemChecker.removeToken(tokens, "player-kills"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("kills.player", "{kills}", toolStats.numberFormat.formatInt(statValue)); @@ -1056,23 +1056,23 @@ public class CommandToolStats implements TabExecutor { break; } case "sheep-sheared": { - if (container.has(toolStats.sheepSheared)) { - Integer statValue = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.sheepSheared); + container.remove(toolStats.toolStatsKeys.getSheepSheared()); List newTokens = toolStats.itemChecker.removeToken(tokens, "sheep-sheared"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("sheep-sheared", "{sheep}", toolStats.numberFormat.formatInt(statValue)); @@ -1084,23 +1084,23 @@ public class CommandToolStats implements TabExecutor { break; } case "flight-time": { - if (container.has(toolStats.flightTime)) { - Long statValue = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { + Long statValue = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.flightTime); + container.remove(toolStats.toolStatsKeys.getFlightTime()); List newTokens = toolStats.itemChecker.removeToken(tokens, "flight-time"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Map timeFormatted = toolStats.numberFormat.formatTime(statValue); @@ -1113,23 +1113,23 @@ public class CommandToolStats implements TabExecutor { break; } case "fight-caught": { - if (container.has(toolStats.fishCaught)) { - Integer statValue = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.fishCaught); + container.remove(toolStats.toolStatsKeys.getFishCaught()); List newTokens = toolStats.itemChecker.removeToken(tokens, "fight-caught"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("fished.fish-caught", "{fish}", toolStats.numberFormat.formatInt(statValue)); @@ -1141,23 +1141,23 @@ public class CommandToolStats implements TabExecutor { break; } case "wither-kills": { - if (container.has(toolStats.witherKills)) { - Integer statValue = container.get(toolStats.witherKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getWitherKills())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.witherKills); + container.remove(toolStats.toolStatsKeys.getWitherKills()); List newTokens = toolStats.itemChecker.removeToken(tokens, "wither-kills"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("bosses-killed.wither", "{kills}", toolStats.numberFormat.formatInt(statValue)); @@ -1169,23 +1169,23 @@ public class CommandToolStats implements TabExecutor { break; } case "enderdragon-kills": { - if (container.has(toolStats.enderDragonKills)) { - Integer statValue = container.get(toolStats.enderDragonKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.enderDragonKills); + container.remove(toolStats.toolStatsKeys.getEnderDragonKills()); List newTokens = toolStats.itemChecker.removeToken(tokens, "enderdragon-kills"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("bosses-killed.enderdragon", "{kills}", toolStats.numberFormat.formatInt(statValue)); @@ -1197,23 +1197,23 @@ public class CommandToolStats implements TabExecutor { break; } case "critical-strikes": { - if (container.has(toolStats.criticalStrikes)) { - Integer statValue = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.criticalStrikes); + container.remove(toolStats.toolStatsKeys.getCriticalStrikes()); List newTokens = toolStats.itemChecker.removeToken(tokens, "critical-strikes"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("critical-strikes", "{strikes}", toolStats.numberFormat.formatInt(statValue)); @@ -1225,23 +1225,23 @@ public class CommandToolStats implements TabExecutor { break; } case "trident-throws": { - if (container.has(toolStats.tridentThrows)) { - Integer statValue = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getTridentThrows())) { + Integer statValue = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); if (statValue == null) { player.sendMessage(Component.text("Unable to get stat from item.", NamedTextColor.RED)); return; } - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { player.sendMessage(Component.text("Unable to get tokens from item.", NamedTextColor.RED)); return; } - container.remove(toolStats.tridentThrows); + container.remove(toolStats.toolStatsKeys.getTridentThrows()); List newTokens = toolStats.itemChecker.removeToken(tokens, "trident-throws"); if (newTokens.isEmpty()) { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } else { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } Component oldLine = toolStats.configTools.formatLore("trident-throws", "{times}", toolStats.numberFormat.formatInt(statValue)); diff --git a/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java b/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java index ae475bf..d9fa4a8 100644 --- a/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java @@ -65,12 +65,12 @@ public class AnvilEvent implements Listener { PersistentDataContainer secondSlotContainer = secondSlot.getItemMeta().getPersistentDataContainer(); // make sure the 2nd item is one of ours - if (!secondSlotContainer.has(toolStats.tokenType, PersistentDataType.STRING)) { + if (!secondSlotContainer.has(toolStats.toolStatsKeys.getTokenType(), PersistentDataType.STRING)) { return; } // get the type from the token - String tokenType = secondSlotContainer.get(toolStats.tokenType, PersistentDataType.STRING); + String tokenType = secondSlotContainer.get(toolStats.toolStatsKeys.getTokenType(), PersistentDataType.STRING); if (tokenType == null) { return; } @@ -384,112 +384,112 @@ public class AnvilEvent implements Listener { ItemMeta meta = finalItem.getItemMeta(); PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.playerKills)) { - Integer playerKills = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { + Integer playerKills = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (playerKills == null) { return; } meta = toolStats.itemLore.updatePlayerKills(finalItem, -playerKills); finalItem.setItemMeta(meta); } - if (container.has(toolStats.mobKills)) { - Integer mobKills = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills())) { + Integer mobKills = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (mobKills == null) { return; } meta = toolStats.itemLore.updateMobKills(finalItem, -mobKills); finalItem.setItemMeta(meta); } - if (container.has(toolStats.blocksMined)) { - Integer blocksMined = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { + Integer blocksMined = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (blocksMined == null) { return; } meta = toolStats.itemLore.updateBlocksMined(finalItem, -blocksMined); finalItem.setItemMeta(meta); } - if (container.has(toolStats.cropsHarvested)) { - Integer cropsHarvested = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { + Integer cropsHarvested = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); if (cropsHarvested == null) { return; } meta = toolStats.itemLore.updateCropsMined(finalItem, -cropsHarvested); finalItem.setItemMeta(meta); } - if (container.has(toolStats.fishCaught)) { - Integer fishCaught = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { + Integer fishCaught = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (fishCaught == null) { return; } meta = toolStats.itemLore.updateFishCaught(finalItem, -fishCaught); finalItem.setItemMeta(meta); } - if (container.has(toolStats.sheepSheared)) { - Integer sheepSheared = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { + Integer sheepSheared = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (sheepSheared == null) { return; } meta = toolStats.itemLore.updateSheepSheared(finalItem, -sheepSheared); finalItem.setItemMeta(meta); } - if (container.has(toolStats.armorDamage)) { - Double armorDamage = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { + Double armorDamage = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (armorDamage == null) { return; } meta = toolStats.itemLore.updateArmorDamage(finalItem, -armorDamage, true); finalItem.setItemMeta(meta); } - if (container.has(toolStats.damageDone)) { - Double damageDone = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { + Double damageDone = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (damageDone == null) { return; } meta = toolStats.itemLore.updateArmorDamage(finalItem, -damageDone, true); finalItem.setItemMeta(meta); } - if (container.has(toolStats.arrowsShot)) { - Integer arrowsShot = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getArrowsShot())) { + Integer arrowsShot = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); if (arrowsShot == null) { return; } meta = toolStats.itemLore.updateArrowsShot(finalItem, -arrowsShot); finalItem.setItemMeta(meta); } - if (container.has(toolStats.flightTime)) { - Long flightTime = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { + Long flightTime = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (flightTime == null) { return; } meta = toolStats.itemLore.updateFlightTime(finalItem, -flightTime); finalItem.setItemMeta(meta); } - if (container.has(toolStats.witherKills)) { - Integer witherKills = container.get(toolStats.witherKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getWitherKills())) { + Integer witherKills = container.get(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER); if (witherKills == null) { return; } meta = toolStats.itemLore.updateBossesKilled(finalItem, -witherKills, "wither"); finalItem.setItemMeta(meta); } - if (container.has(toolStats.enderDragonKills)) { - Integer enderDragonKills = container.get(toolStats.enderDragonKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills())) { + Integer enderDragonKills = container.get(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER); if (enderDragonKills == null) { return; } meta = toolStats.itemLore.updateBossesKilled(finalItem, -enderDragonKills, "enderdragon"); finalItem.setItemMeta(meta); } - if (container.has(toolStats.criticalStrikes)) { - Integer criticalStrikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { + Integer criticalStrikes = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (criticalStrikes == null) { return; } meta = toolStats.itemLore.updateCriticalStrikes(finalItem, -criticalStrikes); finalItem.setItemMeta(meta); } - if (container.has(toolStats.tridentThrows)) { - Integer tridentThrows = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getTridentThrows())) { + Integer tridentThrows = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); if (tridentThrows == null) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java b/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java index 5a0bc4a..5cd82ab 100644 --- a/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java @@ -99,7 +99,7 @@ public class BlockDispenseEvent implements Listener { } PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -114,8 +114,8 @@ public class BlockDispenseEvent implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 2, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 2); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 2); lore.add(creationDate); meta.lore(lore); } @@ -123,8 +123,8 @@ public class BlockDispenseEvent implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 2, newItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 2); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 2); lore.add(itemOwner); meta.lore(lore); } @@ -132,7 +132,7 @@ public class BlockDispenseEvent implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/events/ChunkPopulate.java b/src/main/java/lol/hyper/toolstats/events/ChunkPopulate.java index f02c972..34736eb 100644 --- a/src/main/java/lol/hyper/toolstats/events/ChunkPopulate.java +++ b/src/main/java/lol/hyper/toolstats/events/ChunkPopulate.java @@ -68,7 +68,7 @@ public class ChunkPopulate implements Listener { } // add the new tag so we know it's new PersistentDataContainer container = meta.getPersistentDataContainer(); - container.set(toolStats.newElytra, PersistentDataType.INTEGER, 1); + container.set(toolStats.toolStatsKeys.getElytraKey(), PersistentDataType.INTEGER, 1); elytraCopy.setItemMeta(meta); itemFrame.setItem(elytraCopy); } diff --git a/src/main/java/lol/hyper/toolstats/events/CraftItem.java b/src/main/java/lol/hyper/toolstats/events/CraftItem.java index ecb8ee6..08d580e 100644 --- a/src/main/java/lol/hyper/toolstats/events/CraftItem.java +++ b/src/main/java/lol/hyper/toolstats/events/CraftItem.java @@ -130,7 +130,7 @@ public class CraftItem implements Listener { // if the item already has the tag // this is to prevent duplicate tags - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -145,8 +145,8 @@ public class CraftItem implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 0, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 0); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 0); lore.add(creationDate); meta.lore(lore); } @@ -154,8 +154,8 @@ public class CraftItem implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 0, newItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 0); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 0); lore.add(itemOwner); meta.lore(lore); } @@ -163,7 +163,7 @@ public class CraftItem implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newItem.setItemMeta(meta); return newItem; diff --git a/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java b/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java index f4ae902..fb5ee7b 100644 --- a/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java @@ -61,7 +61,7 @@ public class CreativeEvent implements Listener { // if the item already has an origin set, don't add it again // this is needed since you can spam click an item and the event will fire again PersistentDataContainer container = spawnedItemMeta.getPersistentDataContainer(); - if (container.has(toolStats.originType, PersistentDataType.INTEGER)) { + if (container.has(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER)) { return; } @@ -97,7 +97,7 @@ public class CreativeEvent implements Listener { // if the item already has the tag // this is to prevent duplicate tags - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -112,8 +112,8 @@ public class CreativeEvent implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 6, newSpawnedItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 6); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 6); lore.add(creationDate); meta.lore(lore); } @@ -121,8 +121,8 @@ public class CreativeEvent implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 6, newSpawnedItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 6); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 6); lore.add(itemOwner); meta.lore(lore); } @@ -130,7 +130,7 @@ public class CreativeEvent implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newSpawnedItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newSpawnedItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/events/EntityDeath.java b/src/main/java/lol/hyper/toolstats/events/EntityDeath.java index 2ba48cc..a5db1e6 100644 --- a/src/main/java/lol/hyper/toolstats/events/EntityDeath.java +++ b/src/main/java/lol/hyper/toolstats/events/EntityDeath.java @@ -57,7 +57,7 @@ public class EntityDeath implements Listener { ItemMeta droppedItemMeta = droppedItem.getItemMeta(); if (droppedItemMeta != null) { PersistentDataContainer container = droppedItemMeta.getPersistentDataContainer(); - if (container.has(toolStats.originType, PersistentDataType.INTEGER)) { + if (container.has(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER)) { continue; // ignore any items that have our tags } @@ -109,15 +109,15 @@ public class EntityDeath implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 1, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 1); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 1); lore.add(creationDate); meta.lore(lore); } if (toolStats.config.getBoolean("enabled.dropped-by")) { - container.set(toolStats.originType, PersistentDataType.INTEGER, 1); - container.set(toolStats.droppedBy, PersistentDataType.STRING, mobName); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 1); + container.set(toolStats.toolStatsKeys.getDroppedBy(), PersistentDataType.STRING, mobName); Component droppedBy = toolStats.configTools.formatLore("dropped-by", "{name}", mobName); lore.add(droppedBy); } diff --git a/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java b/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java index 29eaa17..bab52f4 100644 --- a/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java +++ b/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java @@ -107,7 +107,7 @@ public class GenerateLoot implements Listener { } PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -122,8 +122,8 @@ public class GenerateLoot implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 2, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 2); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 2); lore.add(creationDate); meta.lore(lore); } @@ -131,8 +131,8 @@ public class GenerateLoot implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 2, newItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 2); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 2); lore.add(itemOwner); meta.lore(lore); } @@ -140,7 +140,7 @@ public class GenerateLoot implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java b/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java index 5160579..0de96d8 100644 --- a/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java +++ b/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java @@ -69,13 +69,13 @@ public class InventoryOpen implements Listener { if (toolStats.config.getBoolean("tokens.enabled")) { // if the token system is on and the item doesn't have stat keys - if (toolStats.itemChecker.keyCheck(container) && !container.has(toolStats.tokenType)) { + if (toolStats.itemChecker.keyCheck(container) && !container.has(toolStats.toolStatsKeys.getTokenType())) { // add the tokens String newTokens = toolStats.itemChecker.addTokensToExisting(itemStack); if (newTokens == null) { return; } - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); itemStack.setItemMeta(itemMeta); } } @@ -83,29 +83,29 @@ public class InventoryOpen implements Listener { // generate a hash if the item doesn't have one (and enabled) // if hashes are disabled and the item has one, remove it. if (toolStats.config.getBoolean("generate-hash-for-items")) { - if (!container.has(toolStats.hash, PersistentDataType.STRING)) { + if (!container.has(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING)) { UUID owner = null; // get the current owner if there is one. - if (container.has(toolStats.itemOwner, new UUIDDataType())) { - owner = container.get(toolStats.itemOwner, new UUIDDataType()); + if (container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { + owner = container.get(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType()); } // if there is no owner, use the player holding it if (owner == null) { owner = player.getUniqueId(); } - Long timestamp = container.get(toolStats.timeCreated, PersistentDataType.LONG); + Long timestamp = container.get(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG); if (timestamp == null) { // if there is no time created, use now timestamp = System.currentTimeMillis(); } String hash = toolStats.hashMaker.makeHash(itemStack.getType(), owner, timestamp); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); itemStack.setItemMeta(itemMeta); } } else { // if hashes are disabled but the item has one, remove it. - if (container.has(toolStats.hash, PersistentDataType.STRING)) { - container.remove(toolStats.hash); + if (container.has(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING)) { + container.remove(toolStats.toolStatsKeys.getHash()); itemStack.setItemMeta(itemMeta); } } diff --git a/src/main/java/lol/hyper/toolstats/events/PickupItem.java b/src/main/java/lol/hyper/toolstats/events/PickupItem.java index 1f10b4e..10ca690 100644 --- a/src/main/java/lol/hyper/toolstats/events/PickupItem.java +++ b/src/main/java/lol/hyper/toolstats/events/PickupItem.java @@ -67,7 +67,7 @@ public class PickupItem implements Listener { PersistentDataContainer container = meta.getPersistentDataContainer(); if (itemStack.getType() == Material.ELYTRA) { // the elytra has the new key, set the lore to it - if (container.has(toolStats.newElytra, PersistentDataType.INTEGER)) { + if (container.has(toolStats.toolStatsKeys.getElytraKey(), PersistentDataType.INTEGER)) { ItemStack newElytra = addElytraOrigin(itemStack, (Player) event.getEntity()); if (newElytra != null) { item.setItemStack(newElytra); @@ -105,7 +105,7 @@ public class PickupItem implements Listener { // only make the hash if it's enabled if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(finalItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } // get the current lore the item @@ -116,23 +116,23 @@ public class PickupItem implements Listener { lore = new ArrayList<>(); } - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 4); - container.remove(toolStats.newElytra); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 4); + container.remove(toolStats.toolStatsKeys.getElytraKey()); Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 4, finalItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 4); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 4); lore.add(creationDate); meta.lore(lore); } Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 4, finalItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 4); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 4); lore.add(itemOwner); meta.lore(lore); } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java index 54a7320..6710c0f 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java @@ -117,7 +117,7 @@ public class PlayerFish implements Listener { } PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -132,8 +132,8 @@ public class PlayerFish implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 5, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 5); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 5); lore.add(creationDate); meta.lore(lore); } @@ -141,8 +141,8 @@ public class PlayerFish implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 5, newItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 5); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 5); lore.add(itemOwner); meta.lore(lore); } @@ -150,7 +150,7 @@ public class PlayerFish implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java b/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java index 35e7637..56665fa 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java @@ -60,42 +60,42 @@ public class PlayerJoin implements Listener { if (toolStats.config.getBoolean("tokens.enabled")) { // if the token system is on and the item doesn't have stat keys - if (toolStats.itemChecker.keyCheck(container) && !container.has(toolStats.tokenType)) { + if (toolStats.itemChecker.keyCheck(container) && !container.has(toolStats.toolStatsKeys.getTokenType())) { // add the tokens String newTokens = toolStats.itemChecker.addTokensToExisting(itemStack); if (newTokens == null) { return; } - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); itemStack.setItemMeta(itemMeta); } } // generate a hash if the item doesn't have one if (toolStats.config.getBoolean("generate-hash-for-items")) { - if (!container.has(toolStats.hash, PersistentDataType.STRING)) { + if (!container.has(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING)) { UUID owner = null; // get the current owner if there is one. - if (container.has(toolStats.itemOwner, new UUIDDataType())) { - owner = container.get(toolStats.itemOwner, new UUIDDataType()); + if (container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { + owner = container.get(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType()); } // if there is no owner, use the player holding it if (owner == null) { owner = player.getUniqueId(); } - Long timestamp = container.get(toolStats.timeCreated, PersistentDataType.LONG); + Long timestamp = container.get(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG); if (timestamp == null) { // if there is no time created, use now timestamp = System.currentTimeMillis(); } String hash = toolStats.hashMaker.makeHash(itemStack.getType(), owner, timestamp); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); itemStack.setItemMeta(itemMeta); } } else { // if hashes are disabled but the item has one, remove it. - if (container.has(toolStats.hash, PersistentDataType.STRING)) { - container.remove(toolStats.hash); + if (container.has(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING)) { + container.remove(toolStats.toolStatsKeys.getHash()); itemStack.setItemMeta(itemMeta); } } diff --git a/src/main/java/lol/hyper/toolstats/events/PrepareCraft.java b/src/main/java/lol/hyper/toolstats/events/PrepareCraft.java index 5d1bc2d..78643d0 100644 --- a/src/main/java/lol/hyper/toolstats/events/PrepareCraft.java +++ b/src/main/java/lol/hyper/toolstats/events/PrepareCraft.java @@ -48,7 +48,7 @@ public class PrepareCraft implements Listener { } // if the paper item has our PDC, cancel it PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.tokenType)) { + if (container.has(toolStats.toolStatsKeys.getTokenType())) { event.getInventory().setResult(null); } } diff --git a/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java b/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java index f800528..aa2e5fe 100644 --- a/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java +++ b/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java @@ -134,7 +134,7 @@ public class VillagerTrade implements Listener { } PersistentDataContainer container = meta.getPersistentDataContainer(); - if (container.has(toolStats.timeCreated, PersistentDataType.LONG) || container.has(toolStats.itemOwner, PersistentDataType.LONG)) { + if (container.has(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG) || container.has(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType())) { return null; } @@ -150,8 +150,8 @@ public class VillagerTrade implements Listener { // if creation date is enabled, add it Component creationDate = toolStats.itemLore.formatCreationTime(timeCreated, 3, newItem); if (creationDate != null) { - container.set(toolStats.timeCreated, PersistentDataType.LONG, timeCreated); - container.set(toolStats.originType, PersistentDataType.INTEGER, 3); + container.set(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG, timeCreated); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 3); lore.add(creationDate); meta.lore(lore); } @@ -159,8 +159,8 @@ public class VillagerTrade implements Listener { // if ownership is enabled, add it Component itemOwner = toolStats.itemLore.formatOwner(owner.getName(), 3, newItem); if (itemOwner != null) { - container.set(toolStats.itemOwner, new UUIDDataType(), owner.getUniqueId()); - container.set(toolStats.originType, PersistentDataType.INTEGER, 3); + container.set(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType(), owner.getUniqueId()); + container.set(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER, 3); lore.add(itemOwner); meta.lore(lore); } @@ -168,7 +168,7 @@ public class VillagerTrade implements Listener { // if hash is enabled, add it if (toolStats.config.getBoolean("generate-hash-for-items")) { String hash = toolStats.hashMaker.makeHash(newItem.getType(), owner.getUniqueId(), timeCreated); - container.set(toolStats.hash, PersistentDataType.STRING, hash); + container.set(toolStats.toolStatsKeys.getHash(), PersistentDataType.STRING, hash); } newItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/tools/ItemChecker.java b/src/main/java/lol/hyper/toolstats/tools/ItemChecker.java index 34c96f0..e34c60a 100644 --- a/src/main/java/lol/hyper/toolstats/tools/ItemChecker.java +++ b/src/main/java/lol/hyper/toolstats/tools/ItemChecker.java @@ -143,12 +143,12 @@ public class ItemChecker { */ public boolean checkTokens(PersistentDataContainer container, String targetToken) { // make sure the item has tokens - if (!container.has(toolStats.tokenApplied, PersistentDataType.STRING)) { + if (!container.has(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING)) { return false; } // get the tokens for this item - String tokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokens == null) { return false; } @@ -169,12 +169,12 @@ public class ItemChecker { return new String[0]; } PersistentDataContainer container = meta.getPersistentDataContainer(); - if (!container.has(toolStats.tokenApplied, PersistentDataType.STRING)) { + if (!container.has(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING)) { return new String[0]; } // get the tokens for this item - String tokensRaw = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + String tokensRaw = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (tokensRaw == null) { return new String[0]; } @@ -198,12 +198,12 @@ public class ItemChecker { String[] tokens = getTokens(item); // there are no tokens if (tokens.length == 0) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, token); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, token); } else { // other tokens exist, so add String[] newTokens = Arrays.copyOf(tokens, tokens.length + 1); newTokens[tokens.length] = token; - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } item.setItemMeta(meta); return item; @@ -321,36 +321,48 @@ public class ItemChecker { } PersistentDataContainer container = meta.getPersistentDataContainer(); ArrayList tokens = new ArrayList<>(); - if (container.has(toolStats.playerKills)) { + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { tokens.add("player-kills"); } - if (container.has(toolStats.mobKills)) { + if (container.has(toolStats.toolStatsKeys.getMobKills())) { tokens.add("mob-kills"); } - if (container.has(toolStats.blocksMined)) { + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { tokens.add("blocks-mined"); } - if (container.has(toolStats.cropsHarvested)) { + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { tokens.add("crops-mined"); } - if (container.has(toolStats.fishCaught)) { + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { tokens.add("fish-caught"); } - if (container.has(toolStats.sheepSheared)) { + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { tokens.add("sheep-sheared"); } - if (container.has(toolStats.armorDamage)) { + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { tokens.add("damage-taken"); } - if (container.has(toolStats.arrowsShot)) { + if (container.has(toolStats.toolStatsKeys.getArrowsShot())) { tokens.add("arrows-shot"); } - if (container.has(toolStats.flightTime)) { + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { tokens.add("flight-time"); } - if (container.has(toolStats.damageDone)) { + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { tokens.add("damage-done"); } + if (container.has(toolStats.toolStatsKeys.getWitherKills())) { + tokens.add("wither-kills"); + } + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills())) { + tokens.add("enderdragon-kills"); + } + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { + tokens.add("critical-strikes"); + } + if (container.has(toolStats.toolStatsKeys.getTridentThrows())) { + tokens.add("trident-throws"); + } if (tokens.isEmpty()) { return null; } @@ -387,6 +399,6 @@ public class ItemChecker { public boolean keyCheck(PersistentDataContainer container) { return container.getKeys().stream() .map(NamespacedKey::getKey) - .anyMatch(key -> toolStats.tokenKeys.stream().anyMatch(tokenKey -> tokenKey.getKey().equalsIgnoreCase(key))); + .anyMatch(key -> toolStats.toolStatsKeys.getTokenKeys().stream().anyMatch(tokenKey -> tokenKey.getKey().equalsIgnoreCase(key))); } } diff --git a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java index 07b5ccb..2a56037 100644 --- a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java +++ b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java @@ -106,24 +106,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.crops-harvested")) { - if (container.has(toolStats.cropsHarvested)) { - Integer cropsMined = container.get(toolStats.cropsHarvested, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { + Integer cropsMined = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); if (cropsMined == null) { return null; } - container.remove(toolStats.cropsHarvested); + container.remove(toolStats.toolStatsKeys.getCropsHarvested()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "crops-mined"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -143,10 +143,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.cropsHarvested) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getCropsHarvested()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -158,14 +158,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer cropsMined = 0; - if (container.has(toolStats.cropsHarvested, PersistentDataType.INTEGER)) { - cropsMined = container.get(toolStats.cropsHarvested, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER)) { + cropsMined = container.get(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER); } if (cropsMined == null) { @@ -173,7 +173,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid crops-mined set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.cropsHarvested, PersistentDataType.INTEGER, cropsMined + add); + container.set(toolStats.toolStatsKeys.getCropsHarvested(), PersistentDataType.INTEGER, cropsMined + add); String oldCropsMinedFormatted = toolStats.numberFormat.formatInt(cropsMined); String newCropsMinedFormatted = toolStats.numberFormat.formatInt(cropsMined + add); Component oldLine = toolStats.configTools.formatLore("crops-harvested", "{crops}", oldCropsMinedFormatted); @@ -204,24 +204,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.configTools.checkConfig(clone.getType(), "blocks-mined")) { - if (container.has(toolStats.blocksMined)) { - Integer blocksMined = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { + Integer blocksMined = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (blocksMined == null) { return null; } - container.remove(toolStats.blocksMined); + container.remove(toolStats.toolStatsKeys.getBlocksMined()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "blocks-mined"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -240,10 +240,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.blocksMined) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getBlocksMined()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -255,7 +255,7 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } @@ -263,8 +263,8 @@ public class ItemLore { // read the current stats from the item // if they don't exist, then start from 0 Integer blocksMined = 0; - if (container.has(toolStats.blocksMined, PersistentDataType.INTEGER)) { - blocksMined = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER)) { + blocksMined = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); } if (blocksMined == null) { @@ -272,7 +272,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid generic-mined set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.blocksMined, PersistentDataType.INTEGER, blocksMined + add); + container.set(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER, blocksMined + add); String oldBlocksMinedFormatted = toolStats.numberFormat.formatInt(blocksMined); String newBlocksMinedFormatted = toolStats.numberFormat.formatInt(blocksMined + add); Component oldLine = toolStats.configTools.formatLore("blocks-mined", "{blocks}", oldBlocksMinedFormatted); @@ -303,24 +303,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.configTools.checkConfig(clone.getType(), "player-kills")) { - if (container.has(toolStats.playerKills)) { - Integer playerKills = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { + Integer playerKills = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (playerKills == null) { return null; } - container.remove(toolStats.playerKills); + container.remove(toolStats.toolStatsKeys.getPlayerKills()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "player-kills"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -340,10 +340,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.playerKills) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getPlayerKills()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -355,14 +355,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer playerKills = 0; - if (container.has(toolStats.playerKills, PersistentDataType.INTEGER)) { - playerKills = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER)) { + playerKills = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); } if (playerKills == null) { @@ -370,7 +370,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid player-kills set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.playerKills, PersistentDataType.INTEGER, playerKills + add); + container.set(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER, playerKills + add); String oldPlayerKillsFormatted = toolStats.numberFormat.formatInt(playerKills); String newPlayerKillsFormatted = toolStats.numberFormat.formatInt(playerKills + add); Component oldLine = toolStats.configTools.formatLore("kills.player", "{kills}", oldPlayerKillsFormatted); @@ -401,24 +401,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.configTools.checkConfig(clone.getType(), "mob-kills")) { - if (container.has(toolStats.mobKills)) { - Integer mobKills = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills())) { + Integer mobKills = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (mobKills == null) { return null; } - container.remove(toolStats.mobKills); + container.remove(toolStats.toolStatsKeys.getMobKills()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "mob-kills"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -438,10 +438,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.mobKills) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getMobKills()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -453,14 +453,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer mobKills = 0; - if (container.has(toolStats.mobKills, PersistentDataType.INTEGER)) { - mobKills = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER)) { + mobKills = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); } if (mobKills == null) { @@ -468,7 +468,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid mob-kills set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.mobKills, PersistentDataType.INTEGER, mobKills + add); + container.set(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER, mobKills + add); String oldMobKillsFormatted = toolStats.numberFormat.formatInt(mobKills); String newMobKillsFormatted = toolStats.numberFormat.formatInt(mobKills + add); Component oldLine = toolStats.configTools.formatLore("kills.mob", "{kills}", oldMobKillsFormatted); @@ -507,24 +507,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.armor-damage")) { - if (container.has(toolStats.armorDamage)) { - Double armorDamage = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { + Double armorDamage = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (armorDamage == null) { return null; } - container.remove(toolStats.armorDamage); + container.remove(toolStats.toolStatsKeys.getArmorDamage()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "damage-taken"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -544,10 +544,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.armorDamage) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getArmorDamage()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -559,14 +559,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Double damageTaken = 0.0; - if (container.has(toolStats.armorDamage, PersistentDataType.DOUBLE)) { - damageTaken = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE)) { + damageTaken = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); } if (damageTaken == null) { @@ -574,7 +574,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid damage-taken set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.armorDamage, PersistentDataType.DOUBLE, damageTaken + damage); + container.set(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE, damageTaken + damage); String oldDamageFormatted = toolStats.numberFormat.formatDouble(damageTaken); String newDamageFormatted = toolStats.numberFormat.formatDouble(damageTaken + damage); Component oldLine = toolStats.configTools.formatLore("damage-taken", "{damage}", oldDamageFormatted); @@ -613,24 +613,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.configTools.checkConfig(clone.getType(), "damage-done")) { - if (container.has(toolStats.damageDone)) { - Double damageDone = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { + Double damageDone = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (damageDone == null) { return null; } - container.remove(toolStats.damageDone); + container.remove(toolStats.toolStatsKeys.getDamageDone()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "damage-done"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -650,10 +650,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.damageDone) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getDamageDone()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -665,14 +665,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Double damageDone = 0.0; - if (container.has(toolStats.damageDone, PersistentDataType.DOUBLE)) { - damageDone = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE)) { + damageDone = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); } if (damageDone == null) { @@ -680,7 +680,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid damage-done set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.damageDone, PersistentDataType.DOUBLE, damageDone + damage); + container.set(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE, damageDone + damage); String oldDamageFormatted = toolStats.numberFormat.formatDouble(damageDone); String newDamageFormatted = toolStats.numberFormat.formatDouble(damageDone + damage); Component oldLine = toolStats.configTools.formatLore("damage-done", "{damage}", oldDamageFormatted); @@ -711,24 +711,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.flight-time")) { - if (container.has(toolStats.flightTime)) { - Long flightTime = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { + Long flightTime = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (flightTime == null) { return null; } - container.remove(toolStats.flightTime); + container.remove(toolStats.toolStatsKeys.getFlightTime()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "flight-time"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -756,10 +756,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.flightTime) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getFlightTime()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -771,7 +771,7 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } @@ -779,8 +779,8 @@ public class ItemLore { // read the current stats from the item // if they don't exist, then start from 0 Long flightTime = 0L; - if (container.has(toolStats.flightTime, PersistentDataType.LONG)) { - flightTime = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG)) { + flightTime = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); } if (flightTime == null) { @@ -788,7 +788,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid flight-time set! Resting to zero. This should NEVER happen.", flightTime); } - container.set(toolStats.flightTime, PersistentDataType.LONG, flightTime + duration); + container.set(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG, flightTime + duration); Map oldFlightFormatted = toolStats.numberFormat.formatTime(flightTime); Map newFlightFormatted = toolStats.numberFormat.formatTime(flightTime + duration); // if the old format is in the config, check to see if the old format is on the elytra @@ -827,24 +827,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.sheep-sheared")) { - if (container.has(toolStats.sheepSheared)) { - Integer sheepSheared = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { + Integer sheepSheared = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (sheepSheared == null) { return null; } - container.remove(toolStats.sheepSheared); + container.remove(toolStats.toolStatsKeys.getSheepSheared()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "sheep-sheared"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -864,10 +864,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.sheepSheared) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getSheepSheared()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -879,14 +879,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer sheepSheared = 0; - if (container.has(toolStats.sheepSheared, PersistentDataType.INTEGER)) { - sheepSheared = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER)) { + sheepSheared = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); } if (sheepSheared == null) { @@ -894,7 +894,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid sheared set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.sheepSheared, PersistentDataType.INTEGER, sheepSheared + add); + container.set(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER, sheepSheared + add); String oldSheepFormatted = toolStats.numberFormat.formatInt(sheepSheared); String newSheepFormatted = toolStats.numberFormat.formatInt(sheepSheared + add); Component oldLine = toolStats.configTools.formatLore("sheep-sheared", "{sheep}", oldSheepFormatted); @@ -925,24 +925,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.arrows-shot")) { - if (container.has(toolStats.arrowsShot)) { - Integer arrowsShot = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getArrowsShot())) { + Integer arrowsShot = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); if (arrowsShot == null) { return null; } - container.remove(toolStats.arrowsShot); + container.remove(toolStats.toolStatsKeys.getArrowsShot()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "arrows-shot"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -962,10 +962,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.arrowsShot) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getArrowsShot()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -977,7 +977,7 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } @@ -985,8 +985,8 @@ public class ItemLore { // read the current stats from the item // if they don't exist, then start from 0 Integer arrowsShot = 0; - if (container.has(toolStats.arrowsShot, PersistentDataType.INTEGER)) { - arrowsShot = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER)) { + arrowsShot = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); } if (arrowsShot == null) { @@ -994,7 +994,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid arrows-shot set! Resting to zero. This should NEVER happen.", arrowsShot); } - container.set(toolStats.arrowsShot, PersistentDataType.INTEGER, arrowsShot + add); + container.set(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER, arrowsShot + add); String oldArrowsFormatted = toolStats.numberFormat.formatInt(arrowsShot); String newArrowsFormatted = toolStats.numberFormat.formatInt(arrowsShot + add); Component oldLine = toolStats.configTools.formatLore("arrows-shot", "{arrows}", oldArrowsFormatted); @@ -1025,24 +1025,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.fish-caught")) { - if (container.has(toolStats.fishCaught)) { - Integer fishCaught = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { + Integer fishCaught = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (fishCaught == null) { return null; } - container.remove(toolStats.fishCaught); + container.remove(toolStats.toolStatsKeys.getFishCaught()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "fish-caught"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -1062,10 +1062,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.fishCaught) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getFishCaught()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -1077,14 +1077,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer fishCaught = 0; - if (container.has(toolStats.fishCaught, PersistentDataType.INTEGER)) { - fishCaught = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER)) { + fishCaught = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); } if (fishCaught == null) { @@ -1092,7 +1092,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid fish-caught set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.fishCaught, PersistentDataType.INTEGER, fishCaught + add); + container.set(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER, fishCaught + add); String oldFishFormatted = toolStats.numberFormat.formatInt(fishCaught); String newFishFormatted = toolStats.numberFormat.formatInt(fishCaught + add); Component oldLine = toolStats.configTools.formatLore("fished.fish-caught", "{fish}", oldFishFormatted); @@ -1124,10 +1124,10 @@ public class ItemLore { NamespacedKey bossesKey = null; if (boss.equalsIgnoreCase("wither")) { - bossesKey = toolStats.witherKills; + bossesKey = toolStats.toolStatsKeys.getWitherKills(); } if (boss.equalsIgnoreCase("enderdragon")) { - bossesKey = toolStats.enderDragonKills; + bossesKey = toolStats.toolStatsKeys.getEnderDragonKills(); } if (bossesKey == null) { @@ -1144,17 +1144,17 @@ public class ItemLore { } container.remove(bossesKey); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "wither-kills"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -1177,7 +1177,7 @@ public class ItemLore { if (container.has(bossesKey) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -1189,7 +1189,7 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } @@ -1235,24 +1235,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.critical-strikes")) { - if (container.has(toolStats.criticalStrikes)) { - Integer criticalStrikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { + Integer criticalStrikes = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (criticalStrikes == null) { return null; } - container.remove(toolStats.criticalStrikes); + container.remove(toolStats.toolStatsKeys.getCriticalStrikes()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "critical-strikes"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -1272,10 +1272,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.criticalStrikes) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -1287,14 +1287,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer criticalStrikes = 0; - if (container.has(toolStats.criticalStrikes, PersistentDataType.INTEGER)) { - criticalStrikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER)) { + criticalStrikes = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); } if (criticalStrikes == null) { @@ -1302,7 +1302,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid fish-caught set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.criticalStrikes, PersistentDataType.INTEGER, criticalStrikes + add); + container.set(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER, criticalStrikes + add); String oldCriticalStrikesFormatted = toolStats.numberFormat.formatInt(criticalStrikes); String newCriticalStrikesFormatted = toolStats.numberFormat.formatInt(criticalStrikes + add); Component oldLine = toolStats.configTools.formatLore("critical-strikes", "{strikes}", oldCriticalStrikesFormatted); @@ -1333,24 +1333,24 @@ public class ItemLore { // if it's disabled, don't update the stats // check to see if the item has the stats, remove them if it does if (!toolStats.config.getBoolean("enabled.trident-throws")) { - if (container.has(toolStats.tridentThrows)) { - Integer tridentThrows = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getTridentThrows())) { + Integer tridentThrows = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); if (tridentThrows == null) { return null; } - container.remove(toolStats.tridentThrows); + container.remove(toolStats.toolStatsKeys.getTridentThrows()); // remove the applied token if this stat is disabled - if (container.has(toolStats.tokenApplied)) { - String appliedTokens = container.get(toolStats.tokenApplied, PersistentDataType.STRING); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + String appliedTokens = container.get(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING); if (appliedTokens != null) { // remove the token from the list // if the list is empty, remove the PDC // otherwise set the PDC back with the new list List newTokens = toolStats.itemChecker.removeToken(appliedTokens, "trident-throws"); if (!newTokens.isEmpty()) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, String.join(",", newTokens)); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, String.join(",", newTokens)); } else { - container.remove(toolStats.tokenApplied); + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } } } @@ -1370,10 +1370,10 @@ public class ItemLore { // check for tokens if (toolStats.config.getBoolean("tokens.enabled")) { // if the item has stats but no token, add the token - if (container.has(toolStats.tridentThrows) && !validToken) { + if (container.has(toolStats.toolStatsKeys.getTridentThrows()) && !validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } @@ -1385,14 +1385,14 @@ public class ItemLore { if (!validToken) { String newTokens = toolStats.itemChecker.addTokensToExisting(clone); if (newTokens != null) { - container.set(toolStats.tokenApplied, PersistentDataType.STRING, newTokens); + container.set(toolStats.toolStatsKeys.getTokenApplied(), PersistentDataType.STRING, newTokens); } } } Integer tridentThrows = 0; - if (container.has(toolStats.tridentThrows, PersistentDataType.INTEGER)) { - tridentThrows = container.get(toolStats.tridentThrows, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER)) { + tridentThrows = container.get(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER); } if (tridentThrows == null) { @@ -1400,7 +1400,7 @@ public class ItemLore { toolStats.logger.warn("{} does not have valid fish-caught set! Resting to zero. This should NEVER happen.", clone); } - container.set(toolStats.tridentThrows, PersistentDataType.INTEGER, tridentThrows + add); + container.set(toolStats.toolStatsKeys.getTridentThrows(), PersistentDataType.INTEGER, tridentThrows + add); String oldTridentThrowsFormatted = toolStats.numberFormat.formatInt(tridentThrows); String newTridentThrowsFormatted = toolStats.numberFormat.formatInt(tridentThrows + add); Component oldLine = toolStats.configTools.formatLore("trident-throws", "{times}", oldTridentThrowsFormatted); @@ -1533,14 +1533,14 @@ public class ItemLore { PersistentDataContainer container = meta.getPersistentDataContainer(); // remove the applied tokens - if (container.has(toolStats.tokenApplied)) { - container.remove(toolStats.tokenApplied); + if (container.has(toolStats.toolStatsKeys.getTokenApplied())) { + container.remove(toolStats.toolStatsKeys.getTokenApplied()); } - if (container.has(toolStats.playerKills)) { - Integer playerKills = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getPlayerKills())) { + Integer playerKills = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (playerKills != null) { - container.remove(toolStats.playerKills); + container.remove(toolStats.toolStatsKeys.getPlayerKills()); String playerKillsFormatted = toolStats.numberFormat.formatInt(playerKills); Component lineToRemove = toolStats.configTools.formatLore("kills.player", "{kills}", playerKillsFormatted); @@ -1548,120 +1548,120 @@ public class ItemLore { finalItem.setItemMeta(meta); } } - if (container.has(toolStats.mobKills)) { - Integer mobKills = container.get(toolStats.mobKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getMobKills())) { + Integer mobKills = container.get(toolStats.toolStatsKeys.getMobKills(), PersistentDataType.INTEGER); if (mobKills != null) { - container.remove(toolStats.mobKills); + container.remove(toolStats.toolStatsKeys.getMobKills()); String mobKillsFormatted = toolStats.numberFormat.formatInt(mobKills); Component lineToRemove = toolStats.configTools.formatLore("kills.mob", "{kills}", mobKillsFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.blocksMined)) { - Integer blocksMined = container.get(toolStats.blocksMined, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getBlocksMined())) { + Integer blocksMined = container.get(toolStats.toolStatsKeys.getBlocksMined(), PersistentDataType.INTEGER); if (blocksMined != null) { - container.remove(toolStats.blocksMined); + container.remove(toolStats.toolStatsKeys.getBlocksMined()); String blocksMinedFormatted = toolStats.numberFormat.formatInt(blocksMined); Component lineToRemove = toolStats.configTools.formatLore("blocks-mined", "{blocks}", blocksMinedFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.cropsHarvested)) { - Integer cropsHarvested = container.get(toolStats.playerKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCropsHarvested())) { + Integer cropsHarvested = container.get(toolStats.toolStatsKeys.getPlayerKills(), PersistentDataType.INTEGER); if (cropsHarvested != null) { - container.remove(toolStats.cropsHarvested); + container.remove(toolStats.toolStatsKeys.getCropsHarvested()); String cropsHarvestedFormatted = toolStats.numberFormat.formatInt(cropsHarvested); Component lineToRemove = toolStats.configTools.formatLore("crops-harvested", "{crops}", cropsHarvestedFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.fishCaught)) { - Integer fishCaught = container.get(toolStats.fishCaught, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getFishCaught())) { + Integer fishCaught = container.get(toolStats.toolStatsKeys.getFishCaught(), PersistentDataType.INTEGER); if (fishCaught != null) { - container.remove(toolStats.fishCaught); + container.remove(toolStats.toolStatsKeys.getFishCaught()); String fishCaughtFormatted = toolStats.numberFormat.formatInt(fishCaught); Component lineToRemove = toolStats.configTools.formatLore("fished.fish-caught", "{fish}", fishCaughtFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.sheepSheared)) { - Integer sheepSheared = container.get(toolStats.sheepSheared, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getSheepSheared())) { + Integer sheepSheared = container.get(toolStats.toolStatsKeys.getSheepSheared(), PersistentDataType.INTEGER); if (sheepSheared != null) { - container.remove(toolStats.sheepSheared); + container.remove(toolStats.toolStatsKeys.getSheepSheared()); String sheepShearedFormatted = toolStats.numberFormat.formatInt(sheepSheared); Component lineToRemove = toolStats.configTools.formatLore("sheep.sheared", "{sheep}", sheepShearedFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.armorDamage)) { - Double armorDamage = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getArmorDamage())) { + Double armorDamage = container.get(toolStats.toolStatsKeys.getArmorDamage(), PersistentDataType.DOUBLE); if (armorDamage != null) { - container.remove(toolStats.armorDamage); + container.remove(toolStats.toolStatsKeys.getArmorDamage()); String armorDamageFormatted = toolStats.numberFormat.formatDouble(armorDamage); Component lineToRemove = toolStats.configTools.formatLore("damage-taken", "{damage}", armorDamageFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.damageDone)) { - Double damageDone = container.get(toolStats.damageDone, PersistentDataType.DOUBLE); + if (container.has(toolStats.toolStatsKeys.getDamageDone())) { + Double damageDone = container.get(toolStats.toolStatsKeys.getDamageDone(), PersistentDataType.DOUBLE); if (damageDone != null) { - container.remove(toolStats.damageDone); + container.remove(toolStats.toolStatsKeys.getDamageDone()); String damageDoneFormatted = toolStats.numberFormat.formatDouble(damageDone); Component lineToRemove = toolStats.configTools.formatLore("damage-done", "{damage}", damageDoneFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.arrowsShot)) { - Integer arrowsShot = container.get(toolStats.arrowsShot, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getArrowsShot())) { + Integer arrowsShot = container.get(toolStats.toolStatsKeys.getArrowsShot(), PersistentDataType.INTEGER); if (arrowsShot != null) { - container.remove(toolStats.arrowsShot); + container.remove(toolStats.toolStatsKeys.getArrowsShot()); String arrowsShotFormatted = toolStats.numberFormat.formatInt(arrowsShot); Component lineToRemove = toolStats.configTools.formatLore("arrows-shot", "{arrows}", arrowsShotFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.flightTime)) { - Long flightTime = container.get(toolStats.flightTime, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getFlightTime())) { + Long flightTime = container.get(toolStats.toolStatsKeys.getFlightTime(), PersistentDataType.LONG); if (flightTime != null) { - container.remove(toolStats.flightTime); + container.remove(toolStats.toolStatsKeys.getFlightTime()); Map flightTimeFormatted = toolStats.numberFormat.formatTime(flightTime); Component lineToRemove = toolStats.configTools.formatLoreMultiplePlaceholders("flight-time", flightTimeFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.witherKills)) { - Integer witherKills = container.get(toolStats.witherKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getWitherKills())) { + Integer witherKills = container.get(toolStats.toolStatsKeys.getWitherKills(), PersistentDataType.INTEGER); if (witherKills != null) { - container.remove(toolStats.witherKills); + container.remove(toolStats.toolStatsKeys.getWitherKills()); String witherKillsFormatted = toolStats.numberFormat.formatInt(witherKills); Component lineToRemove = toolStats.configTools.formatLore("bosses-killed.wither", "{kills}", witherKillsFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.enderDragonKills)) { - Integer enderDragonKills = container.get(toolStats.enderDragonKills, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getEnderDragonKills())) { + Integer enderDragonKills = container.get(toolStats.toolStatsKeys.getEnderDragonKills(), PersistentDataType.INTEGER); if (enderDragonKills != null) { - container.remove(toolStats.enderDragonKills); + container.remove(toolStats.toolStatsKeys.getEnderDragonKills()); String enderDragonKillsFormatted = toolStats.numberFormat.formatInt(enderDragonKills); Component lineToRemove = toolStats.configTools.formatLore("bosses-killed.enderdragon", "{kills}", enderDragonKillsFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); finalItem.setItemMeta(meta); } } - if (container.has(toolStats.criticalStrikes)) { - Integer criticalStrikes = container.get(toolStats.criticalStrikes, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getCriticalStrikes())) { + Integer criticalStrikes = container.get(toolStats.toolStatsKeys.getCriticalStrikes(), PersistentDataType.INTEGER); if (criticalStrikes != null) { - container.remove(toolStats.criticalStrikes); + container.remove(toolStats.toolStatsKeys.getCriticalStrikes()); String criticalStrikesFormatted = toolStats.numberFormat.formatInt(criticalStrikes); Component lineToRemove = toolStats.configTools.formatLore("critical-strikes", "{strikes}", criticalStrikesFormatted); meta.lore(removeLore(meta.lore(), lineToRemove)); @@ -1670,22 +1670,22 @@ public class ItemLore { } if (removeMeta) { Integer origin = null; - if (container.has(toolStats.originType)) { - origin = container.get(toolStats.originType, PersistentDataType.INTEGER); + if (container.has(toolStats.toolStatsKeys.getOriginType())) { + origin = container.get(toolStats.toolStatsKeys.getOriginType(), PersistentDataType.INTEGER); } - if (container.has(toolStats.timeCreated)) { - Long timeCreated = container.get(toolStats.timeCreated, PersistentDataType.LONG); + if (container.has(toolStats.toolStatsKeys.getTimeCreated())) { + Long timeCreated = container.get(toolStats.toolStatsKeys.getTimeCreated(), PersistentDataType.LONG); if (timeCreated != null && origin != null) { - container.remove(toolStats.timeCreated); + container.remove(toolStats.toolStatsKeys.getTimeCreated()); Component timeCreatedLore = formatCreationTime(timeCreated, origin, finalItem); meta.lore(removeLore(meta.lore(), timeCreatedLore)); } } - if (container.has(toolStats.itemOwner)) { - UUID owner = container.get(toolStats.itemOwner, new UUIDDataType()); + if (container.has(toolStats.toolStatsKeys.getItemOwner())) { + UUID owner = container.get(toolStats.toolStatsKeys.getItemOwner(), new UUIDDataType()); if (owner != null && origin != null) { - container.remove(toolStats.itemOwner); + container.remove(toolStats.toolStatsKeys.getItemOwner()); String ownerName = Bukkit.getOfflinePlayer(owner).getName(); if (ownerName != null) { Component ownerLore = formatOwner(ownerName, origin, finalItem); @@ -1695,7 +1695,7 @@ public class ItemLore { } if (origin != null) { - container.remove(toolStats.originType); + container.remove(toolStats.toolStatsKeys.getOriginType()); } finalItem.setItemMeta(meta); diff --git a/src/main/java/lol/hyper/toolstats/tools/TokenData.java b/src/main/java/lol/hyper/toolstats/tools/TokenData.java index db54293..0225b49 100644 --- a/src/main/java/lol/hyper/toolstats/tools/TokenData.java +++ b/src/main/java/lol/hyper/toolstats/tools/TokenData.java @@ -209,7 +209,7 @@ public class TokenData { tokenMeta.lore(lore); // set the PDC - tokenData.set(toolStats.tokenType, PersistentDataType.STRING, tokenType); + tokenData.set(toolStats.toolStatsKeys.getTokenType(), PersistentDataType.STRING, tokenType); token.setItemMeta(tokenMeta); // set the custom model data diff --git a/src/main/java/lol/hyper/toolstats/tools/ToolStatsKeys.java b/src/main/java/lol/hyper/toolstats/tools/ToolStatsKeys.java new file mode 100644 index 0000000..cbeeebc --- /dev/null +++ b/src/main/java/lol/hyper/toolstats/tools/ToolStatsKeys.java @@ -0,0 +1,182 @@ +package lol.hyper.toolstats.tools; + +import lol.hyper.toolstats.ToolStats; +import org.bukkit.NamespacedKey; + +import java.util.HashSet; +import java.util.Set; + +public class ToolStatsKeys { + + private final ToolStats toolStats; + private final Set tokenKeys = new HashSet<>(); + + public ToolStatsKeys(ToolStats toolStats) { + this.toolStats = toolStats; + } + + private NamespacedKey itemOwner; + private NamespacedKey timeCreated; + private NamespacedKey playerKills; + private NamespacedKey mobKills; + private NamespacedKey blocksMined; + private NamespacedKey cropsHarvested; + private NamespacedKey fishCaught; + private NamespacedKey sheepSheared; + private NamespacedKey armorDamage; + private NamespacedKey damageDone; + private NamespacedKey newElytra; + private NamespacedKey hash; + private NamespacedKey arrowsShot; + private NamespacedKey droppedBy; + private NamespacedKey flightTime; + private NamespacedKey tokenType; + private NamespacedKey tokenApplied; + private NamespacedKey witherKills; + private NamespacedKey enderDragonKills; + private NamespacedKey criticalStrikes; + private NamespacedKey tridentThrows; + private NamespacedKey originType; + + public void make() { + itemOwner = new NamespacedKey(toolStats, "owner"); + timeCreated = new NamespacedKey(toolStats, "time-created"); + playerKills = new NamespacedKey(toolStats, "player-kills"); + mobKills = new NamespacedKey(toolStats, "mob-kills"); + blocksMined = new NamespacedKey(toolStats, "generic-mined"); + cropsHarvested = new NamespacedKey(toolStats, "crops-mined"); + fishCaught = new NamespacedKey(toolStats, "fish-caught"); + sheepSheared = new NamespacedKey(toolStats, "sheared"); + armorDamage = new NamespacedKey(toolStats, "damage-taken"); + damageDone = new NamespacedKey(toolStats, "damage-done"); + newElytra = new NamespacedKey(toolStats, "new"); + hash = new NamespacedKey(toolStats, "hash"); + arrowsShot = new NamespacedKey(toolStats, "arrows-shot"); + droppedBy = new NamespacedKey(toolStats, "dropped-by"); + flightTime = new NamespacedKey(toolStats, "flightTime"); + tokenType = new NamespacedKey(toolStats, "token-type"); + tokenApplied = new NamespacedKey(toolStats, "token-applied"); + witherKills = new NamespacedKey(toolStats, "wither-kills"); + enderDragonKills = new NamespacedKey(toolStats, "enderdragon-kills"); + criticalStrikes = new NamespacedKey(toolStats, "critical-strikes"); + tridentThrows = new NamespacedKey(toolStats, "trident-throws"); + originType = new NamespacedKey(toolStats, "origin"); + + // save which stat can be used by a reset token + tokenKeys.add(blocksMined); + tokenKeys.add(playerKills); + tokenKeys.add(mobKills); + tokenKeys.add(cropsHarvested); + tokenKeys.add(sheepSheared); + tokenKeys.add(fishCaught); + tokenKeys.add(flightTime); + tokenKeys.add(arrowsShot); + tokenKeys.add(armorDamage); + tokenKeys.add(witherKills); + tokenKeys.add(enderDragonKills); + tokenKeys.add(criticalStrikes); + tokenKeys.add(tridentThrows); + } + + public NamespacedKey getItemOwner() { + return itemOwner; + } + + public NamespacedKey getTimeCreated() { + return timeCreated; + } + + public NamespacedKey getPlayerKills() { + return playerKills; + } + + public NamespacedKey getMobKills() { + return mobKills; + } + + public NamespacedKey getBlocksMined() { + return blocksMined; + } + + public NamespacedKey getCropsHarvested() { + return cropsHarvested; + } + + public NamespacedKey getFishCaught() { + return fishCaught; + } + + public NamespacedKey getSheepSheared() { + return sheepSheared; + } + + public NamespacedKey getArmorDamage() { + return armorDamage; + } + + public NamespacedKey getDamageDone() { + return damageDone; + } + + public NamespacedKey getElytraKey() { + return newElytra; + } + + public NamespacedKey getHash() { + return hash; + } + + public NamespacedKey getArrowsShot() { + return arrowsShot; + } + + public NamespacedKey getDroppedBy() { + return droppedBy; + } + + public NamespacedKey getFlightTime() { + return flightTime; + } + + public NamespacedKey getTokenType() { + return tokenType; + } + + public NamespacedKey getTokenApplied() { + return tokenApplied; + } + + public NamespacedKey getWitherKills() { + return witherKills; + } + + public NamespacedKey getEnderDragonKills() { + return enderDragonKills; + } + + public NamespacedKey getCriticalStrikes() { + return criticalStrikes; + } + + public NamespacedKey getTridentThrows() { + return tridentThrows; + } + + /** + * Stores how an item was created. + * 0 = crafted. + * 1 = dropped. + * 2 = looted. + * 3 = traded. + * 4 = founded (for elytras). + * 5 = fished. + * 6 = spawned in (creative). + */ + public NamespacedKey getOriginType() { + return originType; + } + + public Set getTokenKeys() { + return tokenKeys; + } +} \ No newline at end of file