Посмотреть, упоминается ли в сообщении @here

#java #discord #discord-jda

#java #Discord #discord-jda

Вопрос:

Я хочу посмотреть, упоминается ли в сообщении @here в Discord с использованием библиотеки JDA для Java.

Я уже могу видеть, упоминается ли в сообщении @everyone using net.dv8tion.jda.api.entities.Message#mentionsEveryone() , но как мне увидеть, упоминается ли в сообщении также @here?

Я изучал Message#getMentions(Message.MentionType...) , но я не уверен, как правильно его использовать, поскольку он возвращает тип IMentionable .

Ответ №1:

Вам просто нужно проверить message.mentionsEveryone() amp;amp; message.getContentRaw().contains("@here") . mentionsEveryone() Метод проверяет, было ли это упоминание всеми, @here считается единицей, поскольку в нем упоминаются все, кто в данный момент находится в Сети. Чтобы узнать, было ли это @here или @everyone , вы можете просто проверить содержимое сообщения на наличие литерала @here или @everyone использования contains("...") для каждого типа соответственно.

Ответ №2:

Я никогда не использовал этот API, но JavaDoc для IMentionable показывает, что существует метод, вызываемый getAsMention

 @Nonnull String getAsMention()

Retrieve a Mention for this Entity. For the public Role (@everyone), 
this will return the literal string "@everyone".
  

Итак, кажется, все, что вам нужно сделать, это перебрать ваши именуемые экземпляры и проверить, является ли один из них "@here"