@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); }
@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(); }
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; } }
meta.setPatterns(layers); result = banner.clone(); result.setItemMeta(meta);
@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); }
if (bannerData.patterns != null) banner.setPatterns(bannerData.patterns);