@Override public ItemStack setEntityType(ItemStack is, EntityType type) { BlockStateMeta bsm = (BlockStateMeta) is.getItemMeta(); BlockState bs = bsm.getBlockState(); ((CreatureSpawner) bs).setSpawnedType(type); bsm.setBlockState(bs); is.setItemMeta(bsm); return setDisplayName(is, type); }
@Override public MCBlockState getBlockState() { try { return BukkitConvertor.BukkitGetCorrectBlockState(bsm.getBlockState()); } catch (IllegalStateException | NullPointerException ex) { // BlockStateMeta that cannot get a BlockState // or a broken implementation return null; } }
@Override public void setBlockState(MCBlockState state) { bsm.setBlockState((BlockState) state.getHandle()); } }
if (meta instanceof BlockStateMeta) { BlockStateMeta state = (BlockStateMeta) meta; if (state.hasBlockState()) { DataKey root = key.getRelative("blockstate"); BlockState blockstate = state.getBlockState(); if (blockstate instanceof Banner) { Banner banner = (Banner) blockstate;
@Override public EntityType getEntityType(ItemStack is) { BlockStateMeta bsm = (BlockStateMeta) is.getItemMeta(); CreatureSpawner bs = (CreatureSpawner) bsm.getBlockState(); return bs.getSpawnedType(); }
ItemStack itemClone = item.clone(); BlockStateMeta blockStateMeta = (BlockStateMeta) itemClone.getItemMeta(); ShulkerBox shulkerBox = (ShulkerBox) blockStateMeta.getBlockState(); ItemStack[] contents = shulkerBox.getInventory().getContents(); ItemStack[] contentsClone = new ItemStack[contents.length]; blockStateMeta.setBlockState(shulkerBox); itemClone.setItemMeta(blockStateMeta); return itemClone; } else if (item.getItemMeta() instanceof BlockStateMeta && ((BlockStateMeta) item.getItemMeta()).getBlockState() instanceof InventoryHolder) { ItemStack itemClone = item.clone(); BlockStateMeta blockStateMeta = (BlockStateMeta) itemClone.getItemMeta(); InventoryHolder inventoryHolder = (InventoryHolder) blockStateMeta.getBlockState(); inventoryHolder.getInventory().clear(); blockStateMeta.setBlockState((org.bukkit.block.BlockState) inventoryHolder); itemClone.setItemMeta(blockStateMeta); return itemClone;
BlockStateMeta meta = ensureMeta(res); if (root.keyExists("blockstate.banner")) { Banner banner = (Banner) meta.getBlockState(); deserialiseBanner(root.getRelative("blockstate"), banner); banner.update(true); meta.setBlockState(banner);