Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void fromChestToLinkSuctionHopper(InventoryMoveItemEvent event) {
- Location location = event.getDestination().getLocation();
- if (!(event.getDestination().getHolder() instanceof Hopper)) return;
- if (!tempCacheHopper.containsKey(location)) {
- InventoryHolder inventoryHolder = event.getDestination().getHolder();
- if (inventoryHolder instanceof Hopper)
- tempCacheHopper.put(location, inventoryHolder.getInventory());
- System.out.println("add inventory xxxxxxxxxxxxxxxxxxxxxx ");
- }
- FilterItems filterItems = plugin.getFilterItems();
- Inventory inventory = tempCacheHopper.get(location);
- Inventory fromInventory = event.getSource();
- if (inventory == null) {
- System.out.println("inventory null ");
- event.setCancelled(true);
- return;
- }
- /*System.out.println("inventory getInitiator() " + event.getInitiator().getLocation().clone().add(0, -1, 0).getBlock().getType());
- System.out.println("inventory location " + location);
- System.out.println("inventory fromInventory " + fromInventory.getLocation());*/
- if (!registry.getTypeofContainer(location).equals(ContainerRegistry.TypeOfContainer.LINKEDCONTAINER) ||
- !registry.getTypeofContainer(event.getInitiator().getLocation().clone().add(0, -1, 0)).equals(ContainerRegistry.TypeOfContainer.LINKEDCONTAINER))
- return;
- if (inventory.firstEmpty() == -1 && !inventory.containsAtLeast(event.getItem(), 1) && ItemUtily.isPlaceLeftInventory(inventory, event.getItem().getAmount(), event.getItem().getType())) {
- return;
- }
- /*if (fromInventory.getHolder() instanceof Hopper) {
- location = fromInventory.getLocation().clone().subtract(0, 1, 0);
- System.out.println("tesrt");
- }*/
- if (!filterItems.checkIfItemMatch(location, event.getItem(), inventory)) {
- System.out.println("test eeeeeeeeee");
- event.setCancelled(true);
- int numberOfItems = event.getItem().getAmount();
- for (int i = 0; i < fromInventory.getSize(); i++) {
- ItemStack items = fromInventory.getItem(i);
- System.out.println("test itemsss " + items);
- if (items != null && filterItems.checkIfItemMatch(location, items, inventory)) {
- ItemStack itemsstack = items.clone();
- int totalofItems = Math.min(numberOfItems, items.getAmount());
- itemsstack.setAmount(totalofItems);
- items.setAmount(items.getAmount() - totalofItems);
- if (items.getAmount() == 0)
- fromInventory.setItem(i, new ItemStack(Material.AIR));
- event.getDestination().addItem(itemsstack);
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement