From f4214b8d94c5a9690fa2e41f7b547545dec26549 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 30 Mar 2016 19:36:20 -0400
Subject: [PATCH] MC Dev fixes


diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
index d4f412742..d55e180d7 100644
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
@@ -89,7 +89,7 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
         return MoreObjects.toStringHelper(this).add("x", this.getX()).add("y", this.getY()).add("z", this.getZ()).toString();
     }
 
-    public int compareTo(Object object) {
+    public int compareTo(BaseBlockPosition object) { // Paper - decompile fix
         return this.l((BaseBlockPosition) object);
     }
 }
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index 62a9c92f8..1b7599769 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -46,7 +46,7 @@ public abstract class BiomeBase {
     protected List<BiomeBase.BiomeMeta> w;
 
     public static int a(BiomeBase biomebase) {
-        return BiomeBase.REGISTRY_ID.a((Object) biomebase);
+        return BiomeBase.REGISTRY_ID.a(biomebase); // Paper - decompile fix
     }
 
     @Nullable
diff --git a/src/main/java/net/minecraft/server/CommandAbstract.java b/src/main/java/net/minecraft/server/CommandAbstract.java
index 76bf04f56..a99d0f870 100644
--- a/src/main/java/net/minecraft/server/CommandAbstract.java
+++ b/src/main/java/net/minecraft/server/CommandAbstract.java
@@ -231,7 +231,7 @@ public abstract class CommandAbstract implements ICommand {
         }
 
         if (object != null && oclass.isAssignableFrom(object.getClass())) {
-            return (Entity) object;
+            return (T) object; // Paper - fix decompile error
         } else {
             throw new ExceptionEntityNotFound(s);
         }
@@ -448,7 +448,7 @@ public abstract class CommandAbstract implements ICommand {
     }
 
     private static <T extends Comparable<T>> IBlockData a(IBlockData iblockdata, IBlockState<T> iblockstate, Comparable<?> comparable) {
-        return iblockdata.set(iblockstate, comparable);
+        return iblockdata.set(iblockstate, (T) comparable); // Paper - fix decompiler error
     }
 
     public static Predicate<IBlockData> b(final Block block, String s) throws ExceptionInvalidBlockState {
@@ -541,7 +541,7 @@ public abstract class CommandAbstract implements ICommand {
 
     @Nullable
     private static <T extends Comparable<T>> T a(IBlockState<T> iblockstate, String s) {
-        return (Comparable) iblockstate.b(s).orNull();
+        return iblockstate.b(s).orNull(); // Paper - fix decompiler error
     }
 
     public static String a(Object[] aobject) {
@@ -693,7 +693,7 @@ public abstract class CommandAbstract implements ICommand {
         return this.getCommand().compareTo(icommand.getCommand());
     }
 
-    public int compareTo(Object object) {
+    public int compareTo(ICommand object) { // Paper - fix decompile error
         return this.a((ICommand) object);
     }
 
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 77b81a575..ba461ad48 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -34,7 +34,7 @@ public class EntityTypes {
 
     @Nullable
     public static String b(Entity entity) {
-        int i = EntityTypes.b.a((Object) entity.getClass());
+        int i = EntityTypes.b.a(entity.getClass()); // Paper - Decompile fix
 
         return i == -1 ? null : (String) EntityTypes.g.get(i);
     }
@@ -254,7 +254,7 @@ public class EntityTypes {
             EntityTypes.d.add(minecraftkey);
 
             while (EntityTypes.g.size() <= i) {
-                EntityTypes.g.add((Object) null);
+                EntityTypes.g.add(null); // Paper - Decompile fix
             }
 
             EntityTypes.g.set(i, s1);
diff --git a/src/main/java/net/minecraft/server/LotoSelectorEntry.java b/src/main/java/net/minecraft/server/LotoSelectorEntry.java
index a540167d6..b2860555d 100644
--- a/src/main/java/net/minecraft/server/LotoSelectorEntry.java
+++ b/src/main/java/net/minecraft/server/LotoSelectorEntry.java
@@ -85,11 +85,11 @@ public abstract class LotoSelectorEntry {
             return jsonobject;
         }
 
-        public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) {
+        public JsonElement serialize(LotoSelectorEntry object, Type type, JsonSerializationContext jsonserializationcontext) {
             return this.a((LotoSelectorEntry) object, type, jsonserializationcontext);
         }
 
-        public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
+        public LotoSelectorEntry deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
             return this.a(jsonelement, type, jsondeserializationcontext);
         }
     }
diff --git a/src/main/java/net/minecraft/server/RegistryBlockID.java b/src/main/java/net/minecraft/server/RegistryBlockID.java
index 58f47d0de..8860a0129 100644
--- a/src/main/java/net/minecraft/server/RegistryBlockID.java
+++ b/src/main/java/net/minecraft/server/RegistryBlockID.java
@@ -8,7 +8,7 @@ import java.util.Iterator;
 import java.util.List;
 import javax.annotation.Nullable;
 
-public class RegistryBlockID<T> implements Registry<T> {
+public class RegistryBlockID<T> implements Registry { // Paper - Fix decompile error
 
     private final IdentityHashMap<T, Integer> a;
     private final List<T> b;
@@ -26,7 +26,7 @@ public class RegistryBlockID<T> implements Registry<T> {
         this.a.put(t0, Integer.valueOf(i));
 
         while (this.b.size() <= i) {
-            this.b.add((Object) null);
+            this.b.add(null); // Paper - Fix decompile error
         }
 
         this.b.set(i, t0);
diff --git a/src/main/java/net/minecraft/server/ServerPing.java b/src/main/java/net/minecraft/server/ServerPing.java
index 2179664a0..981582212 100644
--- a/src/main/java/net/minecraft/server/ServerPing.java
+++ b/src/main/java/net/minecraft/server/ServerPing.java
@@ -57,7 +57,8 @@ public class ServerPing {
 
         public Serializer() {}
 
-        public ServerPing a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
+        // Paper - decompile fix
+        public ServerPing deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
             JsonObject jsonobject = ChatDeserializer.m(jsonelement, "status");
             ServerPing serverping = new ServerPing();
 
@@ -80,7 +81,8 @@ public class ServerPing {
             return serverping;
         }
 
-        public JsonElement a(ServerPing serverping, Type type, JsonSerializationContext jsonserializationcontext) {
+        // Paper - decompile fix
+        public JsonElement serialize(ServerPing serverping, Type type, JsonSerializationContext jsonserializationcontext) {
             JsonObject jsonobject = new JsonObject();
 
             if (serverping.a() != null) {
@@ -101,14 +103,6 @@ public class ServerPing {
 
             return jsonobject;
         }
-
-        public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) {
-            return this.a((ServerPing) object, type, jsonserializationcontext);
-        }
-
-        public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
-            return this.a(jsonelement, type, jsondeserializationcontext);
-        }
     }
 
     public static class ServerData {
@@ -133,27 +127,21 @@ public class ServerPing {
 
             public Serializer() {}
 
-            public ServerPing.ServerData a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
+            // Paper - decompile fix
+            public ServerPing.ServerData deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
                 JsonObject jsonobject = ChatDeserializer.m(jsonelement, "version");
 
                 return new ServerPing.ServerData(ChatDeserializer.h(jsonobject, "name"), ChatDeserializer.n(jsonobject, "protocol"));
             }
 
-            public JsonElement a(ServerPing.ServerData serverping_serverdata, Type type, JsonSerializationContext jsonserializationcontext) {
+            // Paper - decompile fix
+            public JsonElement serialize(ServerPing.ServerData serverping_serverdata, Type type, JsonSerializationContext jsonserializationcontext) {
                 JsonObject jsonobject = new JsonObject();
 
                 jsonobject.addProperty("name", serverping_serverdata.a());
                 jsonobject.addProperty("protocol", Integer.valueOf(serverping_serverdata.getProtocolVersion()));
                 return jsonobject;
             }
-
-            public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) {
-                return this.a((ServerPing.ServerData) object, type, jsonserializationcontext);
-            }
-
-            public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
-                return this.a(jsonelement, type, jsondeserializationcontext);
-            }
         }
     }
 
@@ -188,7 +176,8 @@ public class ServerPing {
 
             public Serializer() {}
 
-            public ServerPing.ServerPingPlayerSample a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
+            // Paper - decompile fix
+            public ServerPing.ServerPingPlayerSample deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
                 JsonObject jsonobject = ChatDeserializer.m(jsonelement, "players");
                 ServerPing.ServerPingPlayerSample serverping_serverpingplayersample = new ServerPing.ServerPingPlayerSample(ChatDeserializer.n(jsonobject, "max"), ChatDeserializer.n(jsonobject, "online"));
 
@@ -212,7 +201,8 @@ public class ServerPing {
                 return serverping_serverpingplayersample;
             }
 
-            public JsonElement a(ServerPing.ServerPingPlayerSample serverping_serverpingplayersample, Type type, JsonSerializationContext jsonserializationcontext) {
+            // Paper - decompile fix
+            public JsonElement serialize(ServerPing.ServerPingPlayerSample serverping_serverpingplayersample, Type type, JsonSerializationContext jsonserializationcontext) {
                 JsonObject jsonobject = new JsonObject();
 
                 jsonobject.addProperty("max", Integer.valueOf(serverping_serverpingplayersample.a()));
@@ -234,14 +224,6 @@ public class ServerPing {
 
                 return jsonobject;
             }
-
-            public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) {
-                return this.a((ServerPing.ServerPingPlayerSample) object, type, jsonserializationcontext);
-            }
-
-            public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException {
-                return this.a(jsonelement, type, jsondeserializationcontext);
-            }
         }
     }
 }
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
index f5bcbdbe1..3190cadfc 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
@@ -20,7 +20,7 @@ public class ItemFactoryTest extends AbstractTestingBase {
 
     @Test
     public void testKnownAttributes() throws Throwable {
-        final ZipInputStream nmsZipStream = new ZipInputStream(CommandAbstract.class/* Magic class that isn't imported! */.getProtectionDomain().getCodeSource().getLocation().openStream());
+        final ZipInputStream nmsZipStream = new ZipInputStream(net.minecraft.server.HttpUtilities.class/* Magic class that isn't imported! */.getProtectionDomain().getCodeSource().getLocation().openStream()); // Paper
         final Collection<String> names = new HashSet<String>();
         for (ZipEntry clazzEntry; (clazzEntry = nmsZipStream.getNextEntry()) != null; ) {
             final String entryName = clazzEntry.getName();
-- 
2.17.1