在学习东西的过程中,我非常擅长开发Minecraft插件。我正在制作一个监狱插件并创建了一种方法,让玩家知道他们的库存是否已满。它不起作用,我无法弄清楚原因。 代码:
public void invFull(Player p) {
if (p.getInventory().contains(Material.AIR)) {
} else {
p.sendMessage(ChatColor.DARK_RED + "Your inventory is full!");
}
}
}
我还创建了另一个返回布尔值的方法。这也行不通。 代码:
public boolean invFull(Player p) {
if (p.getInventory().contains(Material.AIR)) {
return false;
} else {
return true;
}
}
答案 0 :(得分:2)
我想问题是,玩家广告资源不能包含Material.AIR
。请尝试以下方法:
public boolean invFull(Player p) {
return p.getInventory().firstEmpty() == -1;
}
如果装甲槽为空,我目前还不能100%确定这个firstEmpty()
会失败,但我现在无法测试。如果是,则另一种选择是:
public boolean invFull(Player p) {
return !Arrays.asList(p.getInventory().getStorageContents()).contains(null);
}