如何判断玩家库存是否已满 - Minecraft

时间:2016-08-27 17:38:07

标签: java minecraft

在学习东西的过程中,我非常擅长开发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;
        }           
}

1 个答案:

答案 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);           
}