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.
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
+++ 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 a(String s) {
+ // 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"));
+ }
+ // Paper end
@ -26,7 +39,7 @@ index f608b35502890650adfc1df35e0794471f57ecbc..74a8418b72f97a8956857a46fb062516
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")) {
+ if (this.hasKeyOfType(s + "Most", 99) && this.hasKeyOfType(s + "Least", 99)) {
+ return true;
+ }
+ // Paper end