package eu.mikroskeem.utils.itemutils; import org.apache.commons.lang.Validate; import org.bukkit.Material; import org.bukkit.block.Banner; import org.bukkit.block.banner.Pattern; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BlockStateMeta; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; public class Shield { /** * Set Minecraft shield design * * @param shieldStack Shield itemstack to apply design on * @param patternList Banner design patterns */ public static void setShieldDesign(@NotNull ItemStack shieldStack, @Nullable ArrayList patternList){ Validate.isTrue(shieldStack.getType().equals(Material.SHIELD), "Item must be a shield"); ItemMeta shieldMeta = shieldStack.getItemMeta(); BlockStateMeta shieldbMeta = (BlockStateMeta)shieldMeta; Banner banner = (Banner)shieldbMeta.getBlockState(); banner.setPatterns(patternList); banner.update(); // TODO: find out if it is needed shieldbMeta.setBlockState(banner); shieldStack.setItemMeta(shieldMeta); } }