Makes sure only intended items are re-forge-able, and changes version to 1.0.0

This commit is contained in:
2022-08-08 19:27:54 +02:00
parent 7dc2228781
commit 64617accf8
5 changed files with 19 additions and 8 deletions

View File

@ -1,12 +1,16 @@
package net.knarcraft.blacksmith.config;
import net.citizensnpcs.api.util.DataKey;
import net.knarcraft.blacksmith.BlacksmithPlugin;
import net.knarcraft.blacksmith.trait.BlacksmithTrait;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
/**
* A class which keeps track of all Blacksmith settings/config values for one NPC
@ -333,8 +337,11 @@ public class NPCSettings {
continue;
}
Material material = Material.matchMaterial(String.valueOf(item));
if (material != null) {
if (material != null && BlacksmithTrait.isRepairable(new ItemStack(material, 1))) {
this.reforgeAbleItems.add(material);
} else {
BlacksmithPlugin.getInstance().getLogger().log(Level.WARNING, "Unable to verify " + material +
" as a valid reforge-able item");
}
}
}

View File

@ -8,6 +8,7 @@ import net.knarcraft.blacksmith.config.NPCSettings;
import net.knarcraft.blacksmith.manager.EconomyManager;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.enchantments.EnchantmentTarget;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@ -208,8 +209,8 @@ public class BlacksmithTrait extends Trait {
* @param item <p>The item to check</p>
* @return <p>True if the item is repairable</p>
*/
private static boolean isRepairable(ItemStack item) {
return item.getItemMeta() instanceof Damageable;
public static boolean isRepairable(ItemStack item) {
return item.getItemMeta() instanceof Damageable && EnchantmentTarget.BREAKABLE.includes(item);
}
}