我的服务器控制台发回了这个错误: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);
}
}
库存总是有一个大小,它是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);
}