Utils/Itemutils/src/main/java/eu/mikroskeem/utils/itemutils/Shield.java

35 lines
1.2 KiB
Java

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<Pattern> 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);
}
}