Guest User

Untitled

a guest
Feb 27th, 2018
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.21 KB | None | 0 0
  1.     public static boolean checkReagentListAndConsume(EntityPlayer thePlayer, List<ItemStack> reagentsRequired) {
  2.         IItemHandler playerInventory = thePlayer.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
  3.         IRuneBagProvider theRuneBag = thePlayer.getCapability(RuneBagProvider.RUNEBAG_CAP, null);
  4.         int counter = reagentsRequired.size();
  5.         for (int index = reagentsRequired.size() - 1; index >= 0; index--) {
  6.             boolean hasReagent = thePlayer.inventory.hasItemStack(reagentsRequired.get(index));
  7.             if (hasReagent) {
  8.                 for (int slot = 0; slot < playerInventory.getSlots(); slot++) {
  9.                     int total;
  10.                     ItemStack stack = playerInventory.getStackInSlot(slot);
  11.                     if (!stack.isEmpty() && stack.getItem().equals(reagentsRequired.get(index).getItem()) && stack.getMetadata() == reagentsRequired.get(index).getMetadata()) {
  12.                         total = stack.getCount();
  13.                         if (total >= reagentsRequired.get(index).getCount()) {
  14.                             stack.shrink(reagentsRequired.get(index).getCount());
  15.                             getLogger().info("Player has " + (total - reagentsRequired.get(index).getCount()) + " " + stack.getDisplayName() +
  16.                                     " in the slot cause I ate " + reagentsRequired.get(index).getCount());
  17.                             getLogger().info("The index is set to: " + index);
  18.                             --counter;
  19.                         }
  20.                     }
  21.                 }
  22.             } else {
  23.                 for (int slot = 0; slot < playerInventory.getSlots(); slot++) {
  24.                     ItemStack stack = playerInventory.getStackInSlot(slot);
  25.                     if (!stack.isEmpty() && stack.getItem() instanceof RuneBag) {
  26.                         IItemHandler bagInventory = theRuneBag.getBag(EnumDyeColor.byMetadata(stack.getMetadata()));
  27.                         for (int bagSlots = 0; bagSlots < bagInventory.getSlots(); bagSlots++) {
  28.                             int total;
  29.                             ItemStack stackInBagSlot = bagInventory.getStackInSlot(bagSlots);
  30.                             if (!stackInBagSlot.isEmpty() && stackInBagSlot.getItem().equals(reagentsRequired.get(index).getItem()) && stackInBagSlot.getMetadata() == reagentsRequired.get(index).getMetadata()) {
  31.                                 total = stackInBagSlot.getCount();
  32.                                 if (total >= reagentsRequired.get(index).getCount()) {
  33.                                     bagInventory.getStackInSlot(bagSlots).shrink(reagentsRequired.get(index).getCount());
  34.                                     getLogger().info("Player has " + (total - reagentsRequired.get(index).getCount()) + " " + stackInBagSlot.getDisplayName() +
  35.                                             " in the Rune Bag cause I ate " + reagentsRequired.get(index).getCount());
  36.                                     --counter;
  37.                                 }
  38.                             }
  39.                         }
  40.                     }
  41.                 }
  42.             }
  43.             reagentsRequired.remove(index);
  44.         }
  45.         return counter == 0;
  46.     }
Advertisement
Add Comment
Please, Sign In to add comment