查看消息是否提到@here
See if a message mentions @here
我想看看是否有消息在 Discord 上使用 Java 的 JDA 库提到@here。
我已经可以使用 net.dv8tion.jda.api.entities.Message#mentionsEveryone()
查看消息是否提到了@everyone,但是我如何查看消息是否也提到了@here?
我一直在研究 Message#getMentions(Message.MentionType...)
,但我不确定如何正确使用它,因为它 returns 类型 IMentionable
。
我从来没有用过这个 API,但是 JavaDoc for IMentionable 显示有一个名为 getAsMention
的方法
@Nonnull String getAsMention()
Retrieve a Mention for this Entity. For the public Role (@everyone),
this will return the literal string "@everyone".
所以看来您需要做的就是遍历您的 IMentionable 实例并检查其中一个是否是 "@here"
您只需检查 message.mentionsEveryone() && message.getContentRaw().contains("@here")
。 mentionsEveryone()
方法检查它是否是每个人都提到的,@here
算作一个,因为它确实提到了当时在线的每个人。要查看它是 @here
还是 @everyone
,您只需分别对每种类型使用 contains("...")
检查消息内容中的文字 @here
或 @everyone
。
我想看看是否有消息在 Discord 上使用 Java 的 JDA 库提到@here。
我已经可以使用 net.dv8tion.jda.api.entities.Message#mentionsEveryone()
查看消息是否提到了@everyone,但是我如何查看消息是否也提到了@here?
我一直在研究 Message#getMentions(Message.MentionType...)
,但我不确定如何正确使用它,因为它 returns 类型 IMentionable
。
我从来没有用过这个 API,但是 JavaDoc for IMentionable 显示有一个名为 getAsMention
@Nonnull String getAsMention() Retrieve a Mention for this Entity. For the public Role (@everyone), this will return the literal string "@everyone".
所以看来您需要做的就是遍历您的 IMentionable 实例并检查其中一个是否是 "@here"
您只需检查 message.mentionsEveryone() && message.getContentRaw().contains("@here")
。 mentionsEveryone()
方法检查它是否是每个人都提到的,@here
算作一个,因为它确实提到了当时在线的每个人。要查看它是 @here
还是 @everyone
,您只需分别对每种类型使用 contains("...")
检查消息内容中的文字 @here
或 @everyone
。