35 lines
1.2 KiB
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);
|
|
}
|
|
} |