查看消息是否在此处提到@



我想看看是否有消息提到Discord上使用Java的JDA库的@here。

我已经可以看到消息中是否提到了使用net.dv8tion.jda.api.entities.Message#mentionsEveryone()的@everyone,但我该如何查看消息中是否也提到了@here?

我一直在研究Message#getMentions(Message.MentionType...),但我不确定如何正确使用它,因为它返回类型IMentionable

您只需要检查message.mentionsEveryone() && message.getContentRaw().contains("@here")mentionsEveryone()方法检查它是否是每个人提到的,@here算作一个,因为它确实提到了当时在线的每个人。要查看是@here还是@everyone,只需分别使用contains("...")检查消息内容中的文字@here@everyone即可。

我从来没有使用过这个API,但用于IMcontinental的JavaDoc显示,有一个名为getAsMention的方法

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

因此,您所需要做的似乎只是迭代您的I引用实例,并检查其中是否有一个是"@here"

最新更新