Ваш код использует асинхронные операции. Асинхронная задача - это та, которая запускается в другом потоке и, возможно, выполняется позже.
Discord имеет ограничения по скорости, которые должны соблюдаться действующим клиентом. По этой причине и по причине того, что HTTP-запросы занимают некоторое время, запросы происходят в фоновом режиме. Используемый вами метод, который называется queue()
, просто помещает запрос в очередь, которая очищается рабочим потоком.
openPrivateChannel()
возвращает RestAction<PrivateChannel>
, что означает, что он получит экземпляр частного канала в качестве ответа. С этим ответом можно взаимодействовать, используя параметр обратного вызова queue(Consumer<PrivateChannel> callback)
.
static void sendMessage(User user, String content) {
user.openPrivateChannel().queue(channel -> { // this is a lambda expression
// the channel is the successful response
channel.sendMessage(content).queue();
});
}
guild.getMembers().stream()
.map(Member::getUser)
.forEach(user -> sendMessage(user, "ZDAROVA"));
Дополнительную информацию о RestAction
можно найти в документации JDA Wiki и .