mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-26 14:30:17 +01:00
45 lines
2.3 KiB
Diff
45 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
|
|
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)) {
|