@Override public void afterPlace(GlowPlayer player, GlowBlock block, ItemStack holding, GlowBlockState oldState) { GlowBanner banner = (GlowBanner) block.getState(); banner.setBaseColor(DyeColor.getByDyeData((byte) holding.getDurability())); BannerMeta meta = (BannerMeta) holding.getItemMeta(); meta.setPatterns(meta.getPatterns()); banner.update(); }
/** * Creates an instance by copying from the given {@link ItemMeta}. If that item is another * {@link BannerMeta}, its patterns are copied; otherwise, the new banner is blank. * @param meta the {@link ItemMeta} to copy */ public GlowMetaBanner(ItemMeta meta) { super(meta); if (!(meta instanceof BannerMeta)) { return; } BannerMeta banner = (BannerMeta) meta; patterns = banner.getPatterns(); baseColor = banner.getBaseColor(); }
if (meta.getPatterns().isEmpty()) { if (blank != null) { return null; // More than 1 blank
public ItemBuilder banner(Pattern... patterns) { if (itemMeta instanceof BannerMeta) { Arrays.stream(patterns).forEach(pattern -> ((BannerMeta) itemMeta).addPattern(pattern)); } return this; }
BannerMeta meta = ensureMeta(res); if (root.keyExists("banner.basecolor")) { meta.setBaseColor(DyeColor.valueOf(root.getString("banner.basecolor"))); Pattern pattern = new Pattern(DyeColor.valueOf(sub.getString("color")), PatternType.getByIdentifier(sub.getString("type"))); meta.addPattern(pattern);
@Override public Collection<ItemStack> getDrops(GlowBlock block, ItemStack tool) { GlowBanner state = (GlowBanner) block.getState(); ItemStack drop = new ItemStack(Material.BANNER, 1); BannerMeta meta = (BannerMeta) drop.getItemMeta(); meta.setPatterns(state.getPatterns()); drop.setItemMeta(meta); drop.setDurability(state.getBaseColor().getDyeData()); return Arrays.asList(drop); }
public static DyeColor getBaseColor(BannerMeta banner) { return banner.getBaseColor(); }
@Override public int numberOfPatterns() { return bm.numberOfPatterns(); }
@Override public void removePattern(int i) { bm.removePattern(i); }
public static void setBaseColor(BannerMeta banner, DyeColor color) { banner.setBaseColor(color); }
@Override public List<MCPattern> getPatterns() { List<Pattern> bukkitPatterns = bm.getPatterns(); List<MCPattern> patterns = new ArrayList<>(bukkitPatterns.size()); for(Pattern p : bukkitPatterns) { patterns.add(new BukkitMCPattern(p)); } return patterns; }
@Override public void addPattern(MCPattern pattern) { bm.addPattern((Pattern) pattern.getHandle()); }
@Override public void setPatterns(List<MCPattern> patterns) { List<Pattern> bukkitPatterns = new ArrayList<>(patterns.size()); for(MCPattern pattern : patterns) { bukkitPatterns.add((Pattern) pattern.getHandle()); } bm.setPatterns(bukkitPatterns); }
@Override public LuaValue call() { return CoerceJavaToLua.coerce(meta.numberOfPatterns()); } });
@Override public LuaValue call(LuaValue num) { meta.removePattern(num.checkint()); return CoerceJavaToLua.coerce(self); } });
private boolean bleachBanner(GlowPlayer player, GlowBlock block) { // fired when a player bleaches a banner using the cauldron if (player.getGameMode() == GameMode.CREATIVE) { return false; } if (block.getData() > LEVEL_EMPTY) { ItemStack inHand = player.getItemInHand(); BannerMeta meta = (BannerMeta) inHand.getItemMeta(); List<Pattern> layers = meta.getPatterns(); if (layers == null || layers.isEmpty()) { return false; } if (!setCauldronLevel(block, block.getData() - 1, player, CauldronLevelChangeEvent.ChangeReason.BANNER_WASH)) { return false; } meta.setPatterns(layers); inHand.setItemMeta(meta); return true; } else { return false; } }
BannerMeta banner = (BannerMeta) meta; DataKey root = key.getRelative("banner"); if (banner.getBaseColor() != null) { // TODO: why is this deprecated? root.setString("basecolor", banner.getBaseColor().name()); } else { root.removeKey("basecolor"); List<org.bukkit.block.banner.Pattern> patterns = banner.getPatterns(); root.removeKey("patterns"); for (int i = 0; i < patterns.size(); i++) {
public MaterialAndData(ItemStack item) { this.material = item.getType(); this.data = item.getDurability(); if (DefaultMaterials.isPlayerSkull(this)) { ItemMeta meta = item.getItemMeta(); Object profile = InventoryUtils.getSkullProfile(meta); extraData = new BlockSkull(profile); } else if (DefaultMaterials.isBanner(this.material)) { ItemMeta meta = item.getItemMeta(); if (meta != null && meta instanceof BannerMeta) { BannerMeta banner = (BannerMeta)meta; extraData = new BlockBanner(banner.getPatterns(), DeprecatedUtils.getBaseColor(banner)); } } else if (this.material == Material.LEATHER_BOOTS || this.material == Material.LEATHER_CHESTPLATE || this.material == Material.LEATHER_HELMET || this.material == Material.LEATHER_LEGGINGS) { ItemMeta meta = item.getItemMeta(); if (meta != null && meta instanceof LeatherArmorMeta) { extraData = new LeatherArmorData(((LeatherArmorMeta)meta).getColor()); } } else if (this.material == Material.POTION) { ItemMeta meta = item.getItemMeta(); if (meta != null && meta instanceof PotionMeta) { extraData = new PotionData(CompatibilityUtils.getColor((PotionMeta)meta)); } } }
private static ItemStack banner(String[] part) { try { if (part.length >= 2) { ItemStack result = new ItemStack(Material.getMaterial(part[0]), Integer.parseInt(part[1])); BannerMeta meta = (BannerMeta) result.getItemMeta(); for (int i = 2; i < part.length; i += 2) { meta.addPattern(new Pattern(DyeColor.valueOf(part[i + 1]), PatternType.valueOf(part[i]))); } result.setItemMeta(meta); return result; } else { return null; } } catch (Exception e) { return null; } } }
if (bannerData.patterns != null) banner.setPatterns(bannerData.patterns);