[BUG] Fix DB Cache Reloading
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
version_major=0
|
version_major=0
|
||||||
version_minor=0
|
version_minor=0
|
||||||
version_patch=13
|
version_patch=14
|
||||||
|
|
||||||
shade_group=com.hypherionmc.sdlink.shaded.
|
shade_group=com.hypherionmc.sdlink.shaded.
|
||||||
|
|
||||||
|
@@ -98,6 +98,7 @@ public class MinecraftAccount {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static SDLinkAccount getStoredFromUUID(String uuid) {
|
public static SDLinkAccount getStoredFromUUID(String uuid) {
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
return sdlinkDatabase.findById(uuid, SDLinkAccount.class);
|
return sdlinkDatabase.findById(uuid, SDLinkAccount.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,13 +316,27 @@ public class MinecraftAccount {
|
|||||||
if (SDLinkConfig.INSTANCE.whitelistingAndLinking.accountLinking.accountLinking) {
|
if (SDLinkConfig.INSTANCE.whitelistingAndLinking.accountLinking.accountLinking) {
|
||||||
User discordUser = getDiscordUser();
|
User discordUser = getDiscordUser();
|
||||||
|
|
||||||
|
if (SDLinkConfig.INSTANCE.generalConfig.debugging) {
|
||||||
|
System.out.println("[AutoWhiteList] Discord User Null: " + (discordUser == null));
|
||||||
|
}
|
||||||
|
|
||||||
if (discordUser != null) {
|
if (discordUser != null) {
|
||||||
Member m = BotController.INSTANCE.getJDA().getGuilds().get(0).getMemberById(discordUser.getId());
|
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)
|
if (m == null)
|
||||||
return false;
|
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
|
* Retrieve the stored account from the database
|
||||||
*/
|
*/
|
||||||
public SDLinkAccount getStoredAccount() {
|
public SDLinkAccount getStoredAccount() {
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
return sdlinkDatabase.findById(this.uuid.toString(), SDLinkAccount.class);
|
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
|
* Get the Discord Account name this player is linked to
|
||||||
*/
|
*/
|
||||||
public String getDiscordName() {
|
public String getDiscordName() {
|
||||||
SDLinkAccount storedAccount = sdlinkDatabase.findById(this.uuid, SDLinkAccount.class);
|
SDLinkAccount storedAccount = getStoredAccount();
|
||||||
if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty())
|
if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty())
|
||||||
return "Unlinked";
|
return "Unlinked";
|
||||||
|
|
||||||
@@ -365,7 +381,7 @@ public class MinecraftAccount {
|
|||||||
* Get the Discord User this player is linked to
|
* Get the Discord User this player is linked to
|
||||||
*/
|
*/
|
||||||
public User getDiscordUser() {
|
public User getDiscordUser() {
|
||||||
SDLinkAccount storedAccount = sdlinkDatabase.findById(this.uuid, SDLinkAccount.class);
|
SDLinkAccount storedAccount = getStoredAccount();
|
||||||
if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty())
|
if (storedAccount == null || storedAccount.getDiscordID() == null || storedAccount.getDiscordID().isEmpty())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
@@ -40,6 +40,7 @@ public class ConfirmAccountLinkSlashCommand extends SDLinkSlashCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
||||||
|
|
||||||
if (accounts.isEmpty()) {
|
if (accounts.isEmpty()) {
|
||||||
|
@@ -28,6 +28,7 @@ public class UnlinkAccountSlashCommand extends SDLinkSlashCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void execute(SlashCommandEvent event) {
|
protected void execute(SlashCommandEvent event) {
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
||||||
|
|
||||||
if (accounts.isEmpty()) {
|
if (accounts.isEmpty()) {
|
||||||
|
@@ -37,6 +37,7 @@ public class ViewLinkedAccountsCommand extends SDLinkSlashCommand {
|
|||||||
protected void execute(SlashCommandEvent event) {
|
protected void execute(SlashCommandEvent event) {
|
||||||
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event);
|
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event);
|
||||||
|
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
||||||
|
|
||||||
EmbedBuilder builder = new EmbedBuilder();
|
EmbedBuilder builder = new EmbedBuilder();
|
||||||
|
@@ -40,6 +40,7 @@ public class ConfirmWhitelistSlashCommand extends SDLinkSlashCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
||||||
|
|
||||||
if (accounts.isEmpty()) {
|
if (accounts.isEmpty()) {
|
||||||
|
@@ -29,6 +29,7 @@ public class UnWhitelistAccountSlashCommand extends SDLinkSlashCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void execute(SlashCommandEvent event) {
|
protected void execute(SlashCommandEvent event) {
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class);
|
||||||
|
|
||||||
if (accounts.isEmpty()) {
|
if (accounts.isEmpty()) {
|
||||||
|
@@ -37,7 +37,7 @@ public class ViewWhitelistedAccountsSlashCommand extends SDLinkSlashCommand {
|
|||||||
@Override
|
@Override
|
||||||
protected void execute(SlashCommandEvent event) {
|
protected void execute(SlashCommandEvent event) {
|
||||||
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event);
|
EmbedPaginator.Builder paginator = MessageUtil.defaultPaginator(event);
|
||||||
|
sdlinkDatabase.reloadCollection("accounts");
|
||||||
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class).stream().filter(SDLinkAccount::isWhitelisted).toList();
|
List<SDLinkAccount> accounts = sdlinkDatabase.findAll(SDLinkAccount.class).stream().filter(SDLinkAccount::isWhitelisted).toList();
|
||||||
|
|
||||||
EmbedBuilder builder = new EmbedBuilder();
|
EmbedBuilder builder = new EmbedBuilder();
|
||||||
|
@@ -37,14 +37,14 @@ public class DiscordMessageHooks {
|
|||||||
message = (long) event.getMessage().getAttachments().size() + " attachments";
|
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)";
|
message = message + " (+" + (long) event.getMessage().getAttachments().size() + " attachments)";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.isEmpty())
|
if (message.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SDLinkPlatform.minecraftHelper.discordMessageReceived(event.getMember(), event.getMessage().getContentRaw());
|
SDLinkPlatform.minecraftHelper.discordMessageReceived(event.getMember(), message);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (SDLinkConfig.INSTANCE.generalConfig.debugging) {
|
if (SDLinkConfig.INSTANCE.generalConfig.debugging) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@@ -9,6 +9,7 @@ import com.hypherionmc.sdlink.core.accounts.MinecraftAccount;
|
|||||||
import com.hypherionmc.sdlink.core.config.SDLinkConfig;
|
import com.hypherionmc.sdlink.core.config.SDLinkConfig;
|
||||||
import com.hypherionmc.sdlink.core.config.impl.MessageIgnoreConfig;
|
import com.hypherionmc.sdlink.core.config.impl.MessageIgnoreConfig;
|
||||||
import com.hypherionmc.sdlink.core.messaging.MessageType;
|
import com.hypherionmc.sdlink.core.messaging.MessageType;
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HypherionSA
|
* @author HypherionSA
|
||||||
@@ -41,9 +42,10 @@ public final class DiscordMessageBuilder {
|
|||||||
|
|
||||||
if (SDLinkConfig.INSTANCE.chatConfig.useLinkedNames && this.author != DiscordAuthor.SERVER) {
|
if (SDLinkConfig.INSTANCE.chatConfig.useLinkedNames && this.author != DiscordAuthor.SERVER) {
|
||||||
MinecraftAccount account = MinecraftAccount.standard(author.getRawUsername());
|
MinecraftAccount account = MinecraftAccount.standard(author.getRawUsername());
|
||||||
|
User discordUser = account.getDiscordUser();
|
||||||
|
|
||||||
if (account != null && account.getDiscordUser() != null) {
|
if (account != null && discordUser != null) {
|
||||||
this.author = DiscordAuthor.of(account.getDiscordName(), author.getUuid(), author.getRawUsername());
|
this.author = DiscordAuthor.of(discordUser.getEffectiveName(), author.getUuid(), author.getRawUsername());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user