@Override
	public void readValue(NBTInputStream input) throws IOException
	{
		while (true)
		{
			final byte tag = input.readByte();
			if (tag == TYPE_END)
			{
				return;
			}

			final String name = input.readString();
			final NamedBinaryTag nbt = NBTParser.createFromType(tag);
			if (nbt != null)
			{
				nbt.readValue(input);
				this.setTag(name, nbt);
			}
		}
	}