Fix supporting more places of the old UUID format

Fixes #3734
This commit is contained in:
Aikar 2020-07-01 03:13:57 -04:00
parent 174c81a963
commit d9bdfa4aa2
2 changed files with 12 additions and 2 deletions

View file

@ -39,8 +39,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ // Paper start
+ if (nbttagcompound != null && nbttagcompound.hasKeyOfType("SkullOwner", 10)) {
+ NBTTagCompound owner = nbttagcompound.getCompound("SkullOwner");
+ if (owner.hasKey("Id")) {
+ nbttagcompound.map.put("SkullOwnerOrig", owner.map.get("Id"));
+ if (owner.hasUUID("Id")) {
+ nbttagcompound.setUUID("SkullOwnerOrig", owner.getUUID("Id"));
+ TileEntitySkull.sanitizeUUID(owner);
+ }
+ }

View file

@ -23,3 +23,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
return GameProfileSerializer.a(this.get(s));
}
public final boolean hasUUID(String s) { return this.b(s); } // Paper - OBFHELPER
public boolean b(String s) {
+ // Paper start - support old format
+ if (hasKey(s + "Least") && hasKey(s + "Most")) {
+ return true;
+ }
+ // Paper end
NBTBase nbtbase = this.get(s);
return nbtbase != null && nbtbase.b() == NBTTagIntArray.a && ((NBTTagIntArray) nbtbase).getInts().length == 4;