错误 ArrayIndexOutOfBoundsException JavaBukkit

问题描述 投票:0回答:1

我的服务器控制台发回了这个错误:java.lang.ArrayIndexOutOfBoundsException这是我代码的最简单版本。

int[] test = new int[] {0,1,2,3,4,5,6,7,8,9,14,15,17,18,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45};
for (int value : test) {
    System.out.println(value, obj);
}

这是我为bukkitspigot开发的完整代码。

    //In a event
    voidObj(new int[] {0,1,2,3,4,5,6,7,8,9,14,15,17,18,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45}, parcoursConfigGUI);

    //Itemconstructor
    private void voidObj(int[] position, Inventory inventory) {
        ItemStack obj = new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1);
        ItemMeta meta = obj.getItemMeta();
        meta.setDisplayName(null);
        meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
        obj.setItemMeta(meta);

        for (int value : position) {
            inventory.setItem(value, obj);
        }
    }
java minecraft bukkit
1个回答
1
投票

库存总是有一个大小,它是9的倍数。 你从0-45迭代,加起来是46个槽。我的假设是,你想从0-44开始迭代,所以从int数组中删除45。

new int[] {0,1,2,3,4,5,6,7,8,9,14,15,17,18,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}

你应该考虑使用for循环来完成同样的事情。

for (int value = 0; i<inventory.getSize();value++){
    inventory.setItem(value, obj);
}
© www.soinside.com 2019 - 2024. All rights reserved.