LanAnY
for (int i = 0; i <= 35; i++) {
    ItemStack itemStack1 = player.getInventory().getItem(i);
    if (itemStack1.getType() == Material.AIR) {
        return ;
    }
}这样写有啥问题?运行后,后台会报一个null的错误

纱夜
itemStack1 可能为null
要不然player可能是null了(

【具体行数应该有给吧

LanAnY
阴阳师元素祭祀 发表于 2020-9-23 14:27
itemStack1 可能为null
要不然player可能是null了(

有,在判断那里报得错

小凯Ya
好耶!      

SumCraft
Inventor类下面有个方法叫做 firstEmpty() ,返回-1就表示,没有空格子

QiuJay
咸鱼气功王 发表于 2020-9-23 16:50
Inventor类下面有个方法叫做 firstEmpty() ,返回-1就表示,没有空格子

没有空格子不表示满了

QiuJay
楼主你是想做什么事情:
1. 如果只是单纯的想知道是不是还有空格子 就可以参考 5#
2. 如果是想知道还可不可以装你即将装的物品,你直接 Inventory.add() 就好了。此方法返回值是个 map,你判断这个 map 是否为空,如果为空,表示你的背包已经装下了你的物品,如果不为空,证明背包没装下这个物品。
3. 如果是判断能不能装下你这个物品,还可以循环每个格子的物品,判断当前格子的物品和你要装的物品是不是一样的,然后在判断这个物品当前的堆叠数量是否已经达到最大堆叠数量,依次判断

SumCraft
QiuJay 发表于 2020-9-24 16:07
没有空格子不表示满了

emmm,我是看了楼主的代码,所以想到了这个firstEmpty().
不过你说的方案感觉更加好一点