summaryrefslogtreecommitdiffstats
path: root/nms-patches/ItemSkull.patch
blob: 81de415384caa73ac6774c8b022e87747d38e338 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--- a/net/minecraft/server/ItemSkull.java
+++ b/net/minecraft/server/ItemSkull.java
@@ -117,6 +117,20 @@
             nbttagcompound.set("SkullOwner", GameProfileSerializer.serialize(new NBTTagCompound(), gameprofile));
             return true;
         } else {
+            // CraftBukkit start
+            boolean valid = true;
+
+            NBTTagList textures = nbttagcompound.getCompound("SkullOwner").getCompound("Properties").getList("textures", 10); // Safe due to method contracts
+            for (int i = 0; i < textures.size(); i++) {
+                if (textures.get(i) instanceof NBTTagCompound && !((NBTTagCompound) textures.get(i)).hasKeyOfType("Signature", 8)) {
+                    valid = false;
+                }
+            }
+
+            if (!valid) {
+                nbttagcompound.remove("SkullOwner");
+            }
+            // CraftBukkit end
             return false;
         }
     }