canInteract static method
Allows to check if issueMember
or issueRole
can interact with targetMember
or targetRole
.
Implementation
static bool canInteract({IMember? issueMember, IRole? issueRole, IMember? targetMember, IRole? targetRole}) {
bool canInter(IRole role1, IRole role2) => role1.position > role2.position;
if (issueMember != null && targetMember != null) {
if (issueMember.guild != targetMember.guild) {
return false;
}
return canInter(PermissionsUtils.getMemberHighestRole(issueMember), PermissionsUtils.getMemberHighestRole(targetMember));
}
if (issueMember != null && targetRole != null) {
if (issueMember.guild != targetRole.guild) {
return false;
}
return canInter(PermissionsUtils.getMemberHighestRole(issueMember), targetRole);
}
if (issueRole != null && targetRole != null) {
if (issueRole.guild != targetRole.guild) return false;
return canInter(issueRole, targetRole);
}
return false;
}