私の限界は正でなければならないというエラーが出ます。ここに私がそれを得る線があります:
_inv.setItem(i, items.get(r.nextInt(items.size())));
_
私の知る限り、それはアイテムのリストからランダムな整数を要求する部分から来ています。これは私がリストを定義した方法です:
_List<ItemStack> items = getAllItems(level);
_
getAllItems()
メソッドは次のようになります。
_public List<ItemStack> getAllItems(int level) {
List<ItemStack> items = new ArrayList<ItemStack>();
for (String item : settings.getChests().getStringList("chestitems." + level)) {
ItemStack toAdd = parseItem(item);
items.add(toAdd);
}
return items;
}
_
私はこのスタックトレースを取得します:
_[19:03:53 ERROR]: Error occurred while enabling KitPvP v0.5 (Is it up to date?)
Java.lang.IllegalArgumentException: bound must be positive
at Java.util.Random.nextInt(Unknown Source) ~[?:1.8.0_51]
at me.iamguus.gamegetsiepunt.kitpvp.chests.ChestsUtil.randomlyFillInv(ChestsUtil.Java:101) ~[?:?]
at me.iamguus.gamegetsiepunt.kitpvp.Main.onEnable(Main.Java:40) ~[?:?]
at org.bukkit.plugin.Java.JavaPlugin.setEnabled(JavaPlugin.Java:321) ~[spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.plugin.Java.JavaPluginLoader.enablePlugin(JavaPluginLoader.Java:335) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.Java:405) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.Java:356) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.Java:316) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.Java:746) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.Bukkit.reload(Bukkit.Java:534) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.Java:25) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.Java:141) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.Java:646) [spigot.jar:git-Spigot-5818108-a486600]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.Java:632) [spigot.jar:git-Spigot-5818108-a486600]
at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.Java:405) [spigot.jar:git-Spigot-5818108-a486600]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.Java:369) [spigot.jar:git-Spigot-5818108-a486600]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.Java:657) [spigot.jar:git-Spigot-5818108-a486600]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.Java:560) [spigot.jar:git-Spigot-5818108-a486600]
at Java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
_
問題は、あなたがゼロでRandom.nextInt()
を呼び出していることです、そしてそれはそれが好きではありません。これは、getAllItems()
のList
が空であるために発生しています。ロジックを実行する前にリストに項目があることを確認することで、この状況を回避します。
List<ItemStack> items = getAllItems(level);
if(!items.isEmpty()) {
inv.setItem(i, items.get(r.nextInt(items.size())));
}
あなたのスタックトレースが言う限り、
Java.lang.IllegalArgumentException:バインドはJava.util.Random.nextInt(Unknown Source)〜[?:1.8.0_51]で正でなければなりません
NextIntへの引数は正の整数である必要があります。正でない入力をそのメソッドに渡す場所を見つける必要があります。