71c84c8132
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 9a80d38c SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-722: Add EntityRemoveEvent 258086d9 SPIGOT-7417, PR-967: Add Sign#getTargetSide and Sign#getAllowedEditor ffaba051 SPIGOT-7584: Add missing Tag.ITEMS_NON_FLAMMABLE_WOOD CraftBukkit Changes: 98b6c1ac7 SPIGOT-7589 Fix NullPointerException when bans expire a2736ddb0 SPIGOT-336, SPIGOT-3366, SPIGOT-5768, SPIGOT-6409, SPIGOT-6861, PR-1008: Add EntityRemoveEvent 5bf12cb89 SPIGOT-7565: Throw a more descriptive error message when a developer tries to spawn an entity from a CraftBukkit class 76d95fe7e SPIGOT-7417, PR-1343: Add Sign#getTargetSide and Sign#getAllowedEditor Spigot Changes: e9ec5485 Rebuild patches f1b62e0c Rebuild patches
52 Zeilen
2.1 KiB
Diff
52 Zeilen
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nex <nex@bits.team>
|
|
Date: Thu, 24 Feb 2022 16:28:08 +0100
|
|
Subject: [PATCH] Added byte array serialization/deserialization for
|
|
PersistentDataContainers
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
|
|
index 18fc4f1c7151bfdeed32a52cf5050a76ebc391d6..decf3b1949d4653a9fb01684b93ff91048137076 100644
|
|
--- a/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
|
|
+++ b/src/main/java/org/bukkit/persistence/PersistentDataContainer.java
|
|
@@ -184,4 +184,39 @@ public interface PersistentDataContainer {
|
|
*/
|
|
@NotNull
|
|
PersistentDataAdapterContext getAdapterContext();
|
|
+
|
|
+ // Paper start - byte array serialization
|
|
+ /**
|
|
+ * Serialize this {@link PersistentDataContainer} instance to a
|
|
+ * byte array.
|
|
+ *
|
|
+ * @return a binary representation of this container
|
|
+ * @throws java.io.IOException if we fail to write this container to a byte array
|
|
+ */
|
|
+ byte @NotNull [] serializeToBytes() throws java.io.IOException;
|
|
+
|
|
+ /**
|
|
+ * Read values from a serialised byte array into this
|
|
+ * {@link PersistentDataContainer} instance.
|
|
+ *
|
|
+ * @param bytes the byte array to read from
|
|
+ * @param clear if true, this {@link PersistentDataContainer} instance
|
|
+ * will be cleared before reading
|
|
+ * @throws java.io.IOException if the byte array has an invalid format
|
|
+ */
|
|
+ void readFromBytes(byte @NotNull [] bytes, boolean clear) throws java.io.IOException;
|
|
+
|
|
+ /**
|
|
+ * Read values from a serialised byte array into this
|
|
+ * {@link PersistentDataContainer} instance.
|
|
+ * This method has the same effect as
|
|
+ * <code>PersistentDataContainer#readFromBytes(bytes, true)</code>
|
|
+ *
|
|
+ * @param bytes the byte array to read from
|
|
+ * @throws java.io.IOException if the byte array has an invalid format
|
|
+ */
|
|
+ default void readFromBytes(final byte @NotNull [] bytes) throws java.io.IOException {
|
|
+ this.readFromBytes(bytes, true);
|
|
+ }
|
|
+ // Paper end - byte array serialization
|
|
}
|