我想看看是否有消息提到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"