#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"