forked from Fascinated/Bat
add afk feature
This commit is contained in:
40
src/main/java/cc/fascinated/bat/common/MemberUtils.java
Normal file
40
src/main/java/cc/fascinated/bat/common/MemberUtils.java
Normal file
@ -0,0 +1,40 @@
|
||||
package cc.fascinated.bat.common;
|
||||
|
||||
import cc.fascinated.bat.model.BatGuild;
|
||||
import cc.fascinated.bat.model.BatUser;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Role;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* @author Fascinated (fascinated7)
|
||||
*/
|
||||
public class MemberUtils {
|
||||
/**
|
||||
* Checks if a user has permission to edit another user
|
||||
*
|
||||
* @param guild the guild to check
|
||||
* @param user the user to check
|
||||
* @return if the user has permission to edit another user
|
||||
*/
|
||||
public static boolean hasPermissionToEdit(BatGuild guild, BatUser user) {
|
||||
Member botUser = guild.getDiscordGuild().getSelfMember();
|
||||
Member member = guild.getDiscordGuild().getMemberById(user.getId());
|
||||
if (member == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return botUser.canInteract(member) && getHighestRole(botUser).getPosition() > getHighestRole(member).getPosition();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the highest role of a member
|
||||
*
|
||||
* @param member the member to get the highest role of
|
||||
* @return the highest role of the member
|
||||
*/
|
||||
public static Role getHighestRole(Member member) {
|
||||
return member.getRoles().stream().max(Comparator.comparingInt(Role::getPosition)).orElse(null);
|
||||
}
|
||||
}
|
@ -4,7 +4,6 @@ import lombok.*;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
Reference in New Issue
Block a user