Resolve [Bug]/#24 #27
4 arquivos alterados com 15 adições e 7 exclusões
Modify member get roles for better @everyone support
commit
45d0a39c5f
|
|
@ -3,13 +3,15 @@ package com.awakenedredstone.autowhitelist.discord;
|
||||||
import com.awakenedredstone.autowhitelist.discord.api.text.TranslatableText;
|
import com.awakenedredstone.autowhitelist.discord.api.text.TranslatableText;
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
import net.dv8tion.jda.api.MessageBuilder;
|
import net.dv8tion.jda.api.MessageBuilder;
|
||||||
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||||
import net.dv8tion.jda.api.entities.Role;
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
import net.dv8tion.jda.api.requests.restaction.MessageAction;
|
import net.dv8tion.jda.api.requests.restaction.MessageAction;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.Color;
|
||||||
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class BotHelper extends Bot {
|
public class BotHelper extends Bot {
|
||||||
|
|
@ -63,6 +65,12 @@ public class BotHelper extends Bot {
|
||||||
messageAction.queue(m -> m.delete().queueAfter(seconds, TimeUnit.SECONDS));
|
messageAction.queue(m -> m.delete().queueAfter(seconds, TimeUnit.SECONDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Role> getRolesForMember(Member member) {
|
||||||
|
List<Role> roles = member.getRoles();
|
||||||
|
roles.add(member.getGuild().getPublicRole());
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
public enum MessageType {
|
public enum MessageType {
|
||||||
DEBUG(new Color(19, 40, 138)),
|
DEBUG(new Color(19, 40, 138)),
|
||||||
NORMAL(Role.DEFAULT_COLOR_RAW),
|
NORMAL(Role.DEFAULT_COLOR_RAW),
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.awakenedredstone.autowhitelist.discord.Bot.*;
|
import static com.awakenedredstone.autowhitelist.discord.Bot.*;
|
||||||
|
import static com.awakenedredstone.autowhitelist.discord.BotHelper.getRolesForMember;
|
||||||
import static com.awakenedredstone.autowhitelist.util.Debugger.analyzeTimings;
|
import static com.awakenedredstone.autowhitelist.util.Debugger.analyzeTimings;
|
||||||
|
|
||||||
public class DiscordDataProcessor implements Runnable {
|
public class DiscordDataProcessor implements Runnable {
|
||||||
|
|
@ -36,7 +37,7 @@ public class DiscordDataProcessor implements Runnable {
|
||||||
|
|
||||||
List<Member> members = guild.findMembers(v -> {
|
List<Member> members = guild.findMembers(v -> {
|
||||||
if (v.getUser().isBot()) return false;
|
if (v.getUser().isBot()) return false;
|
||||||
return !Collections.disjoint(v.getRoles().stream().map(Role::getId).toList(), new ArrayList<>(whitelistDataMap.keySet()));
|
return !Collections.disjoint(getRolesForMember(v).stream().map(Role::getId).toList(), new ArrayList<>(whitelistDataMap.keySet()));
|
||||||
}).get();
|
}).get();
|
||||||
List<String> memberIds = members.stream().map(ISnowflake::getId).toList();
|
List<String> memberIds = members.stream().map(ISnowflake::getId).toList();
|
||||||
|
|
||||||
|
|
@ -56,7 +57,7 @@ public class DiscordDataProcessor implements Runnable {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Member member : members) {
|
for (Member member : members) {
|
||||||
String highestRole = member.getRoles().stream().map(Role::getId).filter(whitelistDataMap::containsKey).toList().get(0);
|
String highestRole = getRolesForMember(member).stream().map(Role::getId).filter(whitelistDataMap::containsKey).toList().get(0);
|
||||||
String teamName = whitelistDataMap.get(highestRole);
|
String teamName = whitelistDataMap.get(highestRole);
|
||||||
List<ExtendedGameProfile> profiles = whitelist.getFromDiscordId(member.getId());
|
List<ExtendedGameProfile> profiles = whitelist.getFromDiscordId(member.getId());
|
||||||
if (profiles.isEmpty()) continue;
|
if (profiles.isEmpty()) continue;
|
||||||
|
|
|
||||||
|
|
@ -60,10 +60,8 @@ public class RegisterCommand {
|
||||||
new TranslatableText("command.feedback.received.message").getMinecraftText(), 10);
|
new TranslatableText("command.feedback.received.message").getMinecraftText(), 10);
|
||||||
|
|
||||||
String id = member.getId();
|
String id = member.getId();
|
||||||
List<Role> roles = member.getRoles();
|
|
||||||
roles.add(member.getGuild().getPublicRole());
|
|
||||||
|
|
||||||
boolean accepted = !Collections.disjoint(roles.stream().map(Role::getId).toList(), new ArrayList<>(whitelistDataMap.keySet()));
|
boolean accepted = !Collections.disjoint(getRolesForMember(member).stream().map(Role::getId).toList(), new ArrayList<>(whitelistDataMap.keySet()));
|
||||||
if (accepted) {
|
if (accepted) {
|
||||||
MinecraftServer server = AutoWhitelist.server;
|
MinecraftServer server = AutoWhitelist.server;
|
||||||
ExtendedWhitelist whitelist = (ExtendedWhitelist) server.getPlayerManager().getWhitelist();
|
ExtendedWhitelist whitelist = (ExtendedWhitelist) server.getPlayerManager().getWhitelist();
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static com.awakenedredstone.autowhitelist.discord.Bot.*;
|
import static com.awakenedredstone.autowhitelist.discord.Bot.*;
|
||||||
|
import static com.awakenedredstone.autowhitelist.discord.BotHelper.getRolesForMember;
|
||||||
import static com.awakenedredstone.autowhitelist.util.Debugger.analyzeTimings;
|
import static com.awakenedredstone.autowhitelist.util.Debugger.analyzeTimings;
|
||||||
|
|
||||||
public class CoreEvents {
|
public class CoreEvents {
|
||||||
|
|
@ -106,7 +107,7 @@ public class CoreEvents {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> validRoles = member.getRoles().stream().map(Role::getId).filter(whitelistDataMap::containsKey).toList();
|
List<String> validRoles = getRolesForMember(member).stream().map(Role::getId).filter(whitelistDataMap::containsKey).toList();
|
||||||
if (validRoles.isEmpty()) {
|
if (validRoles.isEmpty()) {
|
||||||
ExtendedGameProfile profile = profiles.get(0);
|
ExtendedGameProfile profile = profiles.get(0);
|
||||||
AutoWhitelist.removePlayer(profile);
|
AutoWhitelist.removePlayer(profile);
|
||||||
|
|
|
||||||
Referência em uma nova issue