geforkt von Mirrors/Paper
2873869bb1
Signs no longer have a specific isEdiable state, the entire API in this regard needs updating/deprecation. The boolean field is completely gone, replaced by a uuid (which will need a new setEditingPlayer(UUID) method on the Sign interface), and the current upstream implementation of setEdiable simply flips the is_waxed state. This patch is hence not needed as it neither allows editing (which will be redone in a later patch) nor is required to copy the is_waxed boolean flag as it lives in the signs compound tag and is covered by applyTo.
39 Zeilen
1.8 KiB
Diff
39 Zeilen
1.8 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 f0588bec9be09cb8273c310fb3de8bfe72dee9e5..20c7144307ecf1eb5c600f3b84df7bc15fa941d6 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/persistence/CraftPersistentDataContainer.java
|
|
@@ -168,5 +168,26 @@ public class CraftPersistentDataContainer implements PersistentDataContainer {
|
|
|
|
return this.customDataTags.containsKey(key.toString());
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public byte[] serializeToBytes() throws java.io.IOException {
|
|
+ net.minecraft.nbt.CompoundTag root = this.toTagCompound();
|
|
+ java.io.ByteArrayOutputStream byteArrayOutput = new java.io.ByteArrayOutputStream();
|
|
+ try (java.io.DataOutputStream dataOutput = new java.io.DataOutputStream(byteArrayOutput)) {
|
|
+ net.minecraft.nbt.NbtIo.write(root, dataOutput);
|
|
+ return byteArrayOutput.toByteArray();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void readFromBytes(byte[] bytes, boolean clear) throws java.io.IOException {
|
|
+ if (clear) {
|
|
+ this.clear();
|
|
+ }
|
|
+ try (java.io.DataInputStream dataInput = new java.io.DataInputStream(new java.io.ByteArrayInputStream(bytes))) {
|
|
+ net.minecraft.nbt.CompoundTag compound = net.minecraft.nbt.NbtIo.read(dataInput);
|
|
+ this.putAll(compound);
|
|
+ }
|
|
+ }
|
|
// Paper end
|
|
}
|