Проблема в том, что вы пытаетесь извлечь пользователя из упоминания в сообщении.
Поскольку пользователь больше не является частью гильдии, похоже, что это не работает.
Чтобы обойти эту проблему, вам необходимо получить идентификатор вручную.
Упоминание всегда в формате <@userid>
или <!@userid>
.
Чтобы получить идентификатор, вы можете просто разделить сообщение и заменить ненужные части, например String id = event.getMessage().getContentRaw().split("<")[1].split(">")[0].replace("!", "").replace("@", "");
Я уверен, что есть лучшие и более удобные способы сделать это. ;)
Лучшим способом получения идентификатора было бы использование регулярного выражения, такого как <@!?(\d+)>
, как упомянуто Минном.
Чтобы получить имя пользователя, вы просто нужен идентификатор через event.getJDA().getUserById(id).getName()
.
Важно отметить, что вы не можете должным образом упомянуть пользователя, которого нет на сервере (что бывает, когда он забанен).
(Дополнение: я пробовал использовать .getMentionedUsers()
с тем же результатом, что и OP.)