package net.minecraft.server;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public abstract class NBTBase {
public static final String[] a = new String[] { "END", "BYTE", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", "BYTE[]", "STRING", "LIST", "COMPOUND", "INT[]"};
abstract void write(DataOutput dataoutput) throws IOException;
abstract void load(DataInput datainput, int i, NBTReadLimiter nbtreadlimiter) throws IOException;
@Override
public abstract String toString();
public abstract byte getTypeId();
protected NBTBase() {}
protected static NBTBase createTag(byte id) {
switch (id) {
case 0:
return new NBTTagEnd();
case 1:
return new NBTTagByte();
case 2:
return new NBTTagShort();
case 3:
return new NBTTagInt();
case 4:
return new NBTTagLong();
case 5:
return new NBTTagFloat();
case 6:
return new NBTTagDouble();
case 7:
return new NBTTagByteArray();
case 8:
return new NBTTagString();
case 9:
return new NBTTagList();
case 10:
return new NBTTagCompound();
case 11:
return new NBTTagIntArray();
default:
return null;
}
}
@Override
public abstract NBTBase clone();
public boolean isEmpty() {
return false;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof NBTBase)) {
return false;
} else {
NBTBase nbtbase = (NBTBase) object;
return this.getTypeId() == nbtbase.getTypeId();
}
}
@Override
public int hashCode() {
return this.getTypeId();
}
protected String c_() {
return this.toString();
}
}