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)