Resolve [Bug]/#24 #27
4 arquivos alterados com 19 adições e 7 exclusões
Modify member get roles for better @everyone support
commit
170e3b37b9
|
|
@ -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),
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Referência em uma nova issue