Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}