add afk feature

This commit is contained in:
Lee
2024-06-27 14:29:48 +01:00
parent 0fc5e6514a
commit 576f7b156d
9 changed files with 290 additions and 1 deletions

View 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);
}
}

View File

@ -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;