aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/1033-Add-Offline-PDC-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/1033-Add-Offline-PDC-API.patch')
-rw-r--r--patches/server/1033-Add-Offline-PDC-API.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/server/1033-Add-Offline-PDC-API.patch b/patches/server/1033-Add-Offline-PDC-API.patch
new file mode 100644
index 0000000000..f1513955cb
--- /dev/null
+++ b/patches/server/1033-Add-Offline-PDC-API.patch
@@ -0,0 +1,45 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Lulu13022002 <[email protected]>
+Date: Sat, 9 Jul 2022 17:28:42 +0200
+Subject: [PATCH] Add Offline PDC API
+
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+index 4f4e3ee18d586f61706504218cddc06a38ca5580..94ca0407303c4493ab4928b12ec6ecc75aaca549 100644
+--- a/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java
+@@ -325,6 +325,34 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa
+ }
+ // Paper end
+
++ // Paper start - Add Offline PDC API
++ private static final org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new org.bukkit.craftbukkit.persistence.CraftPersistentDataTypeRegistry();
++ private io.papermc.paper.persistence.@org.checkerframework.checker.nullness.qual.MonotonicNonNull PersistentDataContainerView persistentDataContainerView;
++
++ @Override
++ public io.papermc.paper.persistence.PersistentDataContainerView getPersistentDataContainer() {
++ if (this.persistentDataContainerView == null) {
++ this.persistentDataContainerView = new io.papermc.paper.persistence.PaperPersistentDataContainerView(DATA_TYPE_REGISTRY) {
++
++ private CompoundTag getPersistentTag() {
++ return net.minecraft.Optionull.map(CraftOfflinePlayer.this.getData(), data -> data.getCompound("BukkitValues"));
++ }
++
++ @Override
++ public CompoundTag toTagCompound() {
++ return java.util.Objects.requireNonNullElseGet(this.getPersistentTag(), CompoundTag::new);
++ }
++
++ @Override
++ public net.minecraft.nbt.Tag getTag(String key) {
++ return net.minecraft.Optionull.map(this.getPersistentTag(), tag -> tag.get(key));
++ }
++ };
++ }
++ return this.persistentDataContainerView;
++ }
++ // Paper end - Add Offline PDC API
++
+ @Override
+ public Location getLastDeathLocation() {
+ if (this.getData().contains("LastDeathLocation", 10)) {