diff --git a/gradle.properties b/gradle.properties index f2243bd..acecf51 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ version_major=0 version_minor=0 -version_patch=13 +version_patch=14 shade_group=com.hypherionmc.sdlink.shaded. diff --git a/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java b/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java index 53905c3..9ff885e 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java +++ b/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java @@ -98,6 +98,7 @@ public class MinecraftAccount { } public static SDLinkAccount getStoredFromUUID(String uuid) { + sdlinkDatabase.reloadCollection("accounts"); return sdlinkDatabase.findById(uuid, SDLinkAccount.class); } @@ -315,13 +316,27 @@ public class MinecraftAccount { if (SDLinkConfig.INSTANCE.whitelistingAndLinking.accountLinking.accountLinking) { User discordUser = getDiscordUser(); + if (SDLinkConfig.INSTANCE.generalConfig.debugging) { + System.out.println("[AutoWhiteList] Discord User Null: " + (discordUser == null)); + } + if (discordUser != null) { Member m = BotController.INSTANCE.getJDA().getGuilds().get(0).getMemberById(discordUser.getId()); + if (SDLinkConfig.INSTANCE.generalConfig.debugging) { + System.out.println("[AutoWhiteList] Discord Member Null: " + (m == null)); + } + if (m == null) return false; - return m.getRoles().stream().anyMatch(r -> RoleManager.getAutoWhitelistRoles().contains(r)); + boolean hasAutoRole = m.getRoles().stream().anyMatch(r -> RoleManager.getAutoWhitelistRoles().contains(r)); + + if (SDLinkConfig.INSTANCE.generalConfig.debugging) { + System.out.println("[AutoWhiteList] Has Auto Role: " + hasAutoRole); + } + + return hasAutoRole; } } @@ -332,6 +347,7 @@ public class MinecraftAccount { * Retrieve the stored account from the database */ public SDLinkAccount getStoredAccount() { + sdlinkDatabase.reloadCollection("accounts"); return sdlinkDatabase.findById(this.uuid.toString(), SDLinkAccount.class); } @@ -353,7 +369,7 @@ public class MinecraftAccount { * Get the Discord Account name this player is linked to */ public String getDiscordName() { - SDLinkAccount storedAccount = sdlinkDatabase.findById(this.uuid, SDLinkAccount.class); + SDLinkAccount storedAccount = getStoredAccount(); if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty()) return "Unlinked"; @@ -365,7 +381,7 @@ public class MinecraftAccount { * Get the Discord User this player is linked to */ public User getDiscordUser() { - SDLinkAccount storedAccount = sdlinkDatabase.findById(this.uuid, SDLinkAccount.class); + SDLinkAccount storedAccount = getStoredAccount(); if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty()) return null; diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ConfirmAccountLinkSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ConfirmAccountLinkSlashCommand.java index 14fb5a9..efc09fe 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ConfirmAccountLinkSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ConfirmAccountLinkSlashCommand.java @@ -40,6 +40,7 @@ public class ConfirmAccountLinkSlashCommand extends SDLinkSlashCommand { return; } + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); if (accounts.isEmpty()) { diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/UnlinkAccountSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/UnlinkAccountSlashCommand.java index fa1ae91..efbda08 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/UnlinkAccountSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/UnlinkAccountSlashCommand.java @@ -28,6 +28,7 @@ public class UnlinkAccountSlashCommand extends SDLinkSlashCommand { @Override protected void execute(SlashCommandEvent event) { + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); if (accounts.isEmpty()) { diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ViewLinkedAccountsCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ViewLinkedAccountsCommand.java index ef4fee2..387500c 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ViewLinkedAccountsCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/linking/ViewLinkedAccountsCommand.java @@ -37,6 +37,7 @@ public class ViewLinkedAccountsCommand extends SDLinkSlashCommand { protected void execute(SlashCommandEvent event) { EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ConfirmWhitelistSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ConfirmWhitelistSlashCommand.java index 413f18d..a8780cd 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ConfirmWhitelistSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ConfirmWhitelistSlashCommand.java @@ -40,6 +40,7 @@ public class ConfirmWhitelistSlashCommand extends SDLinkSlashCommand { return; } + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); if (accounts.isEmpty()) { diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/UnWhitelistAccountSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/UnWhitelistAccountSlashCommand.java index 222cec9..d84cb04 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/UnWhitelistAccountSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/UnWhitelistAccountSlashCommand.java @@ -29,6 +29,7 @@ public class UnWhitelistAccountSlashCommand extends SDLinkSlashCommand { @Override protected void execute(SlashCommandEvent event) { + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class); if (accounts.isEmpty()) { diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ViewWhitelistedAccountsSlashCommand.java b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ViewWhitelistedAccountsSlashCommand.java index cd06d68..7123692 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ViewWhitelistedAccountsSlashCommand.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/commands/slash/whitelist/ViewWhitelistedAccountsSlashCommand.java @@ -37,7 +37,7 @@ public class ViewWhitelistedAccountsSlashCommand extends SDLinkSlashCommand { @Override protected void execute(SlashCommandEvent event) { EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event); - + sdlinkDatabase.reloadCollection("accounts"); List accounts = sdlinkDatabase.findAll(SDLinkAccount.class).stream().filter(SDLinkAccount::isWhitelisted).toList(); EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/hooks/DiscordMessageHooks.java b/src/main/java/com/hypherionmc/sdlink/core/discord/hooks/DiscordMessageHooks.java index 271f846..8d74118 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/hooks/DiscordMessageHooks.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/hooks/DiscordMessageHooks.java @@ -37,14 +37,14 @@ public class DiscordMessageHooks { message = (long) event.getMessage().getAttachments().size() + " attachments"; } - if (!message.isEmpty() && !event.getMessage().getAttachments().isEmpty()) { + if (!event.getMessage().getContentRaw().isEmpty() && !event.getMessage().getAttachments().isEmpty()) { message = message + " (+" + (long) event.getMessage().getAttachments().size() + " attachments)"; } if (message.isEmpty()) return; - SDLinkPlatform.minecraftHelper.discordMessageReceived(event.getMember(), event.getMessage().getContentRaw()); + SDLinkPlatform.minecraftHelper.discordMessageReceived(event.getMember(), message); } catch (Exception e) { if (SDLinkConfig.INSTANCE.generalConfig.debugging) { e.printStackTrace(); diff --git a/src/main/java/com/hypherionmc/sdlink/core/messaging/discord/DiscordMessageBuilder.java b/src/main/java/com/hypherionmc/sdlink/core/messaging/discord/DiscordMessageBuilder.java index 147b017..e2247c1 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/messaging/discord/DiscordMessageBuilder.java +++ b/src/main/java/com/hypherionmc/sdlink/core/messaging/discord/DiscordMessageBuilder.java @@ -9,6 +9,7 @@ import com.hypherionmc.sdlink.core.accounts.MinecraftAccount; import com.hypherionmc.sdlink.core.config.SDLinkConfig; import com.hypherionmc.sdlink.core.config.impl.MessageIgnoreConfig; import com.hypherionmc.sdlink.core.messaging.MessageType; +import net.dv8tion.jda.api.entities.User; /** * @author HypherionSA @@ -41,9 +42,10 @@ public final class DiscordMessageBuilder { if (SDLinkConfig.INSTANCE.chatConfig.useLinkedNames && this.author != DiscordAuthor.SERVER) { MinecraftAccount account = MinecraftAccount.standard(author.getRawUsername()); + User discordUser = account.getDiscordUser(); - if (account != null && account.getDiscordUser() != null) { - this.author = DiscordAuthor.of(account.getDiscordName(), author.getUuid(), author.getRawUsername()); + if (account != null && discordUser != null) { + this.author = DiscordAuthor.of(discordUser.getEffectiveName(), author.getUuid(), author.getRawUsername()); } }