Package cn.nukkit.inventory
Class BaseInventory
java.lang.Object
cn.nukkit.inventory.BaseInventory
- All Implemented Interfaces:
Inventory
- Direct Known Subclasses:
ContainerInventory
,EntityArmorInventory
,EntityEquipmentInventory
,FakeHumanEnderChestInventory
,FakeHumanInventory
,FakeHumanOffhandInventory
,HorseInventory
,PlayerEnderChestInventory
,PlayerInventory
,PlayerOffhandInventory
,PlayerUIComponent
,PlayerUIInventory
,TradeInventory
- Author:
- MagicDroidX (Nukkit Project)
-
Field Summary
Modifier and TypeFieldDescriptionstatic final Item
protected InventoryHolder
protected int
protected final String
protected int
protected final String
protected final InventoryType
-
Constructor Summary
ConstructorDescriptionBaseInventory
(InventoryHolder holder, InventoryType type) BaseInventory
(InventoryHolder holder, InventoryType type, Map<Integer, Item> items) BaseInventory
(InventoryHolder holder, InventoryType type, Map<Integer, Item> items, Integer overrideSize) BaseInventory
(InventoryHolder holder, InventoryType type, Map<Integer, Item> items, Integer overrideSize, String overrideTitle) -
Method Summary
Modifier and TypeMethodDescriptionItem[]
void
addListener
(InventoryListener listener) boolean
canAddItem
(Item item) boolean
clear
(int index, boolean send) void
clearAll()
void
boolean
void
decreaseCount
(int slot) int
int
firstEmpty
(Item item) int
getFreeSpace
(Item item) 检测指定物品能在该库存所能存放的空余数量getItem
(int index) 获取该库存指定索引处的物品int
获取最大库存大小getName()
获取该库存的名字int
getSize()
获取该库存大小getTitle()
获取该库存的标题getType()
getUnclonedItem
(int index) 获取该库存指定索引处的未克隆的物品boolean
isEmpty()
boolean
isFull()
void
void
void
onSlotChange
(int index, Item before, boolean send) 当执行Inventory.setItem(int, Item)
时该方法会被调用,此时物品已经put进slotsboolean
void
Item[]
removeItem
(Item... slots) void
removeListener
(InventoryListener listener) void
sendContents
(Player player) void
sendContents
(Player... players) void
sendContents
(Collection<Player> players) void
void
void
sendSlot
(int index, Collection<Player> players) void
setContents
(Map<Integer, Item> items) boolean
设置该库存指定索引处的物品void
setMaxStackSize
(int maxStackSize) 设置最大库存大小void
setSize
(int size) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface cn.nukkit.inventory.Inventory
clear, first, setItem, setItemByPlayer
-
Field Details
-
AIR_ITEM
-
type
-
maxStackSize
protected int maxStackSize -
size
protected int size -
name
-
title
-
slots
-
viewers
-
holder
-
-
Constructor Details
-
BaseInventory
-
BaseInventory
-
BaseInventory
public BaseInventory(InventoryHolder holder, InventoryType type, Map<Integer, Item> items, Integer overrideSize) -
BaseInventory
public BaseInventory(InventoryHolder holder, InventoryType type, Map<Integer, Item> items, Integer overrideSize, String overrideTitle)
-
-
Method Details
-
getSize
public int getSize()Description copied from interface:Inventory
获取该库存大小 -
setSize
public void setSize(int size) -
getMaxStackSize
public int getMaxStackSize()Description copied from interface:Inventory
获取最大库存大小- Specified by:
getMaxStackSize
in interfaceInventory
-
getName
Description copied from interface:Inventory
获取该库存的名字 -
getTitle
Description copied from interface:Inventory
获取该库存的标题 -
getItem
Description copied from interface:Inventory
获取该库存指定索引处的物品 -
getUnclonedItem
Description copied from interface:Inventory
获取该库存指定索引处的未克隆的物品 若调用方保证不会修改此方法返回的Item对象,则使用此方法将降低特定场景下Item::clone()造成的性能开销- Specified by:
getUnclonedItem
in interfaceInventory
- Parameters:
index
- the index- Returns:
- the item
-
getContents
- Specified by:
getContents
in interfaceInventory
-
setContents
- Specified by:
setContents
in interfaceInventory
-
setItem
Description copied from interface:Inventory
设置该库存指定索引处的物品 -
contains
-
all
-
remove
-
first
-
firstEmpty
- Specified by:
firstEmpty
in interfaceInventory
-
decreaseCount
public void decreaseCount(int slot) - Specified by:
decreaseCount
in interfaceInventory
-
canAddItem
@PowerNukkitXDifference(info="Using BaseInventory::getUnclonedItem() to improve performance", since="1.19.60-r1") public boolean canAddItem(Item item) - Specified by:
canAddItem
in interfaceInventory
-
addItem
-
removeItem
- Specified by:
removeItem
in interfaceInventory
-
clear
public boolean clear(int index, boolean send) -
clearAll
public void clearAll() -
getViewers
- Specified by:
getViewers
in interfaceInventory
-
getHolder
-
setMaxStackSize
public void setMaxStackSize(int maxStackSize) Description copied from interface:Inventory
设置最大库存大小- Specified by:
setMaxStackSize
in interfaceInventory
-
open
-
close
-
onOpen
-
onClose
-
onSlotChange
Description copied from interface:Inventory
当执行Inventory.setItem(int, Item)
时该方法会被调用,此时物品已经put进slotsThis method is called when
Inventory.setItem(int, Item)
is executed, and the item has been put into slots- Specified by:
onSlotChange
in interfaceInventory
- Parameters:
index
- 物品变动的格子索引
The grid index of the item's changesbefore
- 变动前的物品
Items before the changesend
- 是否发送InventorySlotPacket
到客户端
Whether to sendInventorySlotPacket
to the client
-
sendContents
- Specified by:
sendContents
in interfaceInventory
-
sendContents
- Specified by:
sendContents
in interfaceInventory
-
isFull
public boolean isFull() -
isEmpty
public boolean isEmpty() -
getFreeSpace
检测指定物品能在该库存所能存放的空余数量- Parameters:
item
- 要检测的物品- Returns:
- 所能存放的空余数量
-
sendContents
- Specified by:
sendContents
in interfaceInventory
-
sendSlot
-
sendSlot
-
sendSlot
-
addListener
- Specified by:
addListener
in interfaceInventory
-
removeListener
- Specified by:
removeListener
in interfaceInventory
-
getType
-