for (int i = 0; i <= 35; i++) {
ItemStack itemStack1 = player.getInventory().getItem(i);
if (itemStack1.getType() == Material.AIR) {
return ;
}
}这样写有啥问题?运行后,后台会报一个null的错误
ItemStack itemStack1 = player.getInventory().getItem(i);
if (itemStack1.getType() == Material.AIR) {
return ;
}
}这样写有啥问题?运行后,后台会报一个null的错误
itemStack1 可能为null
要不然player可能是null了(
【具体行数应该有给吧
要不然player可能是null了(
【具体行数应该有给吧
阴阳师元素祭祀 发表于 2020-9-23 14:27
itemStack1 可能为null
要不然player可能是null了(
有,在判断那里报得错
好耶!       
Inventor类下面有个方法叫做 firstEmpty() ,返回-1就表示,没有空格子
咸鱼气功王 发表于 2020-9-23 16:50
Inventor类下面有个方法叫做 firstEmpty() ,返回-1就表示,没有空格子
没有空格子不表示满了
楼主你是想做什么事情:
1. 如果只是单纯的想知道是不是还有空格子 就可以参考 5#
2. 如果是想知道还可不可以装你即将装的物品,你直接 Inventory.add() 就好了。此方法返回值是个 map,你判断这个 map 是否为空,如果为空,表示你的背包已经装下了你的物品,如果不为空,证明背包没装下这个物品。
3. 如果是判断能不能装下你这个物品,还可以循环每个格子的物品,判断当前格子的物品和你要装的物品是不是一样的,然后在判断这个物品当前的堆叠数量是否已经达到最大堆叠数量,依次判断
1. 如果只是单纯的想知道是不是还有空格子 就可以参考 5#
2. 如果是想知道还可不可以装你即将装的物品,你直接 Inventory.add() 就好了。此方法返回值是个 map,你判断这个 map 是否为空,如果为空,表示你的背包已经装下了你的物品,如果不为空,证明背包没装下这个物品。
3. 如果是判断能不能装下你这个物品,还可以循环每个格子的物品,判断当前格子的物品和你要装的物品是不是一样的,然后在判断这个物品当前的堆叠数量是否已经达到最大堆叠数量,依次判断