sendToInventory rewritten.
This commit is contained in:
parent
c97f048847
commit
291e6e4668
@ -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…
x
Reference in New Issue
Block a user