From 4dda215805081d69e48afb94255932fcac8fe261 Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Sun, 26 Jan 2025 14:36:45 -0500 Subject: [PATCH] use meta here instead --- .../toolstats/commands/CommandToolStats.java | 6 +++ .../hyper/toolstats/events/AnvilEvent.java | 19 ++++---- .../hyper/toolstats/events/BlocksMined.java | 13 ++--- .../hyper/toolstats/events/EntityDamage.java | 48 +++++++++---------- .../hyper/toolstats/events/PlayerFish.java | 6 +-- .../hyper/toolstats/events/PlayerMove.java | 5 +- .../hyper/toolstats/events/SheepShear.java | 7 +-- .../lol/hyper/toolstats/events/ShootBow.java | 7 +-- .../lol/hyper/toolstats/tools/ItemLore.java | 45 +++++++---------- 9 files changed, 79 insertions(+), 77 deletions(-) diff --git a/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java b/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java index a18d65f..c031575 100644 --- a/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java +++ b/src/main/java/lol/hyper/toolstats/commands/CommandToolStats.java @@ -440,6 +440,12 @@ public class CommandToolStats implements TabExecutor { target.getInventory().addItem(itemStack); break; } + case "reset": { + ItemStack itemStack = toolStats.tokenItems.resetToken(); + itemStack.setAmount(amount); + target.getInventory().addItem(itemStack); + break; + } } } diff --git a/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java b/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java index 414ace7..a9e3629 100644 --- a/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/AnvilEvent.java @@ -178,42 +178,43 @@ public class AnvilEvent implements Listener { ItemStack newItem = toolStats.itemChecker.addToken(firstSlotItem, targetToken); switch (targetToken) { case "crops-mined": { - event.setResult(toolStats.itemLore.updateCropsMined(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateCropsMined(newItem, 0)); break; } case "blocks-mined": { - event.setResult(toolStats.itemLore.updateBlocksMined(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateBlocksMined(newItem, 0)); break; } case "damage-taken": { - event.setResult(toolStats.itemLore.updateDamage(newItem, 0.0)); + newItem.setItemMeta(toolStats.itemLore.updateDamage(newItem, 0.0)); break; } case "mob-kills": { - event.setResult(toolStats.itemLore.updateMobKills(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateMobKills(newItem, 0)); break; } case "player-kills": { - event.setResult(toolStats.itemLore.updatePlayerKills(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updatePlayerKills(newItem, 0)); break; } case "arrows-shot": { - event.setResult(toolStats.itemLore.updateArrowsShot(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateArrowsShot(newItem, 0)); break; } case "sheep-sheared": { - event.setResult(toolStats.itemLore.updateSheepSheared(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateSheepSheared(newItem, 0)); break; } case "flight-time": { - event.setResult(toolStats.itemLore.updateFlightTime(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateFlightTime(newItem, 0)); break; } case "fish-caught": { - event.setResult(toolStats.itemLore.updateFishCaught(newItem, 0)); + newItem.setItemMeta(toolStats.itemLore.updateFishCaught(newItem, 0)); break; } } + event.setResult(newItem); event.getView().setRepairCost(toolStats.itemChecker.getCost(targetToken)); } } diff --git a/src/main/java/lol/hyper/toolstats/events/BlocksMined.java b/src/main/java/lol/hyper/toolstats/events/BlocksMined.java index ad3deef..3b6656e 100644 --- a/src/main/java/lol/hyper/toolstats/events/BlocksMined.java +++ b/src/main/java/lol/hyper/toolstats/events/BlocksMined.java @@ -30,6 +30,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; import java.util.Locale; @@ -72,19 +73,19 @@ public class BlocksMined implements Listener { if (ageable.getAge() != ageable.getMaximumAge()) { return; } - ItemStack newItem = toolStats.itemLore.updateCropsMined(heldItem, 1); - if (newItem != null) { + ItemMeta newMeta = toolStats.itemLore.updateCropsMined(heldItem, 1); + if (newMeta != null) { // replace item in main hand - inventory.setItemInMainHand(newItem); + heldItem.setItemMeta(newMeta); } } } else { // item is not a hoe // update the blocks mined - ItemStack newItem = toolStats.itemLore.updateBlocksMined(heldItem, 1); - if (newItem != null) { + ItemMeta newMeta = toolStats.itemLore.updateBlocksMined(heldItem, 1); + if (newMeta != null) { // replace item in main hand - inventory.setItemInMainHand(newItem); + heldItem.setItemMeta(newMeta); } } } diff --git a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java index 248961f..b637476 100644 --- a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java +++ b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java @@ -31,6 +31,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; import java.util.*; @@ -75,31 +76,33 @@ public class EntityDamage implements Listener { } // a player is killing another player if (mobBeingAttacked instanceof Player) { - ItemStack newItem = toolStats.itemLore.updatePlayerKills(heldItem, 1); + ItemMeta newItem = toolStats.itemLore.updatePlayerKills(heldItem, 1); if (newItem != null) { - attackingPlayerInventory.setItemInMainHand(newItem); + attackingPlayerInventory.getItemInMainHand().setItemMeta(newItem); } return; } // player is killing regular mob - ItemStack newItem = toolStats.itemLore.updateMobKills(heldItem, 1); + ItemMeta newItem = toolStats.itemLore.updateMobKills(heldItem, 1); if (newItem != null) { - attackingPlayerInventory.setItemInMainHand(newItem); + attackingPlayerInventory.getItemInMainHand().setItemMeta(newItem); } trackedMobs.add(mobBeingAttacked.getUniqueId()); } // trident is being thrown at something if (event.getDamager() instanceof Trident trident) { - ItemStack newTrident; + ItemStack newTrident = trident.getItemStack(); + ItemMeta newMeta = null; // trident is killing player if (mobBeingAttacked instanceof Player) { - newTrident = toolStats.itemLore.updatePlayerKills(trident.getItemStack(), 1); + newMeta = toolStats.itemLore.updatePlayerKills(trident.getItemStack(), 1); } else { // trident is killing a mob - newTrident = toolStats.itemLore.updateMobKills(trident.getItemStack(), 1); + newMeta = toolStats.itemLore.updateMobKills(trident.getItemStack(), 1); trackedMobs.add(mobBeingAttacked.getUniqueId()); } - if (newTrident != null) { + if (newMeta != null) { + newTrident.setItemMeta(newMeta); trident.setItemStack(newTrident); } } @@ -118,15 +121,15 @@ public class EntityDamage implements Listener { // player is shooting another player if (mobBeingAttacked instanceof Player) { - ItemStack newItem = toolStats.itemLore.updatePlayerKills(heldBow, 1); + ItemMeta newItem = toolStats.itemLore.updatePlayerKills(heldBow, 1); if (newItem != null) { - shootingPlayerInventory.setItemInMainHand(newItem); + shootingPlayerInventory.getItemInMainHand().setItemMeta(newItem); } } else { // player is shooting a mob - ItemStack newItem = toolStats.itemLore.updateMobKills(heldBow, 1); + ItemMeta newItem = toolStats.itemLore.updateMobKills(heldBow, 1); if (newItem != null) { - shootingPlayerInventory.setItemInMainHand(newItem); + shootingPlayerInventory.getItemInMainHand().setItemMeta(newItem); } trackedMobs.add(mobBeingAttacked.getUniqueId()); } @@ -140,13 +143,12 @@ public class EntityDamage implements Listener { } PlayerInventory playerInventory = playerTakingDamage.getInventory(); ItemStack[] armorContents = playerInventory.getArmorContents(); - for (int i = 0; i < armorContents.length; i++) { - ItemStack armorPiece = armorContents[i]; + for (ItemStack armorPiece : armorContents) { if (armorPiece != null) { if (toolStats.itemChecker.isArmor(armorPiece.getType())) { - ItemStack newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); + ItemMeta newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); if (newItem != null) { - armorContents[i] = newItem; + armorPiece.setItemMeta(newItem); } } } @@ -176,13 +178,12 @@ public class EntityDamage implements Listener { } PlayerInventory playerInventory = playerTakingDamage.getInventory(); ItemStack[] armorContents = playerInventory.getArmorContents(); - for (int i = 0; i < armorContents.length; i++) { - ItemStack armorPiece = armorContents[i]; + for (ItemStack armorPiece : armorContents) { if (armorPiece != null) { if (toolStats.itemChecker.isArmor(armorPiece.getType())) { - ItemStack newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); + ItemMeta newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); if (newItem != null) { - armorContents[i] = newItem; + armorPiece.setItemMeta(newItem); } } } @@ -212,13 +213,12 @@ public class EntityDamage implements Listener { } PlayerInventory playerInventory = playerTakingDamage.getInventory(); ItemStack[] armorContents = playerInventory.getArmorContents(); - for (int i = 0; i < armorContents.length; i++) { - ItemStack armorPiece = armorContents[i]; + for (ItemStack armorPiece : armorContents) { if (armorPiece != null) { if (toolStats.itemChecker.isArmor(armorPiece.getType())) { - ItemStack newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); + ItemMeta newItem = toolStats.itemLore.updateDamage(armorPiece, event.getFinalDamage()); if (newItem != null) { - armorContents[i] = newItem; + armorPiece.setItemMeta(newItem); } } } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java index 1118ce6..cf5d3fc 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java @@ -67,16 +67,16 @@ public class PlayerFish implements Listener { } // update the fishing rod! - ItemStack newFishingRod = toolStats.itemLore.updateFishCaught(fishingRod, 1); + ItemMeta newFishingRod = toolStats.itemLore.updateFishCaught(fishingRod, 1); if (newFishingRod != null) { PlayerInventory inventory = player.getInventory(); boolean isMain = inventory.getItemInMainHand().getType() == Material.FISHING_ROD; boolean isOffHand = inventory.getItemInOffHand().getType() == Material.FISHING_ROD; if (isMain) { - inventory.setItemInMainHand(newFishingRod); + inventory.getItemInMainHand().setItemMeta(newFishingRod); } if (isOffHand) { - inventory.setItemInOffHand(newFishingRod); + inventory.getItemInOffHand().setItemMeta(newFishingRod); } } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerMove.java b/src/main/java/lol/hyper/toolstats/events/PlayerMove.java index 7ad605f..c2aaf9d 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerMove.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerMove.java @@ -26,6 +26,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; import java.util.HashMap; import java.util.Map; @@ -56,9 +57,9 @@ public class PlayerMove implements Listener { // make sure the player is wearing an elytra if (chest != null && chest.getType() == Material.ELYTRA) { long duration = (System.currentTimeMillis() - playerStartFlight.get(player)); - ItemStack newItem = toolStats.itemLore.updateFlightTime(chest, duration); + ItemMeta newItem = toolStats.itemLore.updateFlightTime(chest, duration); if (newItem != null) { - inventory.setChestplate(newItem); + inventory.getChestplate().setItemMeta(newItem); } } playerStartFlight.remove(player); diff --git a/src/main/java/lol/hyper/toolstats/events/SheepShear.java b/src/main/java/lol/hyper/toolstats/events/SheepShear.java index 7beb781..716d7f0 100644 --- a/src/main/java/lol/hyper/toolstats/events/SheepShear.java +++ b/src/main/java/lol/hyper/toolstats/events/SheepShear.java @@ -29,6 +29,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; public class SheepShear implements Listener { @@ -64,16 +65,16 @@ public class SheepShear implements Listener { } // update the stats - ItemStack newItem = toolStats.itemLore.updateSheepSheared(heldShears, 1); + ItemMeta newItem = toolStats.itemLore.updateSheepSheared(heldShears, 1); if (newItem != null) { PlayerInventory inventory = player.getInventory(); boolean isMain = inventory.getItemInMainHand().getType() == Material.SHEARS; boolean isOffHand = inventory.getItemInOffHand().getType() == Material.SHEARS; if (isMain) { - inventory.setItemInMainHand(newItem); + inventory.getItemInMainHand().setItemMeta(newItem); } if (isOffHand) { - inventory.setItemInOffHand(newItem); + inventory.getItemInOffHand().setItemMeta(newItem); } } } diff --git a/src/main/java/lol/hyper/toolstats/events/ShootBow.java b/src/main/java/lol/hyper/toolstats/events/ShootBow.java index 852a0cb..67b05ca 100644 --- a/src/main/java/lol/hyper/toolstats/events/ShootBow.java +++ b/src/main/java/lol/hyper/toolstats/events/ShootBow.java @@ -28,6 +28,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityShootBowEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; +import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.Nullable; public class ShootBow implements Listener { @@ -56,16 +57,16 @@ public class ShootBow implements Listener { return; } - ItemStack newItem = toolStats.itemLore.updateArrowsShot(heldBow, 1); + ItemMeta newItem = toolStats.itemLore.updateArrowsShot(heldBow, 1); if (newItem != null) { PlayerInventory inventory = player.getInventory(); boolean isMain = inventory.getItemInMainHand().getType() == Material.BOW || inventory.getItemInMainHand().getType() == Material.CROSSBOW; boolean isOffHand = inventory.getItemInOffHand().getType() == Material.BOW || inventory.getItemInOffHand().getType() == Material.CROSSBOW; if (isMain) { - inventory.setItemInMainHand(newItem); + inventory.getItemInMainHand().setItemMeta(newItem); } if (isOffHand) { - inventory.setItemInOffHand(newItem); + inventory.getItemInOffHand().setItemMeta(newItem); } } } diff --git a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java index b38595c..9f9508d 100644 --- a/src/main/java/lol/hyper/toolstats/tools/ItemLore.java +++ b/src/main/java/lol/hyper/toolstats/tools/ItemLore.java @@ -218,7 +218,7 @@ public class ItemLore { * * @param playerTool The tool to update. */ - public ItemStack updateCropsMined(ItemStack playerTool, int add) { + public ItemMeta updateCropsMined(ItemStack playerTool, int add) { ItemStack clone = playerTool.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -263,8 +263,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -272,7 +271,7 @@ public class ItemLore { * * @param playerTool The tool to update. */ - public ItemStack updateBlocksMined(ItemStack playerTool, int add) { + public ItemMeta updateBlocksMined(ItemStack playerTool, int add) { ItemStack clone = playerTool.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -317,8 +316,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -326,7 +324,7 @@ public class ItemLore { * * @param playerWeapon The tool to update. */ - public ItemStack updatePlayerKills(ItemStack playerWeapon, int add) { + public ItemMeta updatePlayerKills(ItemStack playerWeapon, int add) { ItemStack clone = playerWeapon.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -369,8 +367,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -378,7 +375,7 @@ public class ItemLore { * * @param playerWeapon The tool to update. */ - public ItemStack updateMobKills(ItemStack playerWeapon, int add) { + public ItemMeta updateMobKills(ItemStack playerWeapon, int add) { ItemStack clone = playerWeapon.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -421,8 +418,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -430,7 +426,7 @@ public class ItemLore { * * @param armorPiece The armor to update. */ - public ItemStack updateDamage(ItemStack armorPiece, double damage) { + public ItemMeta updateDamage(ItemStack armorPiece, double damage) { // ignore if the damage is zero or negative if (damage < 0) { return null; @@ -476,8 +472,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -485,7 +480,7 @@ public class ItemLore { * * @param elytra The player's elytra. */ - public ItemStack updateFlightTime(ItemStack elytra, long duration) { + public ItemMeta updateFlightTime(ItemStack elytra, long duration) { ItemStack clone = elytra.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -530,8 +525,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -539,7 +533,7 @@ public class ItemLore { * * @param shears The shears. */ - public ItemStack updateSheepSheared(ItemStack shears, int add) { + public ItemMeta updateSheepSheared(ItemStack shears, int add) { ItemStack clone = shears.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -581,8 +575,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -590,7 +583,7 @@ public class ItemLore { * * @param bow The bow. */ - public ItemStack updateArrowsShot(ItemStack bow, int add) { + public ItemMeta updateArrowsShot(ItemStack bow, int add) { ItemStack clone = bow.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -635,8 +628,7 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } /** @@ -644,7 +636,7 @@ public class ItemLore { * * @param fishingRod The fishing rod. */ - public ItemStack updateFishCaught(ItemStack fishingRod, int add) { + public ItemMeta updateFishCaught(ItemStack fishingRod, int add) { ItemStack clone = fishingRod.clone(); ItemMeta meta = clone.getItemMeta(); if (meta == null) { @@ -686,7 +678,6 @@ public class ItemLore { List newLore = toolStats.itemLore.updateItemLore(meta, oldLine, newLine); meta.lore(newLore); } - clone.setItemMeta(meta); - return clone; + return meta; } }