@Override public void spawnServerSide( EntityPlayerMP player, NBTTagCompound dataFromClient, NBTTagCompound rewardData) { byte baseRotation = dataFromClient.getBoolean(ROTATE_KEY) ? dataFromClient.getByte(BASEROTATION_KEY) : -1; NBTTagList list = dataFromClient.getTagList(SHAPES_KEY, COMPOUND); for (int i = 0; i < list.tagCount(); i++) { NBTTagCompound shapeNbt = list.getCompoundTagAt(i); ArrayList<NBTTagCompound> blockDataList = new ArrayList<>(); NBTTagList blockDataNbt = shapeNbt.getTagList(BLOCKDATA_KEY, COMPOUND); for (int j = 0; j < blockDataNbt.tagCount(); j++) blockDataList.add(blockDataNbt.getCompoundTagAt(j)); applyShape(Shapes.loadShape(shapeNbt), player, blockDataList, baseRotation); } }