williambriggs

CloseInventory

Jul 24th, 2022
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.70 KB | None | 0 0
  1. package me.will.backpack.listeners;
  2.  
  3. import me.will.backpack.Backpack;
  4. import me.will.backpack.utils.SerializationUtils;
  5. import net.kyori.adventure.text.Component;
  6. import org.bukkit.NamespacedKey;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.inventory.InventoryCloseEvent;
  10. import org.bukkit.event.inventory.InventoryType;
  11. import org.bukkit.inventory.ItemStack;
  12. import org.bukkit.inventory.meta.ItemMeta;
  13. import org.bukkit.persistence.PersistentDataContainer;
  14. import org.bukkit.persistence.PersistentDataType;
  15. import org.jetbrains.annotations.NotNull;
  16.  
  17.  
  18. public class CloseInventory implements Listener {
  19.  
  20.     @EventHandler
  21.     public void onInventoryClose(@NotNull InventoryCloseEvent event) {
  22.  
  23.         if (event.getInventory().getType().equals(InventoryType.DISPENSER) && event.getView().title().equals(Component.text("Backpack"))){
  24.  
  25.             if (event.getPlayer().getEquipment().getItemInMainHand().getItemMeta().getPersistentDataContainer().has(new NamespacedKey(Backpack.getPlugin(), "backpack_id"), PersistentDataType.BYTE_ARRAY)) {
  26.  
  27.                 byte[] serializedData = SerializationUtils.serializeInventory(event.getInventory());
  28.  
  29.                 ItemStack heldItem = event.getPlayer().getEquipment().getItemInMainHand();
  30.                 ItemMeta itemMeta = heldItem.getItemMeta();
  31.                 PersistentDataContainer container = itemMeta.getPersistentDataContainer();
  32.  
  33.  
  34.                 assert serializedData != null;
  35.                 container.set(new NamespacedKey(Backpack.getPlugin(), "backpack_id"), PersistentDataType.BYTE_ARRAY, serializedData);
  36.                 heldItem.setItemMeta(itemMeta);
  37.  
  38.  
  39.             }
  40.         }
  41.     }
  42. }
  43.  
Add Comment
Please, Sign In to add comment