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