/**
* Removes this type from the given inventory. Does not call updateInventory for players.
*
* @param invi
* @return Whether everything could be removed from the inventory
*/
public boolean removeFrom(final Inventory invi) {
ItemStack[] buf = invi.getContents();
/* This was causing issues with clearing some slots (armor, offhand and last slot)
// uses an array of size 36. some unknown bug with bukkit
if (buf.length > 36) {
ItemStack[] tBuf = buf.clone();
buf = new ItemStack[35];
for(int i = 0; i < 35; ++i) {
buf[i] = tBuf[i];
}
}
*/
final ItemStack[] armour = invi instanceof PlayerInventory ? ((PlayerInventory) invi).getArmorContents() : null;
@SuppressWarnings("unchecked")
final boolean ok = removeFrom(Arrays.asList(buf), armour == null ? null : Arrays.asList(armour));
invi.setContents(buf);
if (armour != null)
((PlayerInventory) invi).setArmorContents(armour);
return ok;
}
ItemType.java 文件源码
java
阅读 32
收藏 0
点赞 0
评论 0
项目:Skript
作者:
评论列表
文章目录