0

Имею вот такой код в Java:

sort();
Random ra = new Random();
if(r == Rarity.COMMON) {
    int i = ra.nextInt(COMMONS.size());
    p = COMMONS.get(i);
}

По неизвестным мне причинам, выдает ошибку в данной строчке:

int i = ra.nextInt(COMMONS.size());

Функция sort():

COMMONS.add(Prize.P1);
COMMONS.add(Prize.P2);
COMMONS.add(Prize.P3);
COMMONS.add(Prize.P4);
COMMONS.add(Prize.P5);

Кто знает, как решить эту проблему? Т.к. я делаю плагин к игре, то саму проблему не удается понять по консоли, но если у вас вдруг получится:

[17:08:09] [Server thread/INFO]: BemLo issued server command: /ms case
[17:08:09] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'ms' in plugin MineStrike v0.1 BETA
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:619) ~[craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1106) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:966) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:37) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:9) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_91]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_91]
    at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:672) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:628) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:536) [craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_91]
Caused by: java.lang.NullPointerException
    at bemlo.minestrike.cases.PrizeManager.randomPrize(PrizeManager.java:70) ~[?:?] (int i = ra.nextInt(COMMONS.size()); Та самая строчка)
    at bemlo.minestrike.cases.OpenCase.makePrize(OpenCase.java:54) ~[?:?]
    at bemlo.minestrike.cases.OpenCase.makePrizes(OpenCase.java:58) ~[?:?]
    at bemlo.minestrike.cases.OpenCase.<init>(OpenCase.java:40) ~[?:?]
    at bemlo.minestrike.MineStrike.onCommand(MineStrike.java:100) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit-1.8.8.jar:git-Bukkit-de5c261]
    ... 15 more
  • А какая ошибка-то? – Alex Chermenin Feb 02 '18 at 13:29
  • @AlexChermenin Я делаю плагин к игре, поэтому в ошибке толком ничего и нету – LoBem Dev Feb 02 '18 at 13:30
  • А что за ArrayString? Нет такого класса в Java - покажите декларацию COMMONS – Barmaley Feb 02 '18 at 13:42
  • да и текст ошибки неплохо бы в идеале... к тому же такой простой код можно выложить в воспроизводимом виде, тогда гарантировано получите ответ – Дмитрий Feb 02 '18 at 13:44
  • @Barmaley Извиняюсь, ArrayList – LoBem Dev Feb 02 '18 at 14:04
  • @ДмитрийАлександрович Написал, но врядле поможет, так как делается плагин на сервер Minecraft – LoBem Dev Feb 02 '18 at 14:07
  • 2
    int i = ra.nextInt(COMMONS.size()); NPE возникает в этой строке. Здесь вообще есть всего 2 варианта возникновения этого исключения, либо ra == null, либо COMMONS == null. Учитывая что в приведеном коде ra явно инициализируется двумя строками выше, то ваш объект COMMONS вероятно равен null – iksuy Feb 02 '18 at 14:15
  • 1
    @iksuy Похоже, это и была моя проблема, спасибо! Было: public static ArrayList<Prize> COMMONS; После ваших слов, я понял, что надо: public static ArrayList<Prize> COMMONS = new ArrayList<>(); СПАСИБО – LoBem Dev Feb 02 '18 at 14:18
  • а вы говорите не поможет... – Дмитрий Feb 02 '18 at 15:08

0 Answers0