fix item
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package io.izzel.taboolib.cronus.bukkit;
|
||||
|
||||
import io.izzel.taboolib.util.item.Items;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@@ -49,37 +48,11 @@ public class ItemStack {
|
||||
}
|
||||
|
||||
public boolean hasItem(Player player) {
|
||||
int checkAmount = amount;
|
||||
for (org.bukkit.inventory.ItemStack itemStack : player.getInventory().getContents()) {
|
||||
if (itemStack != null && !itemStack.getType().equals(Material.AIR) && isItem(itemStack)) {
|
||||
checkAmount -= itemStack.getAmount();
|
||||
if (checkAmount <= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return Items.hasItem(player.getInventory(), this::isItem, amount);
|
||||
}
|
||||
|
||||
public boolean takeItem(Player player) {
|
||||
int takeAmount = amount;
|
||||
org.bukkit.inventory.ItemStack[] contents = player.getInventory().getContents();
|
||||
for (int i = 0; i < contents.length; i++) {
|
||||
org.bukkit.inventory.ItemStack itemStack = contents[i];
|
||||
if (itemStack != null && !itemStack.getType().equals(Material.AIR) && isItem(itemStack)) {
|
||||
takeAmount -= itemStack.getAmount();
|
||||
if (takeAmount < 0) {
|
||||
itemStack.setAmount(itemStack.getAmount() - (takeAmount + itemStack.getAmount()));
|
||||
return true;
|
||||
} else {
|
||||
player.getInventory().setItem(i, null);
|
||||
if (takeAmount == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return Items.takeItem(player.getInventory(), this::isItem, amount);
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
|
||||
@@ -164,7 +164,7 @@ public class Items {
|
||||
}
|
||||
|
||||
public static boolean checkItem(Player player, ItemStack item, int amount, boolean remove) {
|
||||
return hasItem(player.getInventory(), i -> i.isSimilar(item), amount);
|
||||
return remove ? takeItem(player.getInventory(), i -> i.isSimilar(item), amount) : hasItem(player.getInventory(), i -> i.isSimilar(item), amount);
|
||||
}
|
||||
|
||||
public static boolean checkItem(Inventory inventory, ItemStack item, int amount, boolean remove) {
|
||||
@@ -321,7 +321,7 @@ public class Items {
|
||||
return NMS.handle().saveNBT(item, nbt);
|
||||
}
|
||||
|
||||
interface Matcher {
|
||||
public interface Matcher {
|
||||
|
||||
boolean match(ItemStack item);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user