31 lines
1.3 KiB
Java
31 lines
1.3 KiB
Java
package games.dmg.spigottyrant;
|
|
|
|
import java.util.Objects;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.enchantments.Enchantment;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
|
|
public final class BukkitTyrantArmorItemFactory implements TyrantArmorItemFactory {
|
|
@Override
|
|
public ItemStack create(TyrantArmorPiece piece, String tyrantName) {
|
|
TyrantArmorSpec spec = TyrantArmorSpec.forPiece(piece, tyrantName);
|
|
ItemStack item = new ItemStack(spec.material());
|
|
ItemMeta meta = Objects.requireNonNull(item.getItemMeta(), "Legacy reward metadata is unavailable");
|
|
meta.setDisplayName(ChatColor.GOLD + spec.displayName());
|
|
meta.setLore(spec.lore().stream().map(line -> ChatColor.GRAY + line).toList());
|
|
if (spec.protectionLevel() > 0) {
|
|
meta.addEnchant(Enchantment.PROTECTION, spec.protectionLevel(), true);
|
|
}
|
|
if (spec.sharpnessLevel() > 0) {
|
|
meta.addEnchant(Enchantment.SHARPNESS, spec.sharpnessLevel(), true);
|
|
}
|
|
if (spec.efficiencyLevel() > 0) {
|
|
meta.addEnchant(Enchantment.EFFICIENCY, spec.efficiencyLevel(), true);
|
|
}
|
|
meta.addEnchant(Enchantment.MENDING, spec.mendingLevel(), true);
|
|
item.setItemMeta(meta);
|
|
return item;
|
|
}
|
|
}
|