Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2025-01-05 21:01:08 +01:00
2d09115b3a
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
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
|
|
}
|