broken-arrow

Untitled

Jan 25th, 2022
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.71 KB | None | 0 0
  1. package com.ghostchu.storageproxy;
  2.  
  3. import org.brokenarrow.storage.CustomContainersMainClass;
  4. import org.brokenarrow.storage.api.ContainerRegistryAPI;
  5. import org.brokenarrow.storage.api.containerholders.InventoryHolders;
  6. import org.brokenarrow.storage.util.TypeOfContainers;
  7. import org.brokenarrow.storage.util.builderclass.ContainerData;
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.Location;
  10. import org.bukkit.inventory.Inventory;
  11. import org.bukkit.inventory.InventoryHolder;
  12. import org.bukkit.inventory.ItemStack;
  13. import org.jetbrains.annotations.NotNull;
  14. import org.jetbrains.annotations.Nullable;
  15. import org.maxgamer.quickshop.QuickShop;
  16. import org.maxgamer.quickshop.api.shop.Shop;
  17. import org.maxgamer.quickshop.api.shop.inventory.InventoryWrapper;
  18. import org.maxgamer.quickshop.api.shop.inventory.InventoryWrapperManager;
  19. import org.maxgamer.quickshop.api.shop.inventory.InventoryWrapperType;
  20.  
  21. import java.util.Arrays;
  22. import java.util.Map;
  23.  
  24. public class CCHWrapper implements InventoryWrapper {
  25.     private final Location cchBindingLocation;
  26.     private final ContainerData data;
  27.  
  28.     private final InventoryHolders holders;
  29.     private final Inventory inventory;
  30.  
  31.     public CCHWrapper(Location loc) {
  32.         this.cchBindingLocation = loc;
  33.         this.data = ContainerRegistryAPI.getInstance().findChest(loc);
  34.         if (this.data == null)
  35.             this.inventory = Bukkit.createInventory(null, 27);
  36.             //throw new IllegalArgumentException("Target chest not a CCH container");
  37.         else {
  38.             this.inventory = null;
  39.             if (this.data.getTypeOfContainer() != TypeOfContainers.TypeOfContainer.PAGEDCONTAINER)
  40.                 throw new IllegalArgumentException("Target chest not a CCH paged container");
  41.         }
  42.         this.holders = CustomContainersMainClass.getInstance().getInventoryHoldersCached().getInventoryHolder(cchBindingLocation);
  43.  
  44.     }
  45.  
  46.     @Override
  47.     public int getSize() {
  48.         if (this.inventory != null)
  49.             return this.inventory.getSize();
  50.         else
  51.             return holders.getguiSize();
  52.     }
  53.  
  54.     public Inventory getInventory() {
  55.         Inventory inventory = this.holders.getFirstPageWithItems(QuickShop.getInstance().getShopManager().getShop(cchBindingLocation).getItem());
  56.         if (inventory == null)
  57.             this.holders.setInventoryHopper();
  58.  
  59.         return inventory;
  60.     }
  61.  
  62.     @Override
  63.     public @Nullable ItemStack getItem(int i) {
  64.         System.out.println("getItem   ###############");
  65.         if (this.inventory != null)
  66.             return this.inventory.getItem(i);
  67.         else
  68.             return this.holders.getContents()[i];
  69.         // TODO
  70.     }
  71.  
  72.     @Override
  73.     public void setItem(int i, @Nullable ItemStack itemStack) throws IllegalArgumentException {
  74.         System.out.println("setItem    ###############");
  75.         if (this.inventory != null)
  76.             this.inventory.setItem(i, itemStack);
  77.         else
  78.             this.holders.addItems(itemStack);
  79.         //getInventory().setItem(i, itemStack);
  80.         // TODO
  81.     }
  82.  
  83.     @Override
  84.     public @NotNull ItemStack[] getContents() {
  85.         System.out.println("getContents    ###############");
  86.         if (this.inventory != null)
  87.             return this.inventory.getContents();
  88.         else
  89.             return this.holders.getContents();
  90.         //return    getInventory().getContents();
  91.         // TODO
  92.     }
  93.  
  94.     @Override
  95.     public void setContents(@NotNull ItemStack[] itemStacks) throws IllegalArgumentException {
  96.         //System.out.println("setContents    ###############");
  97.         System.out.println("setContents     ############### " + Arrays.toString(itemStacks));
  98.         if (this.inventory != null)
  99.             this.inventory.setContents(itemStacks);
  100.         else
  101.             holders.setContents(itemStacks);
  102.         //getInventory().setContents(itemStacks);
  103.         // TODO
  104.     }
  105.  
  106.     @Override
  107.     public @NotNull ItemStack[] getStorageContents() {
  108.         System.out.println("getStorageContents     ############### ");
  109.         if (this.inventory != null)
  110.             return this.inventory.getStorageContents();
  111.         else
  112.             return this.holders.getContents();
  113.         //return getInventory().getStorageContents();
  114.         // TODO
  115.     }
  116.  
  117.     @Override
  118.     public void setStorageContents(@NotNull ItemStack[] itemStacks) throws IllegalArgumentException {
  119.         System.out.println("setStorageContents     ############### " + Arrays.toString(itemStacks));
  120.         if (this.inventory != null)
  121.             this.inventory.setStorageContents(itemStacks);
  122.         else
  123.             holders.setContents(itemStacks);
  124.         //getInventory().setContents(itemStacks);
  125.         // TODO
  126.     }
  127.  
  128.     @Override
  129.     public @Nullable InventoryHolder getHolder() {
  130.         if (this.inventory != null)
  131.             this.inventory.getHolder();
  132.         else
  133.             getInventory().getHolder();
  134.         return null;
  135.     }
  136.  
  137.     @Override
  138.     public @Nullable Location getLocation() {
  139.         return cchBindingLocation;
  140.     }
  141.  
  142.     @Override
  143.     public int countItems(@NotNull ItemStack stack) {
  144.         System.out.println("countItems inside count items" + this.holders);
  145.         if (this.inventory != null)
  146.             return this.inventory.getContents().length;
  147.         else
  148.             return this.holders.getAmountOfOneItem(stack);
  149.     }
  150.  
  151.     @Override
  152.     public int countSpace(@NotNull ItemStack stack) {
  153.         System.out.println("countSpaces     ###############");
  154.         return -1;
  155.     }
  156.  
  157.     @Override
  158.     public int countItems(@NotNull Shop shop) {
  159.         System.out.println("countItems " + this.holders);
  160.         if (this.inventory != null)
  161.             return 0;
  162.         else
  163.             return this.holders.getAmountOfOneItem(shop.getItem());
  164.     }
  165.  
  166.     @Override
  167.     public @NotNull Map<Integer, ItemStack> removeItem(@NotNull ItemStack... items) throws IllegalArgumentException {
  168.         System.out.println("test removeItem ");
  169.         return InventoryWrapper.super.removeItem(items);
  170.     }
  171.  
  172.     @Override
  173.     public void remove(@NotNull ItemStack item) {
  174.         System.out.println("test remove ");
  175.         InventoryWrapper.super.remove(item);
  176.     }
  177.  
  178.     @Override
  179.     public @NotNull InventoryWrapperType getInventoryType() {
  180.         return InventoryWrapperType.PLUGIN;
  181.     }
  182.  
  183.     @Override
  184.     public @NotNull InventoryWrapperManager getWrapperManager() {
  185.         return StorageProxy.getInstance().getManager();
  186.     }
  187. }
  188.  
Add Comment
Please, Sign In to add comment