Package cn.nukkit.inventory
Class FakeHumanInventory
java.lang.Object
cn.nukkit.inventory.BaseInventory
cn.nukkit.inventory.FakeHumanInventory
- All Implemented Interfaces:
Inventory
这个Inventory是一个hack实现,用来实现
EntityIntelligentHuman
的背包实现,它无法被open 和 close,因为虚拟人类不会自己打开物品栏
它的BaseInventory.viewers
永远为空,因为不允许打开它
-
Field Summary
Fields inherited from class cn.nukkit.inventory.BaseInventory
AIR_ITEM, holder, maxStackSize, name, size, slots, title, type, viewers
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
clear
(int index, boolean send) void
clearAll()
void
Item[]
getArmorItem
(int index) 获取盔甲栏对应索引位置的物品getBoots()
获取盔甲栏中鞋子位置对应的物品获取盔甲栏中胸甲位置对应的物品int
getFreeSpace
(Item item) 检测指定物品能在该库存所能存放的空余数量int
获取EntityIntelligentHuman
的手持物品的索引位置获取盔甲栏中头盔位置对应的物品int
获取物品栏大小获取EntityIntelligentHuman
的手持物品获取盔甲栏中裤腿位置对应的物品int
getSize()
获取该库存大小boolean
isHotbarSlot
(int slot) 判断这个格子位置是否在物品栏(0-9)void
void
void
onSlotChange
(int index, Item before, boolean send) 当执行Inventory.setItem(int, Item)
时该方法会被调用,此时物品已经put进slotsboolean
void
sendArmorContents
(Player player) 刷新指定玩家看到的该inventory对应实体盔甲栏显示void
sendArmorContents
(Player[] players) 刷新指定玩家看到的该inventory对应实体盔甲栏显示void
sendArmorContents
(Collection<Player> players) void
sendArmorSlot
(int index, Player player) 对指定玩家更新指定格子处的盔甲栏物品显示void
sendArmorSlot
(int index, Player[] players) 对指定玩家更新指定格子处的盔甲栏物品显示void
sendArmorSlot
(int index, Collection<Player> players) void
sendContents
(Player player) void
sendContents
(Player[] players) void
sendContents
(Collection<Player> players) void
sendHeldItem
(Player... players) 发送数据包给客户端,这个方法可以刷新被更改的手持物品显示void
sendHeldItem
(Collection<Player> players) 发送数据包给客户端,这个方法可以刷新被更改的手持物品显示void
void
void
sendSlot
(int index, Collection<Player> players) void
setArmorContents
(Item[] items) 设置全部盔甲栏的物品boolean
setArmorItem
(int index, Item item) 设置盔甲栏对应索引位置的物品boolean
setArmorItem
(int index, Item item, boolean ignoreArmorEvents) 设置盔甲栏对应索引位置的物品boolean
设置盔甲栏中鞋子位置对应的物品boolean
setChestplate
(Item chestplate) 设置盔甲栏中胸甲位置对应的物品void
setHeldItemSlot
(int slot) 设置EntityIntelligentHuman
的手持物品的格子位置boolean
设置盔甲栏中头盔位置对应的物品boolean
设置该库存指定索引处的物品boolean
设置该库存指定索引处的物品boolean
setItemInHand
(Item item) 设置EntityIntelligentHuman
的手持物品,这个方法会自动刷新客户端显示boolean
setLeggings
(Item leggings) 设置盔甲栏中裤腿位置对应的物品void
setSize
(int size) Methods inherited from class cn.nukkit.inventory.BaseInventory
addItem, addListener, all, canAddItem, contains, decreaseCount, first, firstEmpty, getContents, getItem, getMaxStackSize, getName, getTitle, getType, getUnclonedItem, getViewers, isEmpty, isFull, remove, removeItem, removeListener, setContents, setMaxStackSize
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, setItemByPlayer
-
Field Details
-
itemInHandIndex
protected int itemInHandIndex
-
-
Constructor Details
-
FakeHumanInventory
-
-
Method Details
-
getSize
public int getSize()Description copied from interface:Inventory
获取该库存大小- Specified by:
getSize
in interfaceInventory
- Overrides:
getSize
in classBaseInventory
-
setSize
public void setSize(int size) - Overrides:
setSize
in classBaseInventory
-
isHotbarSlot
public boolean isHotbarSlot(int slot) 判断这个格子位置是否在物品栏(0-9)- Parameters:
slot
- 格子位置
-
getHeldItemIndex
public int getHeldItemIndex()获取EntityIntelligentHuman
的手持物品的索引位置 -
setHeldItemSlot
public void setHeldItemSlot(int slot) 设置EntityIntelligentHuman
的手持物品的格子位置- Parameters:
slot
- 索引位置
-
getItemInHand
获取EntityIntelligentHuman
的手持物品 -
setItemInHand
设置EntityIntelligentHuman
的手持物品,这个方法会自动刷新客户端显示 -
sendHeldItem
发送数据包给客户端,这个方法可以刷新被更改的手持物品显示 -
sendHeldItem
发送数据包给客户端,这个方法可以刷新被更改的手持物品显示 -
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
- Overrides:
onSlotChange
in classBaseInventory
- Parameters:
index
- 物品变动的格子索引
The grid index of the item's changesbefore
- 变动前的物品
Items before the changesend
- 是否发送InventorySlotPacket
到客户端
Whether to sendInventorySlotPacket
to the client
-
getHotbarSize
public int getHotbarSize()获取物品栏大小 -
getArmorItem
获取盔甲栏对应索引位置的物品- Parameters:
index
- 索引位置(0-4)
-
setArmorItem
设置盔甲栏对应索引位置的物品- Parameters:
index
- 索引位置(0-4)item
- 要设置的物品
-
setArmorItem
设置盔甲栏对应索引位置的物品- Parameters:
index
- 索引位置(0-4)item
- 要设置的物品ignoreArmorEvents
- 是否忽略盔甲更新事件
-
getHelmet
获取盔甲栏中头盔位置对应的物品 -
getChestplate
获取盔甲栏中胸甲位置对应的物品 -
getLeggings
获取盔甲栏中裤腿位置对应的物品 -
getBoots
获取盔甲栏中鞋子位置对应的物品 -
setHelmet
设置盔甲栏中头盔位置对应的物品- Parameters:
helmet
- the helmet- Returns:
- the helmet
-
setChestplate
设置盔甲栏中胸甲位置对应的物品- Parameters:
chestplate
- the chestplate- Returns:
- the chestplate
-
setLeggings
设置盔甲栏中裤腿位置对应的物品- Parameters:
leggings
- the leggings- Returns:
- the leggings
-
setBoots
设置盔甲栏中鞋子位置对应的物品- Parameters:
boots
- the boots- Returns:
- the boots
-
setItem
Description copied from interface:Inventory
设置该库存指定索引处的物品- Parameters:
index
- the indexitem
- the item- Returns:
- the item
-
setItem
Description copied from interface:Inventory
设置该库存指定索引处的物品- Specified by:
setItem
in interfaceInventory
- Overrides:
setItem
in classBaseInventory
- Parameters:
index
- the indexitem
- the itemsend
- 是否同时发送数据包- Returns:
- the item
-
clear
public boolean clear(int index, boolean send) - Specified by:
clear
in interfaceInventory
- Overrides:
clear
in classBaseInventory
-
getArmorContents
- Returns:
- 获取盔甲栏0-4格的物品
-
clearAll
public void clearAll()- Specified by:
clearAll
in interfaceInventory
- Overrides:
clearAll
in classBaseInventory
-
sendArmorContents
刷新指定玩家看到的该inventory对应实体盔甲栏显示- Parameters:
player
- 指定玩家
-
sendArmorContents
刷新指定玩家看到的该inventory对应实体盔甲栏显示- Parameters:
players
- 指定的玩家数组
-
setArmorContents
设置全部盔甲栏的物品- Parameters:
items
- 要设置的物品,分布对应盔甲栏的格子
-
sendArmorContents
- See Also:
-
sendArmorSlot
对指定玩家更新指定格子处的盔甲栏物品显示- Parameters:
index
- 指定的格子player
- 指定的玩家
-
sendArmorSlot
对指定玩家更新指定格子处的盔甲栏物品显示- Parameters:
index
- 指定的格子players
- 指定的玩家数组
-
sendArmorSlot
- See Also:
-
getFreeSpace
Description copied from class:BaseInventory
检测指定物品能在该库存所能存放的空余数量- Overrides:
getFreeSpace
in classBaseInventory
- Parameters:
item
- 要检测的物品- Returns:
- 所能存放的空余数量
-
getHolder
- Specified by:
getHolder
in interfaceInventory
- Overrides:
getHolder
in classBaseInventory
-
sendContents
- Specified by:
sendContents
in interfaceInventory
- Overrides:
sendContents
in classBaseInventory
-
sendContents
- Specified by:
sendContents
in interfaceInventory
- Overrides:
sendContents
in classBaseInventory
-
sendContents
- Specified by:
sendContents
in interfaceInventory
- Overrides:
sendContents
in classBaseInventory
-
sendSlot
- Specified by:
sendSlot
in interfaceInventory
- Overrides:
sendSlot
in classBaseInventory
-
sendSlot
- Specified by:
sendSlot
in interfaceInventory
- Overrides:
sendSlot
in classBaseInventory
-
sendSlot
- Specified by:
sendSlot
in interfaceInventory
- Overrides:
sendSlot
in classBaseInventory
-
close
- Specified by:
close
in interfaceInventory
- Overrides:
close
in classBaseInventory
-
onOpen
- Specified by:
onOpen
in interfaceInventory
- Overrides:
onOpen
in classBaseInventory
-
onClose
- Specified by:
onClose
in interfaceInventory
- Overrides:
onClose
in classBaseInventory
-
open
- Specified by:
open
in interfaceInventory
- Overrides:
open
in classBaseInventory
-