Make a PDC view accessible directly from ItemStack

This commit is contained in:
Jake Potrebic
2024-06-12 10:29:30 -07:00
parent 9e5e007003
commit cb339661cc
5 changed files with 199 additions and 154 deletions

View File

@@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
* use this class to encapsulate Materials for which {@link Material#isItem()}
* returns false.</b>
*/
public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable { // Paper
public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable, io.papermc.paper.persistence.PersistentDataViewHolder { // Paper
private ItemStack craftDelegate; // Paper - always delegate to server-backed stack
private MaterialData data = null;
@@ -61,6 +61,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
}
// Paper end
// Paper start - pdc
@Override
public io.papermc.paper.persistence.@NotNull PersistentDataContainerView getPersistentDataContainer() {
return this.craftDelegate.getPersistentDataContainer();
}
// Paper end - pdc
@Utility
protected ItemStack() {}