Помогите Ошибка при отправке запроса к базе данных

  • Автор темы Автор темы Sergeo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Sergeo

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Solomka
При попытке получить список хелперов - ошибка NullPointer

Код отправки вопроса всем хелперам:

Код:
    public void sendQuestion(Player p, String message) throws SQLException, ClassNotFoundException {

        if(users.isActiveQuestion(p.getName())) {
            p.sendMessage(translateAlternateColorCodes('&', msg.haveActiveQuestion()));
            return;
        }

        for(String name : users.getHelpers()) {
            if(!Bukkit.getPlayer(name).isOnline()) continue;
            Bukkit.getPlayer(name).sendMessage(msg.sSendQuestionFormat(message, p));
        }

        users.setActiveQuestion(p.getName(), true);
        new RunnableDB().start(p, config.getInt("Question.Cooldown"), RunnableType.COOLDOWN);
    }

Метод получения:


Код:
rsList - @Getter public List<String> rsList;

@Override
    public List<String> getHelpers() throws SQLException {
        rq.getAllValue(db.getConnection(), "true", "helper", db.DB_FILE, "*");
        return rq.getRsList();
    }

Запрос к базе:


Код:
    public void getAllValue(Connection connection, String compare, String target,
                            String dbName, String selected) throws SQLException {

        String get = "SELECT " + selected + " FROM " + dbName + " WHERE " + target + " = '" + compare + "'";
        Statement statement = connection.createStatement();
        ResultSet rs = statement.executeQuery(get);

        while (rs.next()) rsList.add(rs.getString("name"));
    }
 
А ошибку?
 
Код:
org.bukkit.command.CommandException: Unhandled exception executing command 'question' in plugin HelperMode v1.0.4
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:648) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1399) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1234) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_51]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_51]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_51]
Caused by: java.lang.NullPointerException
        at ru.solomka.helper.commands.util.methods.Question.sendQuestion(Question.java:32) ~[?:?]
        at ru.solomka.helper.commands.QuestionCommand.onCommand(QuestionCommand.java:46) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.12.2.jar:git-Spigot-dcd1643-e60fc34]
 
И ещё, в этом случае лучше использовать Bukkit.getPlayerExact() - Bukkit.getPlayer(), если не найдет игрока, возратит того, у которого ник начинается с этой строки. (imDa -> imDaniX)
 
Bukkit.getOfflinePlayer(name).isOnline

Гарантированно вернёт состояние игрока, даже если его и не было никогда.
 
if(Bukkit.getPlayer("swat1x") == null). Вот как проверяется онлайн ли игрок
 
И ещё, в этом случае лучше использовать Bukkit.getPlayerExact() - Bukkit.getPlayer(), если не найдет игрока, возратит того, у которого ник начинается с этой строки. (imDa -> imDaniX)
Он указывает на строку с получение хелперов, а именно users.getHelpers() - NullPointer


Код:
        for(String name : users.getHelpers()) - Он бьет NullPointer
 
Решено!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх