Я пытаюсь создать своего первого Java-бота, и, пытаясь настроить косую черту точно так, как сказано в учебнике, которому я следую, я столкнулся с проблемой, когда возвращаемое значение "net.dv8tion.jda. api.JDA.getGuildById(String)" имеет значение null. Я использую идентификатор сервера, на котором тестирую бота, а {myId} — это заполнитель. {myToken} также является заполнителем. Пожалуйста помоги! 😭
import javax.security.auth.login.LoginException;
import commands.BotCommands;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.Activity;
public class DiscordBot {
public static void main(String[] args) throws LoginException, InterruptedException {
JDA jda = JDABuilder.createDefault("{myToken}")
.setActivity(Activity.watching("you sleep"))
.addEventListeners(new BotCommands())
.build();
if (jda.getGuildById("{myId}") == null) {
System.out.println("null");
}
jda.getGuildById("{myId}").upsertCommand("schedule", "Schedule a time to kick a user from a voice channel").queue();
}
}
Я использовал этот оператор if, чтобы проверить, возвращает ли getGuildById() значение null, и это так.





Как говорится в ответе , все, что вам действительно нужно сделать, это вызвать awaitReady().
заблокировать основной поток, пока JDA не будет готова.
Вот документация, если вам интересно документация