package tc.oc.commons.bukkit.util.materials; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Banner; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.inventory.meta.BannerMeta; import tc.oc.commons.bukkit.util.BlockFaces; public class Banners { private Banners() {} public static BannerMeta getItemMeta(Banner block) { BannerMeta meta = (BannerMeta) Bukkit.getItemFactory().getItemMeta(Material.BANNER); meta.setBaseColor(block.getBaseColor()); meta.setPatterns(block.getPatterns()); return meta; } public static void applyToBlock(Banner block, BannerMeta meta) { block.setBaseColor(meta.getBaseColor()); block.setPatterns(meta.getPatterns()); } public static boolean placeStanding(Location location, BannerMeta meta) { Block block = location.getBlock(); block.setType(Material.STANDING_BANNER, false); final BlockState state = block.getState(); if(state instanceof Banner) { Banner banner = (Banner) block.getState(); applyToBlock(banner, meta); org.bukkit.material.Banner material = (org.bukkit.material.Banner) banner.getData(); material.setFacingDirection(BlockFaces.yawToFace(location.getYaw())); banner.setData(material); banner.update(true); return true; } return false; } public static Location getLocationWithYaw(Banner block) { Location location = block.getLocation(); location.setYaw(BlockFaces.faceToYaw(((org.bukkit.material.Banner) block.getData()).getFacing())); return location; } }