mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 03:48:01 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
40 lines
1.9 KiB
Diff
40 lines
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nex <nex@bits.team>
|
|
Date: Thu, 24 Feb 2022 16:28:07 +0100
|
|
Subject: [PATCH] Added byte array serialization/deserialization for
|
|
PersistentDataContainers
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
|
|
index 984e988a47aa55a3fd92198e379d0f92f511daef..5a4e7e7150b7c137b077e0b393f17ed35b5aec34 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
|
|
@@ -184,4 +184,27 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
|
|
this.customDataTags.clear();
|
|
}
|
|
// Paper end
|
|
+
|
|
+ // Paper start - byte array serialization
|
|
+ @Override
|
|
+ public byte[] serializeToBytes() throws java.io.IOException {
|
|
+ final net.minecraft.nbt.CompoundTag root = this.toTagCompound();
|
|
+ final java.io.ByteArrayOutputStream byteArrayOutput = new java.io.ByteArrayOutputStream();
|
|
+ try (final java.io.DataOutputStream dataOutput = new java.io.DataOutputStream(byteArrayOutput)) {
|
|
+ net.minecraft.nbt.NbtIo.write(root, dataOutput);
|
|
+ return byteArrayOutput.toByteArray();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void readFromBytes(final byte[] bytes, final boolean clear) throws java.io.IOException {
|
|
+ if (clear) {
|
|
+ this.clear();
|
|
+ }
|
|
+ try (final java.io.DataInputStream dataInput = new java.io.DataInputStream(new java.io.ByteArrayInputStream(bytes))) {
|
|
+ final net.minecraft.nbt.CompoundTag compound = net.minecraft.nbt.NbtIo.read(dataInput);
|
|
+ this.putAll(compound);
|
|
+ }
|
|
+ }
|
|
+ // Paper end - byte array serialization
|
|
}
|