Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 130 lines 2.7 kB view raw
1package net.minecraft.server; 2 3import java.io.DataInput; 4import java.io.DataOutput; 5import java.io.IOException; 6 7public abstract class NBTBase { 8 9 private String a = null; 10 11 public NBTBase() { 12 } 13 14 abstract void a(DataOutput dataoutput) throws IOException; 15 16 abstract void a(DataInput datainput) throws IOException; 17 18 public abstract byte a(); 19 20 public String b() { 21 return this.a == null ? "" : this.a; 22 } 23 24 public NBTBase a(String s) { 25 this.a = s; 26 return this; 27 } 28 29 public static NBTBase b(DataInput datainput) throws IOException { 30 byte b0 = datainput.readByte(); 31 32 if (b0 == 0) { 33 return new NBTTagEnd(); 34 } else { 35 NBTBase nbtbase = a(b0); 36 37 nbtbase.a = datainput.readUTF(); 38 nbtbase.a(datainput); 39 return nbtbase; 40 } 41 } 42 43 public static void a(NBTBase nbtbase, DataOutput dataoutput) throws IOException { 44 dataoutput.writeByte(nbtbase.a()); 45 if (nbtbase.a() != 0) { 46 dataoutput.writeUTF(nbtbase.b()); 47 nbtbase.a(dataoutput); 48 } 49 } 50 51 public static NBTBase a(byte b0) { 52 switch (b0) { 53 case 0: 54 return new NBTTagEnd(); 55 56 case 1: 57 return new NBTTagByte(); 58 59 case 2: 60 return new NBTTagShort(); 61 62 case 3: 63 return new NBTTagInt(); 64 65 case 4: 66 return new NBTTagLong(); 67 68 case 5: 69 return new NBTTagFloat(); 70 71 case 6: 72 return new NBTTagDouble(); 73 74 case 7: 75 return new NBTTagByteArray(); 76 77 case 8: 78 return new NBTTagString(); 79 80 case 9: 81 return new NBTTagList(); 82 83 case 10: 84 return new NBTTagCompound(); 85 86 default: 87 return null; 88 } 89 } 90 91 public static String b(byte b0) { 92 switch (b0) { 93 case 0: 94 return "TAG_End"; 95 96 case 1: 97 return "TAG_Byte"; 98 99 case 2: 100 return "TAG_Short"; 101 102 case 3: 103 return "TAG_Int"; 104 105 case 4: 106 return "TAG_Long"; 107 108 case 5: 109 return "TAG_Float"; 110 111 case 6: 112 return "TAG_Double"; 113 114 case 7: 115 return "TAG_Byte_Array"; 116 117 case 8: 118 return "TAG_String"; 119 120 case 9: 121 return "TAG_List"; 122 123 case 10: 124 return "TAG_Compound"; 125 126 default: 127 return "UNKNOWN"; 128 } 129 } 130}