/** * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team * http://www.mod-buildcraft.com * <p/> * BuildCraft is distributed under the terms of the Minecraft Mod Public * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ package buildcraft.core.lib.utils; import java.io.IOException; import java.util.UUID; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTSizeTracker; import net.minecraft.nbt.NBTTagCompound; public final class NBTUtils { /** * Deactivate constructor */ private NBTUtils() { } public static NBTTagCompound load(byte[] data) { try { NBTTagCompound nbt = CompressedStreamTools.func_152457_a(data, NBTSizeTracker.field_152451_a); return nbt; } catch (IOException e) { e.printStackTrace(); } return null; } public static NBTTagCompound getItemData(ItemStack stack) { if (stack == null) { return null; } NBTTagCompound nbt = stack.getTagCompound(); if (nbt == null) { nbt = new NBTTagCompound(); stack.setTagCompound(nbt); } return nbt; } public static void writeUUID(NBTTagCompound data, String tag, UUID uuid) { if (uuid == null) { return; } NBTTagCompound nbtTag = new NBTTagCompound(); nbtTag.setLong("most", uuid.getMostSignificantBits()); nbtTag.setLong("least", uuid.getLeastSignificantBits()); data.setTag(tag, nbtTag); } public static UUID readUUID(NBTTagCompound data, String tag) { if (data.hasKey(tag)) { NBTTagCompound nbtTag = data.getCompoundTag(tag); return new UUID(nbtTag.getLong("most"), nbtTag.getLong("least")); } return null; } public static byte[] save(NBTTagCompound compound) { try { return CompressedStreamTools.compress(compound); } catch (IOException e) { e.printStackTrace(); return new byte[0]; } } }