--- a/net/minecraft/nbt/IntArrayTag.java
+++ b/net/minecraft/nbt/IntArrayTag.java
@@ -1,3 +1,4 @@
+// mc-dev import
 package net.minecraft.nbt;
 
 import java.io.DataInput;
@@ -8,11 +9,12 @@
 import org.apache.commons.lang3.ArrayUtils;
 
 public class IntArrayTag extends CollectionTag<IntTag> {
+
     private static final int SELF_SIZE_IN_BYTES = 24;
     public static final TagType<IntArrayTag> TYPE = new TagType.VariableSize<IntArrayTag>() {
         @Override
-        public IntArrayTag load(DataInput dataInput, NbtAccounter nbtAccounter) throws IOException {
-            return new IntArrayTag(readAccounted(dataInput, nbtAccounter));
+        public IntArrayTag load(DataInput input, NbtAccounter tracker) throws IOException {
+            return new IntArrayTag(readAccounted(input, tracker));
         }
 
         @Override
@@ -23,14 +25,16 @@
         private static int[] readAccounted(DataInput input, NbtAccounter tracker) throws IOException {
             tracker.accountBytes(24L);
             int i = input.readInt();
-            tracker.accountBytes(4L, (long)i);
-            int[] is = new int[i];
+            com.google.common.base.Preconditions.checkArgument( i < 1 << 24); // Spigot
 
-            for (int j = 0; j < i; j++) {
-                is[j] = input.readInt();
+            tracker.accountBytes(4L, (long) i);
+            int[] aint = new int[i];
+
+            for (int j = 0; j < i; ++j) {
+                aint[j] = input.readInt();
             }
 
-            return is;
+            return aint;
         }
 
         @Override
@@ -55,27 +59,33 @@
     }
 
     public IntArrayTag(List<Integer> value) {
-        this(toArray(value));
+        this(IntArrayTag.toArray(value));
     }
 
     private static int[] toArray(List<Integer> list) {
-        int[] is = new int[list.size()];
+        int[] aint = new int[list.size()];
 
-        for (int i = 0; i < list.size(); i++) {
-            Integer integer = list.get(i);
-            is[i] = integer == null ? 0 : integer;
+        for (int i = 0; i < list.size(); ++i) {
+            Integer integer = (Integer) list.get(i);
+
+            aint[i] = integer == null ? 0 : integer;
         }
 
-        return is;
+        return aint;
     }
 
     @Override
     public void write(DataOutput output) throws IOException {
         output.writeInt(this.data.length);
+        int[] aint = this.data;
+        int i = aint.length;
 
-        for (int i : this.data) {
-            output.writeInt(i);
+        for (int j = 0; j < i; ++j) {
+            int k = aint[j];
+
+            output.writeInt(k);
         }
+
     }
 
     @Override
@@ -90,7 +100,7 @@
 
     @Override
     public TagType<IntArrayTag> getType() {
-        return TYPE;
+        return IntArrayTag.TYPE;
     }
 
     @Override
@@ -100,17 +110,16 @@
 
     @Override
     public IntArrayTag copy() {
-        int[] is = new int[this.data.length];
-        System.arraycopy(this.data, 0, is, 0, this.data.length);
-        return new IntArrayTag(is);
+        int[] aint = new int[this.data.length];
+
+        System.arraycopy(this.data, 0, aint, 0, this.data.length);
+        return new IntArrayTag(aint);
     }
 
-    @Override
     public boolean equals(Object object) {
-        return this == object || object instanceof IntArrayTag && Arrays.equals(this.data, ((IntArrayTag)object).data);
+        return this == object ? true : object instanceof IntArrayTag && Arrays.equals(this.data, ((IntArrayTag) object).data);
     }
 
-    @Override
     public int hashCode() {
         return Arrays.hashCode(this.data);
     }
@@ -124,32 +133,29 @@
         visitor.visitIntArray(this);
     }
 
-    @Override
     public int size() {
         return this.data.length;
     }
 
-    @Override
     public IntTag get(int i) {
         return IntTag.valueOf(this.data[i]);
     }
 
-    @Override
-    public IntTag set(int i, IntTag intTag) {
+    public IntTag set(int i, IntTag nbttagint) {
         int j = this.data[i];
-        this.data[i] = intTag.getAsInt();
+
+        this.data[i] = nbttagint.getAsInt();
         return IntTag.valueOf(j);
     }
 
-    @Override
-    public void add(int i, IntTag intTag) {
-        this.data = ArrayUtils.add(this.data, i, intTag.getAsInt());
+    public void add(int i, IntTag nbttagint) {
+        this.data = ArrayUtils.add(this.data, i, nbttagint.getAsInt());
     }
 
     @Override
     public boolean setTag(int index, Tag element) {
         if (element instanceof NumericTag) {
-            this.data[index] = ((NumericTag)element).getAsInt();
+            this.data[index] = ((NumericTag) element).getAsInt();
             return true;
         } else {
             return false;
@@ -159,7 +165,7 @@
     @Override
     public boolean addTag(int index, Tag element) {
         if (element instanceof NumericTag) {
-            this.data = ArrayUtils.add(this.data, index, ((NumericTag)element).getAsInt());
+            this.data = ArrayUtils.add(this.data, index, ((NumericTag) element).getAsInt());
             return true;
         } else {
             return false;
@@ -169,6 +175,7 @@
     @Override
     public IntTag remove(int i) {
         int j = this.data[i];
+
         this.data = ArrayUtils.remove(this.data, i);
         return IntTag.valueOf(j);
     }
@@ -178,7 +185,6 @@
         return 3;
     }
 
-    @Override
     public void clear() {
         this.data = new int[0];
     }
