0

please help me, why when i try to use almost all JDA methods, a damn NPE error occurs. I searched the entire internet, found nothing, either i am blind or i am very stupid and the only one who has encountered this problem. There is also a constant problem with editing messages, i stupidly do not know how to get the id of the message sent by the bot. Code:

public class Passport {
    private static JDA jda;
    Main main = new Main();
    PlayerDataBase db = new PlayerDataBase();
    public boolean passport(@Nonnull MessageReceivedEvent event, String[] args) {
        try {
            if (args.length <= 1) {
                String[] pass = db.getPassport(event.getAuthor().getId().toString());
                if (pass[5].equalsIgnoreCase("1212")) {
                    event.getChannel().sendTyping().queue();
                    TimeUnit.SECONDS.sleep(5);
                    event.getMessage().addReaction("❌").queue();
                    event.getChannel().sendMessage("`[X]` Произошла ошибка! У вас нет паспорта!\nЕсли вы считаете что это ошибка и он у вас есть, отпишите разработчику бота !Nightmare.#1717").queue();
                } else {
                    User user = jda.getUserById(pass[7]); //i know what i can get user by args[2]
                    EmbedBuilder help = new EmbedBuilder();
                    help.setAuthor("\uD83D\uDC51Имперский Бот\uD83D\uDC51", "https://images-ext-2.discordapp.net/external/nWASMV-67mx7guRheeUpvyD_cb6X2NkxUMH4PtbweyA/%3Fsize%3D512/https/cdn.discordapp.com/avatars/916617120064884796/5028d4861b407575072686657b3c2e9a.png?width=230&height=230");
                    help.setDescription("Паспорт игрока " + pass[0]);
                    help.setThumbnail(user.getAvatarUrl());
                    help.addField("Общие сведенья", "Имя: " + pass[1] + "\nРод: " + pass[2] + "\nДата рождения: " + pass[3] + "\nМесто жительства: " + pass[4] + "\nНациональность: " + pass[6], false);
                    help.setColor(0xffda07);
                    help.setFooter(user.getName(), user.getAvatarUrl());
                    event.getChannel().sendTyping().queue();
                    event.getMessage().addReaction("✅").queue();
                    TimeUnit.SECONDS.sleep(5);
                    event.getChannel().sendMessageEmbeds(help.build()).queue();
                }
            } else if (args[1].equalsIgnoreCase("get")) {
                String[] pass = db.getPassport(args[2]);
                User user = jda.getUserById(pass[7]);
                EmbedBuilder help = new EmbedBuilder();
                help.setAuthor("\uD83D\uDC51Имперский Бот\uD83D\uDC51", "https://images-ext-2.discordapp.net/external/nWASMV-67mx7guRheeUpvyD_cb6X2NkxUMH4PtbweyA/%3Fsize%3D512/https/cdn.discordapp.com/avatars/916617120064884796/5028d4861b407575072686657b3c2e9a.png?width=230&height=230", "https://images-ext-2.discordapp.net/external/nWASMV-67mx7guRheeUpvyD_cb6X2NkxUMH4PtbweyA/%3Fsize%3D512/https/cdn.discordapp.com/avatars/916617120064884796/5028d4861b407575072686657b3c2e9a.png?width=230&height=230");
                help.setDescription("Паспорт игрока " + pass[0]);
                help.setThumbnail(user.getAvatarUrl());
                help.addField("Общие сведенья", "Имя: " + pass[1] + "\nРод: " + pass[2] + "\nДата рождения: " + pass[3] + "\nМесто жительства: " + pass[4] + "\nНациональность: " + pass[6], false);
                help.setColor(0xffda07);
                help.setFooter(user.getName(),user.getAvatarUrl());
                event.getChannel().sendTyping().queue();
                event.getMessage().addReaction("✅").queue();
                TimeUnit.SECONDS.sleep(5);
                event.getChannel().sendMessageEmbeds(help.build()).queue();
            } else if (args[1].equalsIgnoreCase("add")) {
                String[] cusargs = event.getMessage().getContentRaw().split("  ");
                event.getChannel().sendTyping().queue();
                TimeUnit.SECONDS.sleep(2);
                event.getChannel().sendMessage("[Создание паспорта] Соединяемся с базой данных").queue();
                TimeUnit.SECONDS.sleep(2);
                event.getChannel().sendMessage("[Создание паспорта] Успешно!").queue(); //here i want to edit the message, if you can help me, please help)))
                TimeUnit.MILLISECONDS.sleep(900);
                event.getChannel().sendMessage("[Создание паспорта] Конструируем и добавляем паспорт в базу данных").queue();
                db.addPassport(cusargs[1], cusargs[2], cusargs[3], cusargs[4], cusargs[5], cusargs[6], cusargs[7]); // /passport0 add1(args)  USERID0  NICKNAME1  NAME2  LASTNAME3  DATE4  CITY5(cusargs)
                TimeUnit.SECONDS.sleep(3);
                String[] pass = db.getPassport(cusargs[1]);
                if (pass[5].equalsIgnoreCase("1212")) {
                    event.getChannel().sendMessage("[Создание паспорта] Во время создания паспорта произошла ошибка!").queue();
                } else {
                    event.getChannel().sendMessage("[Создание паспорта] Успешно!").queue();
                    TimeUnit.MILLISECONDS.sleep(900);
                    event.getChannel().sendMessage("[Создание паспорта] Создание успешно заверешно! Через несколько секунд будет выведен паспорт игрока").queue();
                    TimeUnit.SECONDS.sleep(2);
                    User user = jda.getUserById(pass[7]);
                    EmbedBuilder help = new EmbedBuilder();
                    help.setAuthor("\uD83D\uDC51Имперский Бот\uD83D\uDC51", "https://images-ext-2.discordapp.net/external/nWASMV-67mx7guRheeUpvyD_cb6X2NkxUMH4PtbweyA/%3Fsize%3D512/https/cdn.discordapp.com/avatars/916617120064884796/5028d4861b407575072686657b3c2e9a.png?width=230&height=230", "https://images-ext-2.discordapp.net/external/nWASMV-67mx7guRheeUpvyD_cb6X2NkxUMH4PtbweyA/%3Fsize%3D512/https/cdn.discordapp.com/avatars/916617120064884796/5028d4861b407575072686657b3c2e9a.png?width=230&height=230");
                    help.setDescription("Паспорт игрока " + pass[0]);
                    help.setThumbnail(user.getAvatarUrl());
                    help.addField("Общие сведенья", "Имя: " + pass[1] + "\nРод: " + pass[2] + "\nДата рождения: " + pass[3] + "\nМесто жительства: " + pass[4] + "\nНациональность: " + pass[6], false);
                    help.setColor(0xffda07);
                    help.setFooter(user.getName(), user.getAvatarUrl());
                    event.getChannel().sendTyping().queue();
                    TimeUnit.SECONDS.sleep(1);
                    event.getChannel().sendMessageEmbeds(help.build()).queue();
                }
            } else if (args[1].equalsIgnoreCase("remove")) {
                String[] pass = db.getPassport(args[2]);
                if (pass[5].equalsIgnoreCase("1212")) {
                    event.getChannel().sendTyping().queue();
                    TimeUnit.SECONDS.sleep(5);
                    event.getMessage().addReaction("❌").queue();
                    event.getChannel().sendMessage("`[X]` Произошла ошибка! Паспорт этого игрока не зарегестрирован!\nЕсли вы считаете что это ошибка и он зарегестрирован, отпишите разработчику бота !Nightmare.#1717").queue();
                } else {
                    event.getChannel().sendTyping().queue();
                    TimeUnit.SECONDS.sleep(2);
                    event.getChannel().sendMessage("[Удаление паспорта] Соединение с базой данных").queue();
                    TimeUnit.SECONDS.sleep(1);
                    event.getChannel().sendMessage("[Удаление паспорта] Успешно соединенно").queue();
                    TimeUnit.SECONDS.sleep(1);
                    event.getChannel().sendMessage("[Удаление паспорта] Удаление из базы данных").queue();
                    TimeUnit.SECONDS.sleep(2);
                    event.getChannel().sendMessage("[Удаление паспорта] Удаление завершено").queue();
                    event.getChannel().sendMessage("Паспорт игрока " + args[2] + "успешно удалён из базы данных").queue();
                    db.deletePassport(args[2]);
                }
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}```

stack trace:
java.lang.NullPointerException
    at ru46.artem.alaverdyan.emperorbot.commands.Passport.passport(Passport.java:27)
    at ru46.artem.alaverdyan.emperorbot.Listener.onMessageReceived(Listener.java:141)
    at net.dv8tion.jda.api.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:358)
    at net.dv8tion.jda.api.hooks.InterfacedEventManager.handle(InterfacedEventManager.java:96)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handleInternally(EventManagerProxy.java:88)
    at net.dv8tion.jda.internal.hooks.EventManagerProxy.handle(EventManagerProxy.java:70)
    at net.dv8tion.jda.internal.JDAImpl.handleEvent(JDAImpl.java:163)
    at net.dv8tion.jda.internal.handle.MessageCreateHandler.handleInternally(MessageCreateHandler.java:111)
    at net.dv8tion.jda.internal.handle.SocketHandler.handle(SocketHandler.java:36)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onDispatch(WebSocketClient.java:953)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onEvent(WebSocketClient.java:840)
    at net.dv8tion.jda.internal.requests.WebSocketClient.handleEvent(WebSocketClient.java:818)
    at net.dv8tion.jda.internal.requests.WebSocketClient.onBinaryMessage(WebSocketClient.java:992)
    at com.neovisionaries.ws.client.ListenerManager.callOnBinaryMessage(ListenerManager.java:385)
    at com.neovisionaries.ws.client.ReadingThread.callOnBinaryMessage(ReadingThread.java:276)
    at com.neovisionaries.ws.client.ReadingThread.handleBinaryFrame(ReadingThread.java:996)
    at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:755)
    at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:108)
    at com.neovisionaries.ws.client.ReadingThread.runMain(ReadingThread.java:64)
    at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45)
ЧoSS
  • 1
  • 2

0 Answers0