Resolve [Bug]/#24 #27

Merge aplicado
csm-kb mesclou 24 commits from mc/1.20.2 into mc/1.20.2 2023-12-09 20:23:10 +00:00
4 arquivos alterados com 15 adições e 7 exclusões
Mostrando apenas as alterações do commit 45d0a39c5f - Mostrar todos os commits

Modify member get roles for better @everyone support

Kane Bruce 2023-12-08 12:06:01 -07:00
Nenhuma chave conhecida encontrada para esta assinatura no banco de dados
ID da chave GPG: 9FE531477BA84BF9

Ver arquivo

@ -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),

Ver arquivo

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

Ver arquivo

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

Ver arquivo

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