本文整理了Java中org.bukkit.inventory.Inventory.getContents()
方法的一些代码示例,展示了Inventory.getContents()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Inventory.getContents()
方法的具体详情如下:
包路径:org.bukkit.inventory.Inventory
类名称:Inventory
方法名:getContents
[英]Returns all ItemStacks from the inventory
[中]返回库存中的所有ItemStack
代码示例来源:origin: GlowstoneMC/Glowstone
private int countAllItems(Inventory inventory, Material material, int data, int maxCount) {
if (material == null) {
return Arrays.stream(inventory.getContents())
.filter(stack -> !InventoryUtil.isEmpty(stack)).mapToInt(ItemStack::getAmount)
.sum();
}
int count = 0;
for (ItemStack stack : inventory.getContents()) {
if (stack.getType() == material && (data == -1 || data == stack.getData().getData())
&& (maxCount == -1 || maxCount == 0 || count < maxCount)) {
if (maxCount == -1 || maxCount == 0) {
count += stack.getAmount();
} else {
for (int i = 0; i < stack.getAmount(); i++) {
if (count < maxCount) {
count++;
} else {
return count;
}
}
}
}
}
return count;
}
代码示例来源:origin: GlowstoneMC/Glowstone
@Override
public void save(GlowMinecart entity, CompoundTag tag) {
super.save(entity, tag);
if (entity instanceof InventoryHolder) {
InventoryHolder inv = (InventoryHolder) entity;
if (inv.getInventory() != null) {
tag.putCompoundList("Items",
NbtSerialization.writeInventory(inv.getInventory().getContents(), 0));
}
}
// todo
}
}
代码示例来源:origin: GlowstoneMC/Glowstone
@Override
public boolean update(boolean force, boolean applyPhysics) {
ItemStack[] contents = getInventory().getContents();
boolean result = super.update(force, applyPhysics);
if (result) {
getBlockEntity().setContents(contents);
getBlockEntity().updateInRange();
}
return result;
}
代码示例来源:origin: GlowstoneMC/Glowstone
@Override
public boolean update(boolean force, boolean applyPhysics) {
ItemStack[] contents = getBlockInventory().getContents();
boolean result = super.update(force, applyPhysics);
if (result) {
getBlockEntity().setContents(contents);
getBlockEntity().updateInRange();
}
return result;
}
}
代码示例来源:origin: GlowstoneMC/Glowstone
@Override
public boolean entityInteract(GlowPlayer player, InteractEntityMessage message) {
if (message.getAction() == InteractEntityMessage.Action.ATTACK.ordinal()) {
// todo: damage points
if (this instanceof InventoryHolder) {
InventoryHolder inv = (InventoryHolder) this;
if (inv.getInventory() != null) {
for (ItemStack drop : inv.getInventory().getContents()) {
if (drop == null || drop.getType() == Material.AIR
|| drop.getAmount() < 1) {
continue;
}
GlowItem item = world.dropItemNaturally(getLocation(), drop);
item.setPickupDelay(30);
item.setBias(player);
}
}
}
remove();
}
return true;
}
代码示例来源:origin: CitizensDev/CitizensAPI
/**
* Gets the contents of an NPC's inventory.
*
* @return ItemStack array of an NPC's inventory contents
*/
public ItemStack[] getContents() {
if (view != null) {
return view.getContents();
}
return contents;
}
代码示例来源:origin: eccentricdevotion/TARDIS
private void saveCurrentConsole(Inventory inv, String uuid) {
String serialized = TARDISSerializeInventory.itemStacksToString(inv.getContents());
HashMap<String, Object> set = new HashMap<>();
set.put("console", serialized);
HashMap<String, Object> where = new HashMap<>();
where.put("uuid", uuid);
new QueryFactory(plugin).doSyncUpdate("storage", set, where);
}
}
代码示例来源:origin: filoghost/ChestCommands
public static boolean containsAtLeast(Inventory inv, Material material, int minAmount) {
int contained = 0;
for (ItemStack item : inv.getContents()) {
if (item != null && item.getType() == material) {
contained += item.getAmount();
}
}
return contained >= minAmount;
}
代码示例来源:origin: FunnyGuilds/FunnyGuilds
public static int getItemAmount(ItemStack item, Inventory inv) {
int amount = 0;
for (ItemStack is : inv.getContents()) {
if (item.isSimilar(is)) {
amount += is.getAmount();
}
}
return amount;
}
代码示例来源:origin: ChestShop-authors/ChestShop-3
private static ItemStack[] getStorageContents(Inventory inventory) {
if (legacyContents == null) {
try {
inventory.getStorageContents();
legacyContents = false;
} catch (NoSuchMethodError e) {
legacyContents = true;
}
}
return legacyContents ? inventory.getContents() : inventory.getStorageContents();
}
代码示例来源:origin: eccentricdevotion/TARDIS
private List<ItemStack> getOtherItems(Inventory inv) {
List<ItemStack> items = new ArrayList<>();
for (ItemStack is : inv.getContents()) {
if (is != null) {
Material m = is.getType();
if (!m.equals(Material.MUSIC_DISC_CAT) && !m.equals(Material.MUSIC_DISC_MALL) && !m.equals(Material.AIR)) {
items.add(is);
}
}
}
return items;
}
}
代码示例来源:origin: garbagemule/MobArena
public RepairableContainer(BlockState state, boolean clear) {
super(state);
// Grab the inventory of the block
Inventory inv = ((InventoryHolder) state).getInventory();
ItemStack[] stacks = inv.getContents();
// Manual copy is necessary due to "reduce to 0" bug in Bukkit
contents = new ItemStack[stacks.length];
for (int i = 0; i < contents.length; i++) {
contents[i] = (stacks[i] != null) ? stacks[i].clone() : null;
}
// Clear the inventory if prompted
if (clear) inv.clear();
}
代码示例来源:origin: drtshock/PlayerVaults
public void saveVault(Player player, Inventory inventory) {
if (plugin.getInVault().containsKey(player.getUniqueId().toString())) {
Inventory inv = Bukkit.createInventory(null, 6 * 9);
inv.setContents(inventory.getContents().clone());
if (inventory.getViewers().size() == 1) {
VaultViewInfo info = plugin.getInVault().get(player.getUniqueId().toString());
vaultManager.saveVault(inv, info.getVaultName(), info.getNumber());
plugin.getOpenInventories().remove(info.toString());
}
plugin.getInVault().remove(player.getUniqueId().toString());
}
}
代码示例来源:origin: elBukkit/MagicPlugin
@Override
public double getBalance(Mage mage, CasterProperties caster) {
double balance = 0;
Inventory inventory = mage.getInventory();
for (ItemStack item : inventory.getContents()) {
if (item != null && mage.getController().itemsAreEqual(this.item, item)) {
balance += item.getAmount();
}
}
return balance;
}
代码示例来源:origin: TheBusyBiscuit/Slimefun4
@EventHandler
public void onAnvil(InventoryClickEvent e) {
if (e.getRawSlot() == 2 && e.getWhoClicked() instanceof Player && e.getInventory().getType() == InventoryType.ANVIL) {
if (SlimefunManager.isItemSimiliar(e.getInventory().getContents()[0], SlimefunItems.ELYTRA, true)) return;
if (SlimefunItem.getByItem(e.getInventory().getContents()[0]) != null && !SlimefunItem.isDisabled(e.getInventory().getContents()[0])) {
e.setCancelled(true);
Messages.local.sendTranslation((Player) e.getWhoClicked(), "anvil.not-working", true);
}
}
}
代码示例来源:origin: ProSavage/SavageFactions
@Override
public void setChestSize(int chestSize) {
ItemStack[] contents = this.getChestInventory().getContents();
chest = Bukkit.createInventory(null, chestSize, SavageFactions.plugin.color(SavageFactions.plugin.getConfig().getString("fchest.Inventory-Title")));
chest.setContents(contents);
}
代码示例来源:origin: ProSavage/SavageFactions
public boolean inventoryContains(Inventory inventory, ItemStack item) {
int count = 0;
ItemStack[] items = inventory.getContents();
for (int i = 0; i < items.length; i++) {
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
count += items[i].getAmount();
}
if (count >= item.getAmount()) {
return true;
}
}
return false;
}
代码示例来源:origin: io.github.bedwarsrel/BedwarsRel-Common
public boolean canContainItem(Inventory inv, ItemStack item) {
int space = 0;
for (ItemStack stack : inv.getContents()) {
if (stack == null) {
space += item.getMaxStackSize();
} else if (stack.getType() == item.getType()
&& stack.getDurability() == item.getDurability()) {
space += item.getMaxStackSize() - stack.getAmount();
}
}
return space >= item.getAmount();
}
代码示例来源:origin: FunnyGuilds/FunnyGuilds
public void open(HumanEntity entity) {
Inventory inv = Bukkit.createInventory(entity, this.wrap().getSize(), this.wrap().getTitle());
inv.setContents(this.wrap().getContents());
entity.openInventory(inv);
}
代码示例来源:origin: BedwarsRel/BedwarsRel
public boolean canContainItem(Inventory inv, ItemStack item) {
int space = 0;
for (ItemStack stack : inv.getContents()) {
if (stack == null) {
space += item.getMaxStackSize();
} else if (stack.getType() == item.getType()
&& stack.getDurability() == item.getDurability()) {
space += item.getMaxStackSize() - stack.getAmount();
}
}
return space >= item.getAmount();
}
内容来源于网络,如有侵权,请联系作者删除!