Adds missing tests for ItemHelper
All checks were successful
EpicKnarvik97/Blacksmith/pipeline/head This commit looks good

This commit is contained in:
2023-01-17 05:28:46 +01:00
parent 347b69b2a8
commit a79f2e273a
3 changed files with 83 additions and 8 deletions

View File

@ -11,8 +11,6 @@ import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.scheduler.BukkitScheduler;
import java.util.ArrayList;
@ -209,14 +207,9 @@ public class ReforgeSession implements Runnable {
* @param newDamage <p>The new damage done</p>
*/
private void updateDamage(ItemStack item, int newDamage) {
ItemMeta meta = item.getItemMeta();
Damageable damageable = (Damageable) meta;
if (damageable != null) {
damageable.setDamage(newDamage);
} else {
if (!ItemHelper.updateDamage(item, newDamage)) {
BlacksmithPlugin.getInstance().getLogger().log(Level.WARNING, "Unable to change damage of " + item);
}
item.setItemMeta(meta);
}
/**

View File

@ -3,6 +3,7 @@ package net.knarcraft.blacksmith.util;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.List;
@ -67,6 +68,23 @@ public final class ItemHelper {
}
}
/**
* Updates the damage done to an item
*
* @param item <p>The item to update damage for</p>
* @param newDamage <p>The new damage done</p>
* @return <p>True if the damage was updated. False if not damageable.</p>
*/
public static boolean updateDamage(ItemStack item, int newDamage) {
ItemMeta meta = item.getItemMeta();
if (!(meta instanceof Damageable damageable)) {
return false;
}
damageable.setDamage(newDamage);
item.setItemMeta(meta);
return true;
}
/**
* Gets a complete list of all reforge-able materials
*