Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @EventHandler
- public void onPlayerItemDamage(PlayerItemDamageEvent event) {
- Player player = event.getPlayer();
- SPlayer sPlayer = SPlayer.get(player.getUniqueId());
- if (sPlayer != null) {
- ItemStack itemStack = event.getItem();
- updateDurability(player, itemStack, getLevel(sPlayer));
- }
- }
- private void updateDurability(Player player, ItemStack itemStack, int currentLevel) {
- // Update NBT lore with new durability
- Durability(itemStack, currentLevel);
- player.getInventory().setItemInMainHand(itemStack);
- }
- private void Durability(ItemStack itemStack, int durabilityLevel) {
- if (itemStack != null && itemStack.getType() != Material.AIR) {
- NBTItem nbtItem = new NBTItem(itemStack);
- int loreDurability = nbtItem.getInteger("Durability");
- int loreMaxDurability = itemStack.getType().getMaxDurability();
- double increaseDurability = durabilityIncrease.getValue();
- // Calculate new durability based on skill level
- int newLoreDurability = (int) Math.min(loreMaxDurability, loreDurability - increaseDurability);
- nbtItem.setInteger("Durability", newLoreDurability); // Set new durability
- // Adjust the damage to simulate increasing max durability
- int newDamage = loreMaxDurability - newLoreDurability;
- Damageable damageable = (Damageable) itemStack.getItemMeta();
- assert damageable != null;
- damageable.setDamage(newDamage);
- itemStack.setItemMeta((ItemMeta) damageable);
- itemStack = nbtItem.getItem();
- ItemMeta itemMeta = itemStack.getItemMeta();
- if (itemMeta instanceof Damageable) {
- damageable = (Damageable) itemMeta; // Use the correct reference
- int maxDurability = itemStack.getType().getMaxDurability();
- int currentDurability = maxDurability - damageable.getDamage();
- int newDurability = Math.min(maxDurability, currentDurability + (int) (durabilityIncrease.getValue() * durabilityLevel));
- damageable.setDamage(maxDurability - newDurability);
- itemStack.setItemMeta(itemMeta);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment