GuildMember#hasPermission と Permissions#has の違い
v13でGuildMember#hasPermissionを消すとのPRがありマージされている。 まとめ
GuildMember#hasPermissionをそのままGuildMember#permissions.hasに置き換えることができる。
ただし、checkOwnerをfalseとして呼び出している場合は除く。
それぞれについて
GuildMember#hasPermission
これのオプションにcheckOwnerというものがあり、ギルドのオーナーは全権限を持つのでtrueが返ってくるようになっている。 デフォルトでこの動作は有効。
あとはPermissions#hasと同じ。
Permissions#has
ギルドのオーナーであるかは確認しない。
checkAdminというオプションがあり管理者である場合、個々の権限の有無に関わりなくtrueが返ってくるようになっている。
デフォルトでこの動作は有効。
しかし、GuildMember#permissionsはGuildMemberがギルドのownerである場合Permissions.ALLとして作成される。 そのためcheckOwnerをfalseとして呼び出していない場合はGuildMember#hasPermissionをそのままGuildMember#permissions.hasに置き換えることができる。
参考文献