isMentionedとisMemberMentionedとmentions.hasの違い
#v11
v11ではメンションされているかを確認するためのメソッドがMessageにisMentionedとisMemberMentionedの2つあったが、v12でmentions.hasの1つになった
公式のガイドでは単にmentions.hasに変わったとしか書かれていないが、問題は2つあるものがそのまま1つになるのはありえなくて、どちらかの機能が消えているか、両方の上位互換でないとおかしい
違い
v11のisMentionedはユーザー、チャンネル、役職などのメンションがメッセージに含まれるか、isMemberMentionedはUserとGuildMemberに対して@everyone/@hereと役職を考慮してユーザーがメンションされているかを調べる
v12のmention.hasはisMemberMentionedの挙動のままチャンネルなどにも対応した動作をする
それで@everyoneを含むときにチャンネルでも問答無用でtrueを返してしまう挙動になってしまっている
そして@everyoneと役職、個別の取得をそれぞれオプションで変えられるようになっていた
ドキュメント
Message.isMentioned(data): boolean
Message.isMemberMentioned(member): boolean