summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/Packet.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/Packet.java')
-rw-r--r--src/main/java/net/minecraft/server/Packet.java99
1 files changed, 69 insertions, 30 deletions
diff --git a/src/main/java/net/minecraft/server/Packet.java b/src/main/java/net/minecraft/server/Packet.java
index 06475164..3746fb0d 100644
--- a/src/main/java/net/minecraft/server/Packet.java
+++ b/src/main/java/net/minecraft/server/Packet.java
@@ -11,38 +11,36 @@ import java.util.Set;
public abstract class Packet {
- private static EntityList a = new EntityList();
- private static Map b = new HashMap();
+ public static EntityList j = new EntityList();
+ private static Map a = new HashMap();
+ private static Set b = new HashSet();
private static Set c = new HashSet();
- private static Set d = new HashSet();
public final long timestamp = System.currentTimeMillis();
- public boolean k = false;
- private static EntityList e;
- private static int f;
+ public boolean l = false;
public Packet() {}
static void a(int i, boolean flag, boolean flag1, Class oclass) {
- if (a.b(i)) {
+ if (j.b(i)) {
throw new IllegalArgumentException("Duplicate packet id:" + i);
- } else if (b.containsKey(oclass)) {
+ } else if (a.containsKey(oclass)) {
throw new IllegalArgumentException("Duplicate packet class:" + oclass);
} else {
- a.a(i, oclass);
- b.put(oclass, Integer.valueOf(i));
+ j.a(i, oclass);
+ a.put(oclass, Integer.valueOf(i));
if (flag) {
- c.add(Integer.valueOf(i));
+ b.add(Integer.valueOf(i));
}
if (flag1) {
- d.add(Integer.valueOf(i));
+ c.add(Integer.valueOf(i));
}
}
}
public static Packet a(int i) {
try {
- Class oclass = (Class) a.a(i);
+ Class oclass = (Class) j.a(i);
return oclass == null ? null : (Packet) oclass.newInstance();
} catch (Exception exception) {
@@ -53,7 +51,7 @@ public abstract class Packet {
}
public final int b() {
- return ((Integer) b.get(this.getClass())).intValue();
+ return ((Integer) a.get(this.getClass())).intValue();
}
// CraftBukkit - throws IOException
@@ -69,7 +67,7 @@ public abstract class Packet {
return null;
}
- if (flag && !d.contains(Integer.valueOf(i)) || !flag && !c.contains(Integer.valueOf(i))) {
+ if (flag && !c.contains(Integer.valueOf(i)) || !flag && !b.contains(Integer.valueOf(i))) {
throw new IOException("Bad packet id " + i);
}
@@ -94,19 +92,7 @@ public abstract class Packet {
}
// CraftBukkit end
- PacketCounter packetcounter = (PacketCounter) e.a(i);
-
- if (packetcounter == null) {
- packetcounter = new PacketCounter((EmptyClass1) null);
- e.a(i, packetcounter);
- }
-
- packetcounter.a(packet.a());
- ++f;
- if (f % 1000 == 0) {
- ;
- }
-
+ PacketCounter.a(i, (long) packet.a());
return packet;
}
@@ -153,6 +139,60 @@ public abstract class Packet {
public abstract int a();
+ protected ItemStack b(DataInputStream datainputstream) throws IOException { // CraftBukkit
+ ItemStack itemstack = null;
+ short short1 = datainputstream.readShort();
+
+ if (short1 >= 0) {
+ byte b0 = datainputstream.readByte();
+ short short2 = datainputstream.readShort();
+
+ itemstack = new ItemStack(short1, b0, short2);
+ if (Item.byId[short1].g()) {
+ itemstack.tag = this.c(datainputstream);
+ }
+ }
+
+ return itemstack;
+ }
+
+ protected void a(ItemStack itemstack, DataOutputStream dataoutputstream) throws IOException { // CraftBukkit
+ if (itemstack == null) {
+ dataoutputstream.writeShort(-1);
+ } else {
+ dataoutputstream.writeShort(itemstack.id);
+ dataoutputstream.writeByte(itemstack.count);
+ dataoutputstream.writeShort(itemstack.getData());
+ if (itemstack.getItem().g()) {
+ this.a(itemstack.tag, dataoutputstream);
+ }
+ }
+ }
+
+ protected NBTTagCompound c(DataInputStream datainputstream) throws IOException { // CraftBukkit
+ short short1 = datainputstream.readShort();
+
+ if (short1 < 0) {
+ return null;
+ } else {
+ byte[] abyte = new byte[short1];
+
+ datainputstream.readFully(abyte);
+ return CompressedStreamTools.a(abyte);
+ }
+ }
+
+ protected void a(NBTTagCompound nbttagcompound, DataOutputStream dataoutputstream) throws IOException { // CraftBukkit
+ if (nbttagcompound == null) {
+ dataoutputstream.writeShort(-1);
+ } else {
+ byte[] abyte = CompressedStreamTools.a(nbttagcompound);
+
+ dataoutputstream.writeShort((short) abyte.length);
+ dataoutputstream.write(abyte);
+ }
+ }
+
static {
a(0, true, true, Packet0KeepAlive.class);
a(1, true, true, Packet1Login.class);
@@ -212,13 +252,12 @@ public abstract class Packet {
a(105, true, false, Packet105CraftProgressBar.class);
a(106, true, true, Packet106Transaction.class);
a(107, true, true, Packet107SetCreativeSlot.class);
+ a(108, false, true, Packet108.class);
a(130, true, true, Packet130UpdateSign.class);
a(131, true, false, Packet131.class);
a(200, true, false, Packet200Statistic.class);
a(201, true, false, Packet201PlayerInfo.class);
a(254, false, true, Packet254GetInfo.class);
a(255, true, true, Packet255KickDisconnect.class);
- e = new EntityList();
- f = 0;
}
}