sendToInventory rewritten.

devAnvil
Nonoriri 11 years ago
parent c97f048847
commit 291e6e4668
  1. 29
      BankEconomyMod/src/me/kaZep/Base/PlayerListener.java

@ -12837,7 +12837,7 @@ class updateInventoryTask implements Runnable {
anvilInv.getItem(INPUT).toString().toUpperCase().contains("SWORD") || anvilInv.getItem(INPUT).toString().toUpperCase().contains("FISHING") || anvilInv.getItem(INPUT).toString().toUpperCase().contains("SWORD") || anvilInv.getItem(INPUT).toString().toUpperCase().contains("FISHING") ||
anvilInv.getItem(INPUT).toString().toUpperCase().contentEquals("BOW")) && anvilInv.getItem(INPUT).getDurability() != 0)) { anvilInv.getItem(INPUT).toString().toUpperCase().contentEquals("BOW")) && anvilInv.getItem(INPUT).getDurability() != 0)) {
sendToInventory(anvilInv.getItem(INPUT), anvilInv.getItem(INPUT).getAmount(), player, player.getInventory()); sendToInventory(INPUT, anvilInv.getItem(INPUT).getAmount(), player);
Bukkit.getLogger().info("Invalid input!"); Bukkit.getLogger().info("Invalid input!");
} }
@ -12848,7 +12848,7 @@ class updateInventoryTask implements Runnable {
anvilInv.getItem(MATERIALS).getType() == Material.WOOD || anvilInv.getItem(MATERIALS).getType() == Material.COBBLESTONE || anvilInv.getItem(MATERIALS).getType() == Material.WOOD || anvilInv.getItem(MATERIALS).getType() == Material.COBBLESTONE ||
anvilInv.getItem(MATERIALS).getType() == Material.STRING)) { anvilInv.getItem(MATERIALS).getType() == Material.STRING)) {
sendToInventory(anvilInv.getItem(MATERIALS), anvilInv.getItem(MATERIALS).getAmount(), player, player.getInventory()); sendToInventory(MATERIALS, anvilInv.getItem(MATERIALS).getAmount(), player);
Bukkit.getLogger().info("Invalid materials!"); Bukkit.getLogger().info("Invalid materials!");
} }
@ -12955,7 +12955,7 @@ class updateInventoryTask implements Runnable {
if (anvilInv.getItem(MATERIALS).getAmount() > maxItemsNeeded) { if (anvilInv.getItem(MATERIALS).getAmount() > maxItemsNeeded) {
// Bukkit.getLogger().info("Materials exceed " + maxItemsNeeded + " stack. Dropping " + (anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded) + " of " + anvilInv.getItem(MATERIALS).getType()); // Bukkit.getLogger().info("Materials exceed " + maxItemsNeeded + " stack. Dropping " + (anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded) + " of " + anvilInv.getItem(MATERIALS).getType());
sendToInventory(anvilInv.getItem(MATERIALS), anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded, player, player.getInventory()); sendToInventory(MATERIALS, anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded, player);
// anvilInv.getItem(MATERIALS).setAmount(maxItemsNeeded); // anvilInv.getItem(MATERIALS).setAmount(maxItemsNeeded);
} }
@ -13023,23 +13023,28 @@ class updateInventoryTask implements Runnable {
} }
} }
public void sendToInventory(ItemStack item, int number, Player player, Inventory target) { public void sendToInventory(int slot, int itemCount, Player player) {
// Get inventories
Inventory anvilInventory = player.getOpenInventory().getTopInventory();
Inventory playerInventory = player.getOpenInventory().getBottomInventory();
ItemStack temp = item.clone(); // Get a temporary item stack to transfer
ItemStack temp = anvilInventory.getItem(slot);
temp.setAmount(itemCount);
temp.setAmount(number); // Attempt to add to the player inventory. Store leftovers in itemstack to be dropped.
ItemStack leftovers = target.addItem(temp).get(0); ItemStack leftovers = playerInventory.addItem(temp).get(0);
if (leftovers != null) { if (leftovers != null) {
player.getWorld().dropItemNaturally(player.getLocation(), leftovers); player.getWorld().dropItemNaturally(player.getLocation(), leftovers);
} }
item.setAmount(item.getAmount() - number); anvilInventory.getItem(slot).setAmount(anvilInventory.getItem(slot).getAmount() - itemCount);
if (item.getAmount() - number == 0) { if (anvilInventory.getItem(slot).getAmount() == 0) {
item.setType(Material.AIR);
Bukkit.getLogger().info("Item stack size reduced to 0, " + item.getType().toString() + " removed."); Bukkit.getLogger().info("Item stack size reduced to 0, " + anvilInventory.getItem(slot).getType().toString() + " removed.");
anvilInventory.setItem(slot, new ItemStack(Material.AIR));
} }
// player.getWorld().dropItemNaturally(player.getLocation(), new ItemStack(anvilInv.getItem(MATERIALS).getType(), anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded)); // player.getWorld().dropItemNaturally(player.getLocation(), new ItemStack(anvilInv.getItem(MATERIALS).getType(), anvilInv.getItem(MATERIALS).getAmount() - maxItemsNeeded));

Loading…
Cancel
Save