Examples of Inventory


Examples of org.bukkit.inventory.Inventory

      return trainInvs;
    }
  }

  public static int depositInFurnace(Inventory from, Furnace toFurnace, ItemParser parser, boolean isFuelPreferred) {
    final Inventory to = toFurnace.getInventory();
    List<ItemParser> heatables = new ArrayList<ItemParser>();
    List<ItemParser> fuels = new ArrayList<ItemParser>();
    if (!parser.hasType()) {
      // Add all heatables and fuels
      for (ItemParser p : TrainCarts.plugin.getParsers("heatable", 1)) {
        if (p == null || !p.hasType()) {
          heatables.clear();
          break;
        } else {
          heatables.add(p);
        }
      }
      for (ItemParser p : TrainCarts.plugin.getParsers("fuel", 1)) {
        if (p == null || !p.hasType()) {
          fuels.clear();
          break;
        } else {
          fuels.add(p);
        }
      }
      if (heatables.isEmpty() && fuels.isEmpty()) {
        return 0;
      }
    } else {
      // Is the parser fuel or heatable?
      boolean heatable = RecipeUtil.isHeatableItem(parser.getItemStack(1));
      boolean fuel = RecipeUtil.isFuelItem(parser.getTypeId());
      if (heatable && fuel) {
        if (isFuelPreferred) {
          fuels.add(parser);
        } else {
          heatables.add(parser);
        }
      } else if (heatable) {
        heatables.add(parser);
      } else if (fuel) {
        fuels.add(parser);
      } else {
        return 0;
      }
    }
    final int startAmount = parser.hasAmount() ? parser.getAmount() : Integer.MAX_VALUE;
    int amountToTransfer = startAmount;

    // Transfer heatable items
    for (ItemParser p : heatables) {
      ItemStack item = to.getItem(0);
      if (item == null) {
        item = ItemUtil.emptyItem();
      }
      amountToTransfer -= ItemUtil.transfer(from, item, p, amountToTransfer);
      to.setItem(0, item);
    }

    // Transfer fuel (requires manual limiting if no amount is set)
    for (ItemParser p : fuels) {
      if (p == null) {
        continue;
      }
      if (amountToTransfer == 0) {
        break;
      }

      int transferCount = amountToTransfer;
      ItemStack fuel = to.getItem(1);
      if (fuel == null) {
        fuel = ItemUtil.emptyItem();
      }
      if (!p.hasAmount()) {
        // Fill the minimal amount needed to burn all the heatables in the furnace
        ItemStack cookeditem = to.getItem(0);
        if (cookeditem == null || cookeditem.getType() == Material.AIR) continue;
        int fuelNeeded = cookeditem.getAmount() * 200;
        if (fuelNeeded == 0) continue; //nothing to cook
        //===================================================
        fuelNeeded -= toFurnace.getCookTime();
        if (fuelNeeded <= 0) continue; //we got enough
        //===================================================
        int fuelPerItem = 0;
        if (fuel.getType() == Material.AIR) {
          fuelPerItem = RecipeUtil.getFuelTime(p.getItemStack(1));
        } else {
          fuelPerItem = RecipeUtil.getFuelTime(fuel);
        }
        //====================================================
        if (fuelPerItem == 0) continue;
        fuelNeeded -= fuelPerItem * fuel.getAmount();
        if (fuelNeeded <= 0) continue;
        //====================================================
        transferCount = Math.min(amountToTransfer, (int) Math.ceil((double) fuelNeeded / (double) fuelPerItem));
      }
      amountToTransfer -= ItemUtil.transfer(from, fuel, p, transferCount);
      to.setItem(1, fuel);
    }
    return startAmount - amountToTransfer;
  }
View Full Code Here

Examples of org.bukkit.inventory.Inventory

  }

  public static int transferAllItems(Collection<InventoryHolder> fromHolders, Collection<InventoryHolder> toHolders, ItemParser itemParser, boolean isFuelPreferred) {
    int amount, transferred = 0;
    for (InventoryHolder fromHolder : fromHolders) {
      Inventory from = fromHolder.getInventory();

      // Averaged?
      if (itemParser instanceof AveragedItemParser) {
        // Perform 'one by one' logic - which is a lot slower
        final int totalAmount = itemParser.hasAmount() ? itemParser.getAmount() : Integer.MAX_VALUE;
        final ItemParser single = itemParser.setAmount(1);
        boolean continueTransferring;
        int transferredAmount = 0;
        do {
          // Start of the loop: If nothing is transferred, break it.
          continueTransferring = false;
          // Go by all inventories
          for (InventoryHolder toHolder : toHolders) {
            Inventory to = toHolder.getInventory();
            amount = transferItems(from, to, single, isFuelPreferred);
            if (amount > 0) {
              transferred += amount;
              transferredAmount += amount;
              // Continue transferring? Evaluate the current transfer amount
              if (!(continueTransferring = (transferredAmount < totalAmount))) {
                break;
              }
            }
          }
        } while (continueTransferring);
      } else {
        // Perform regular item transfer: fill one by one
        for (InventoryHolder toHolder : toHolders) {
          Inventory to = toHolder.getInventory();
          amount = transferItems(from, to, itemParser, isFuelPreferred);
          transferred += amount;
          // Update item parser amount
          if (amount > 0 && itemParser.hasAmount()) {
            itemParser = itemParser.setAmount(itemParser.getAmount() - amount);
View Full Code Here

Examples of org.bukkit.inventory.Inventory

  @Override
  public void onPhysicsPostMove(double speedFactor) throws MemberMissingException, GroupUnloadedException {
    super.onPhysicsPostMove(speedFactor);
    if (this.getProperties().canPickup()) {
      Inventory inv = entity.getInventory();
      double distance;
      for (Entity e : entity.getNearbyEntities(2.0)) {
        if (!(e instanceof Item) || EntityUtil.isIgnored(e)) {
          continue;
        }
View Full Code Here

Examples of org.bukkit.inventory.Inventory

  public boolean getCoalFromNeighbours() {
    for (MinecartMember<?> mm : this.getNeightbours()) {
      //Is it a storage minecart?
      if (mm instanceof MinecartMemberChest) {
        //has coal?
        Inventory inv = ((MinecartMemberChest) mm).getEntity().getInventory();
        for (int i = 0; i < inv.getSize(); i++) {
          ItemStack item = inv.getItem(i);
          if (LogicUtil.nullOrEmpty(item) || item.getType() != Material.COAL) {
            continue;
          }
          ItemUtil.subtractAmount(item, 1);
          inv.setItem(i, item);
          return true;
        }
      }
    }
    return false;
View Full Code Here

Examples of org.bukkit.inventory.Inventory

    return text.startsWith("items");
  }

  @Override
  public boolean handle(MinecartMember<?> member, String text, SignActionEvent event) {
    final Inventory inventory = getInventory(member);
    if (inventory == null) {
      return false;
    }
    int count = ItemUtil.getItemCount(getInventory(member), -1, -1);
    return Util.evaluate(count, text);
View Full Code Here

Examples of org.bukkit.inventory.Inventory

    return Util.evaluate(count, text);
  }

  @Override
  public boolean handle(MinecartGroup group, String text, SignActionEvent event) {
    final Inventory inventory = getInventory(group);
    if (inventory == null) {
      return false;
    }
    int count = ItemUtil.getItemCount(inventory, -1, -1);
    return Util.evaluate(count, text);
View Full Code Here

Examples of org.bukkit.inventory.Inventory

        }
    }

    @EventHandler
    public void onInventoryClose(InventoryCloseEvent event) {
        Inventory inventory = event.getInventory();
        if (tempInventoryScripts.containsKey(inventory) && inventory.getViewers().isEmpty())
            tempInventoryScripts.remove(inventory);
    }
View Full Code Here

Examples of org.bukkit.inventory.Inventory

    public static void _registerNPC(dNPC denizenNPC) {
        if (denizenNPC == null || !denizenNPC.isValid()) return;
        int id = denizenNPC.getId();
        if (!denizenNPCs.containsKey(id)) {
            denizenNPCs.put(id, denizenNPC);
            Inventory npcInventory = Bukkit.getServer().createInventory(denizenNPC, InventoryType.PLAYER);
            npcInventory.setContents(denizenNPC.getInventoryTrait().getContents());
            npcInventories.put(id, npcInventory);
        }
    }
View Full Code Here

Examples of org.bukkit.inventory.Inventory

        FlagManager.clearNPCFlags(npc.getId());
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        Inventory inventory = event.getInventory();
        if (inventory.getHolder() instanceof dNPC) {
            dNPC npc = (dNPC) inventory.getHolder();
            npc.getInventory().setContents(inventory.getContents());
            Equipment equipment = npc.getEquipmentTrait();
            for (int i = 0; i < 5; i++)
                equipment.set(i, inventory.getItem(i));
        }
    }
View Full Code Here

Examples of org.bukkit.inventory.Inventory

        }
    }

    @EventHandler
    public void inventoryClick(InventoryClickEvent event) {
        Inventory inventory = event.getInventory();
        if (!didPlayerClickOwnInventory((Player) event.getWhoClicked(), inventory))
            return;
        ItemStack item = event.getCurrentItem();
        Player player = (Player) inventory.getHolder();
        ItemStack cursor = event.getCursor();
        if (event.getSlotType() == InventoryType.SlotType.ARMOR) {
            if (item != null && item.getType() != Material.AIR
                    && (cursor == null || cursor.getType() == Material.AIR || isArmor(cursor))) {
                if (playerUnequipsArmorEvent(player, item, "INVENTORY")) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.