@SuppressWarnings("unchecked") public <T extends NBT> T getTagOfType(String key, NBTType<T> type) { NBT tag = tags.get(key); if ((tag != null) && (tag.getType() == type)) { return (T) tag; } return null; }
@SuppressWarnings("unchecked") protected void writeTag(OUT stream, NBT tag) throws IOException { TagWriter<OUT, NBT> f = (TagWriter<OUT, NBT>) typeWriters.get(tag.getType()); if (f == null) { throw new IOException(MessageFormat.format("No writer registered for nbt type {0}", tag.getType())); } f.writeTag(stream, tag); }
public NBTNumber getNumberTag(String key) { NBT tag = tags.get(key); if ((tag != null) && NBTNumber.class.isAssignableFrom(tag.getType().getNBTTagClass())) { return (NBTNumber) tag; } return null; }
public void serializeTag(OUT to, NBT tag) throws IOException { NBTType<?> type = tag.getType(); writeTagType(to, type); if (tag.getType() == NBTType.END) { return; } if (type != NBTType.COMPOUND) { throw new IOException(MessageFormat.format("Root tag must be compound, got: {0}", type)); } writeTagName(to, ""); writeTag(to, tag); }
for (Entry<String, NBT> entry : tag.getTags().entrySet()) { NBT value = entry.getValue(); writeTagType(stream, value.getType()); writeTagName(stream, entry.getKey()); writeTag(stream, value);