diff --git a/patches/server/0315-Save-player-data-using-a-RocksDB-database.patch b/patches/server/0315-Save-player-data-using-a-RocksDB-database.patch index 02619044..6011189d 100644 --- a/patches/server/0315-Save-player-data-using-a-RocksDB-database.patch +++ b/patches/server/0315-Save-player-data-using-a-RocksDB-database.patch @@ -18,7 +18,7 @@ index 9c01005751c0088f560f96401cdfdebbbda4e7ec..4d2e77efc362c1f14209e7e51b5ac151 implementation("org.mozilla:rhino-engine:1.7.14") // Purpur implementation("dev.omega24:upnp4j:1.0") // Purpur diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index e4f92a0237e08c6a07da2b1c73de38c1acb20653..f1d7bb89fb8f02f120f9abfff5759668fc4de62c 100644 +index cdbf10339a8e8846a8c364de483a0ccd95cd225a..0d725fb135088578f4218f23c40c35f7e621f9da 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -73,6 +73,8 @@ import net.minecraft.SharedConstants; @@ -51,7 +51,7 @@ index beb05039926e1fb7a656dfcd0c503f82db67fc46..256c9b8abd9c692b942e3be5d3aab0fe net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender } catch (Exception e) { diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java -index 36af81f0957d17e170d229059c66f4eb4539dfeb..1dd0c53d464947b2d321b83917a8634cce37372b 100644 +index 36af81f0957d17e170d229059c66f4eb4539dfeb..9eedca5e8b9e025bb8c099121a99736df0176779 100644 --- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java @@ -4,48 +4,238 @@ import com.mojang.datafixers.DataFixer; @@ -376,7 +376,7 @@ index 36af81f0957d17e170d229059c66f4eb4539dfeb..1dd0c53d464947b2d321b83917a8634c int i = NbtUtils.getDataVersion(nbttagcompound, -1); player.load(ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.PLAYER, nbttagcompound, i, net.minecraft.SharedConstants.getCurrentVersion().getDataVersion().getVersion())); // Paper - replace player converter -@@ -99,41 +279,45 @@ public class PlayerDataStorage { +@@ -99,41 +279,49 @@ public class PlayerDataStorage { return nbttagcompound; } @@ -392,7 +392,9 @@ index 36af81f0957d17e170d229059c66f4eb4539dfeb..1dd0c53d464947b2d321b83917a8634c + try { + byte[] data = get(defaultColumnFamily, getBytesFromUuid(uuid)); + if (data == null) return null; -+ return NbtIo.read(new DataInputStream(new ByteArrayInputStream(data))); ++ CompoundTag playerData = NbtIo.read(new DataInputStream(new ByteArrayInputStream(data))); ++ int i = NbtUtils.getDataVersion(playerData, -1); ++ return ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.PLAYER, playerData, i, net.minecraft.SharedConstants.getCurrentVersion().getDataVersion().getVersion()); } catch (Exception exception) { - PlayerDataStorage.LOGGER.warn("Failed to load player data for " + s); + PlayerDataStorage.LOGGER.warn("Failed to load player data for " + uuid); @@ -413,7 +415,9 @@ index 36af81f0957d17e170d229059c66f4eb4539dfeb..1dd0c53d464947b2d321b83917a8634c + if (handle == null) return null; + byte[] data = get(handle, getBytesFromUuid(uuid)); + if (data == null) return null; -+ return NbtIo.read(new DataInputStream(new ByteArrayInputStream(data))); ++ CompoundTag playerData = NbtIo.read(new DataInputStream(new ByteArrayInputStream(data))); ++ int i = NbtUtils.getDataVersion(playerData, -1); ++ return ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.PLAYER, playerData, i, net.minecraft.SharedConstants.getCurrentVersion().getDataVersion().getVersion()); + } catch (Exception exception) { + PlayerDataStorage.LOGGER.warn("Failed to load player data for " + uuid); } @@ -563,7 +567,7 @@ index 312a6d90c0a09570aef24c205dc2ff277dcd4279..d0e5c8163530f2c530f492a23170b286 // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 01137e7000bd24f80f329aa577e606db52fd9e3c..4c23ae1a88962d925223b0e773bfcb2a8899f20e 100644 +index 3310828edcabd2c24e3200dcb89d4e8ebd82cf16..cce3eb21545a0f6e3d5bed9308b9768185984e72 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -194,7 +194,6 @@ import org.bukkit.craftbukkit.util.CraftLocation; @@ -574,7 +578,7 @@ index 01137e7000bd24f80f329aa577e606db52fd9e3c..4c23ae1a88962d925223b0e773bfcb2a import org.bukkit.craftbukkit.util.Versioning; import org.bukkit.craftbukkit.util.permissions.CraftDefaultPermissions; import org.bukkit.entity.Entity; -@@ -2134,16 +2133,17 @@ public final class CraftServer implements Server { +@@ -2126,16 +2125,17 @@ public final class CraftServer implements Server { @Override public OfflinePlayer[] getOfflinePlayers() { PlayerDataStorage storage = console.playerDataStorage;