
org.bukkit.craftbukkit.inventory.InventoryWrapper Maven / Gradle / Ivy
package org.bukkit.craftbukkit.inventory;
import net.minecraft.server.EntityHuman;
import net.minecraft.server.IChatBaseComponent;
import net.minecraft.server.IInventory;
import net.minecraft.server.ItemStack;
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.bukkit.entity.HumanEntity;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import java.util.ArrayList;
import java.util.List;
public class InventoryWrapper implements IInventory {
private final Inventory inventory;
private final List viewers = new ArrayList();
public InventoryWrapper(Inventory inventory) {
this.inventory = inventory;
}
@Override
public int getSize() {
return inventory.getSize();
}
@Override
public ItemStack getItem(int i) {
return CraftItemStack.asNMSCopy(inventory.getItem(i));
}
@Override
public ItemStack splitStack(int i, int j) {
// Copied from CraftItemStack
ItemStack stack = getItem(i);
ItemStack result;
if (stack == null) {
return null;
}
if (stack.count <= j) {
this.setItem(i, null);
result = stack;
} else {
result = CraftItemStack.copyNMSStack(stack, j);
stack.count -= j;
}
this.update();
return result;
}
@Override
public ItemStack splitWithoutUpdate(int i) {
// Copied from CraftItemStack
ItemStack stack = getItem(i);
ItemStack result;
if (stack == null) {
return null;
}
if (stack.count <= 1) {
this.setItem(i, null);
result = stack;
} else {
result = CraftItemStack.copyNMSStack(stack, 1);
stack.count -= 1;
}
return result;
}
@Override
public void setItem(int i, ItemStack itemstack) {
inventory.setItem(i, CraftItemStack.asBukkitCopy(itemstack));
}
@Override
public int getMaxStackSize() {
return inventory.getMaxStackSize();
}
@Override
public void setMaxStackSize(int size) {
inventory.setMaxStackSize(size);
}
@Override
public void update() {
}
@Override
public boolean a(EntityHuman entityhuman) {
return true;
}
@Override
public void startOpen(EntityHuman entityhuman) {
}
@Override
public void closeContainer(EntityHuman entityhuman) {
}
@Override
public boolean b(int i, ItemStack itemstack) {
return true;
}
@Override
public int getProperty(int i) {
return 0;
}
@Override
public void b(int i, int j) {
}
@Override
public int g() {
return 0;
}
@Override
public void l() {
inventory.clear();
}
@Override
public ItemStack[] getContents() {
int size = getSize();
ItemStack[] items = new ItemStack[size];
for (int i = 0; i < size; i++) {
items[i] = getItem(i);
}
return items;
}
@Override
public void onOpen(CraftHumanEntity who) {
viewers.add(who);
}
@Override
public void onClose(CraftHumanEntity who) {
viewers.remove(who);
}
@Override
public List getViewers() {
return viewers;
}
@Override
public InventoryHolder getOwner() {
return inventory.getHolder();
}
@Override
public String getName() {
return inventory.getName();
}
@Override
public boolean hasCustomName() {
return getName() != null;
}
@Override
public IChatBaseComponent getScoreboardDisplayName() {
return CraftChatMessage.fromString(getName())[0];
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy