@@ -0,0 +1,2324 @@
+package io.github.thatsmusic99.headsplus.managers;%0A%0Aimport io.github.thatsmusic99.headsplus.HeadsPlus;%0Aimport org.bukkit.NamespacedKey;%0Aimport org.bukkit.inventory.ItemStack;%0Aimport org.bukkit.inventory.meta.ItemMeta;%0Aimport org.bukkit.inventory.meta.SkullMeta;%0Aimport org.bukkit.persistence.PersistentDataContainer;%0Aimport org.bukkit.persistence.PersistentDataType;%0Aimport org.jetbrains.annotations.NotNull;%0Aimport org.jetbrains.annotations.Nullable;%0A%0Apublic class PersistenceManager %7B%0A%0A    private final PersistenceManager instance;%0A    private static final NamespacedKey HEADSPLUS_STORAGE = new NamespacedKey(HeadsPlus.getInstance(), %22storage%22);%0A    private static final NamespacedKey HEADSPLUS_SELL_PRICE = new NamespacedKey(HeadsPlus.getInstance(), %22sell_price%22);%0A    private static final NamespacedKey HEADSPLUS_SELL_TYPE = new NamespacedKey(HeadsPlus.getInstance(), %22sell_type%22);%0A    private static final NamespacedKey HEADSPLUS_SELL_BOOLEAN = new NamespacedKey(HeadsPlus.getInstance(), %22sell_boolean%22);%0A%0A    public PersistenceManager() %7B%0A        instance = this;%0A    %7D%0A%0A    public PersistenceManager get() %7B%0A        return instance;%0A    %7D%0A%0A    public void setSellPrice(ItemStack item, double price) %7B%0A        setValue(item, HEADSPLUS_SELL_PRICE, PersistentDataType.DOUBLE, price);%0A    %7D%0A%0A    public void setSellType(ItemStack item, String type) %7B%0A        setValue(item, HEADSPLUS_SELL_TYPE, PersistentDataType.STRING, type);%0A    %7D%0A%0A    private %3CT, Z%3E void setValue(ItemStack item, NamespacedKey key, PersistentDataType%3CT, Z%3E dataType, Z object) %7B%0A        ItemMeta meta = item.getItemMeta();%0A        if (meta == null) return;%0A        PersistentDataContainer container = getStorage(meta);%0A        if (container == null) return;%0A        container.set(key, dataType, object);%0A        setStorage(meta, container);%0A        item.setItemMeta(meta);%0A    %7D%0A%0A    private @Nullable PersistentDataContainer getStorage(@NotNull ItemMeta meta) %7B%0A        PersistentDataContainer mainContainer = meta.getPersistentDataContainer();%0A        return mainContainer.get(HEADSPLUS_STORAGE, PersistentDataType.TAG_CONTAINER);%0A    %7D%0A%0A    private void setStorage(@NotNull ItemMeta meta, PersistentDataContainer container) %7B%0A        meta.getPersistentDataContainer().set(HEADSPLUS_STORAGE, PersistentDataType.TAG_CONTAINER, container);%0A    %7D%0A%7D%0A

Create PersistenceManager.java