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 19 adições e 7 exclusões
Mostrando apenas as alterações do commit 170e3b37b9 - 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

@ -1,6 +1,10 @@
package com.awakenedredstone.autowhitelist.discord; package com.awakenedredstone.autowhitelist.discord;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
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.MessageChannel;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
import net.dv8tion.jda.api.requests.restaction.MessageCreateAction; import net.dv8tion.jda.api.requests.restaction.MessageCreateAction;
@ -10,7 +14,8 @@ import net.dv8tion.jda.api.utils.messages.MessageEditBuilder;
import net.dv8tion.jda.api.utils.messages.MessageEditData; import net.dv8tion.jda.api.utils.messages.MessageEditData;
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 {
@ -74,6 +79,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

@ -13,6 +13,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import static com.awakenedredstone.autowhitelist.discord.Bot.guild; import static com.awakenedredstone.autowhitelist.discord.Bot.guild;
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 {
@ -30,7 +31,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 hasRole(v.getRoles()); return hasRole(getRolesForMember(v));
}).get(); }).get();
List<String> memberIds = members.stream().map(ISnowflake::getId).toList(); List<String> memberIds = members.stream().map(ISnowflake::getId).toList();
@ -47,7 +48,7 @@ public class DiscordDataProcessor implements Runnable {
} }
for (Member member : members) { for (Member member : members) {
String role = getTopRole(member.getRoles()).get(); String role = getTopRole(getRolesForMember(member)).get();
List<ExtendedGameProfile> profiles = whitelist.getProfilesFromDiscordId(member.getId()); List<ExtendedGameProfile> profiles = whitelist.getProfilesFromDiscordId(member.getId());
if (profiles.isEmpty()) continue; if (profiles.isEmpty()) continue;
if (profiles.size() > 1) { if (profiles.size() > 1) {

Ver arquivo

@ -51,10 +51,8 @@ public class RegisterCommand {
Text.translatable("command.feedback.received.message"), 10); Text.translatable("command.feedback.received.message"), 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<>(AutoWhitelist.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

@ -23,6 +23,7 @@ import java.util.Optional;
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 {
@ -89,7 +90,8 @@ public class CoreEvents {
return; return;
} }
if (roleOptional.isEmpty()) { List<String> validRoles = getRolesForMember(member).stream().map(Role::getId).filter(whitelistDataMap::containsKey).toList();
if (validRoles.isEmpty()) {
ExtendedGameProfile profile = profiles.get(0); ExtendedGameProfile profile = profiles.get(0);
AutoWhitelist.removePlayer(profile); AutoWhitelist.removePlayer(profile);
return; return;