13
0
geforkt von Mirrors/Paper

Improve old UUID support, clean up old legacy keys.

If we set a UUID to new format, need to make sure old format doesn't
exist anymore. Additionally, ensure if new format exists, we prefer it over old.
Dieser Commit ist enthalten in:
Aikar 2020-07-01 05:42:51 -04:00
Ursprung f63e3dd135
Commit c43dcbfcf0
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 401ADFC9891FAAFE

Datei anzeigen

@ -8,15 +8,28 @@ We have stored UUID in plenty of places that did not get DFU'd
So just look for old format and load it if it exists. So just look for old format and load it if it exists.
diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java
index f608b35502890650adfc1df35e0794471f57ecbc..74a8418b72f97a8956857a46fb06251602ad30e3 100644 index f608b35502890650adfc1df35e0794471f57ecbc..436f40bcd7817bedde4f6570c7c47dba7ff7034f 100644
--- a/src/main/java/net/minecraft/server/NBTTagCompound.java --- a/src/main/java/net/minecraft/server/NBTTagCompound.java
+++ b/src/main/java/net/minecraft/server/NBTTagCompound.java +++ b/src/main/java/net/minecraft/server/NBTTagCompound.java
@@ -142,11 +142,21 @@ public class NBTTagCompound implements NBTBase { @@ -135,6 +135,12 @@ public class NBTTagCompound implements NBTBase {
public void setUUID(String prefix, UUID uuid) { a(prefix, uuid); } // Paper - OBFHELPER
public void a(String s, UUID uuid) {
+ // Paper start - support old format
+ if (this.hasKeyOfType(s + "Most", 99) && this.hasKeyOfType(s + "Least", 99)) {
+ this.map.remove(s + "Most");
+ this.map.remove(s + "Least");
+ }
+ // Paper end
this.map.put(s, GameProfileSerializer.a(uuid));
}
@@ -142,11 +148,21 @@ public class NBTTagCompound implements NBTBase {
@Nullable public UUID getUUID(String prefix) { return a(prefix); } // Paper - OBFHELPER @Nullable public UUID getUUID(String prefix) { return a(prefix); } // Paper - OBFHELPER
@Nullable @Nullable
public UUID a(String s) { public UUID a(String s) {
+ // Paper start - support old format + // Paper start - support old format
+ if (hasKey(s + "Least") && hasKey(s + "Most")) { + if (!hasKeyOfType(s, 11) && this.hasKeyOfType(s + "Most", 99) && this.hasKeyOfType(s + "Least", 99)) {
+ return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least")); + return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least"));
+ } + }
+ // Paper end + // Paper end
@ -26,7 +39,7 @@ index f608b35502890650adfc1df35e0794471f57ecbc..74a8418b72f97a8956857a46fb062516
public final boolean hasUUID(String s) { return this.b(s); } // Paper - OBFHELPER public final boolean hasUUID(String s) { return this.b(s); } // Paper - OBFHELPER
public boolean b(String s) { public boolean b(String s) {
+ // Paper start - support old format + // Paper start - support old format
+ if (hasKey(s + "Least") && hasKey(s + "Most")) { + if (this.hasKeyOfType(s + "Most", 99) && this.hasKeyOfType(s + "Least", 99)) {
+ return true; + return true;
+ } + }
+ // Paper end + // Paper end