From d54cd63fb9ea3264d87401b59b43a0194b207620 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 5 Mar 2021 14:58:54 -0600 Subject: [PATCH] Added compatibility with GeyserMC/Floodgate --- .../angrybee/joe/commands/discord/CommandAdd.java | 15 +++++++++++++++ .../uk/co/angrybee/joe/configs/MainConfig.java | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/uk/co/angrybee/joe/commands/discord/CommandAdd.java b/src/main/java/uk/co/angrybee/joe/commands/discord/CommandAdd.java index 6fea725..fa78dc3 100644 --- a/src/main/java/uk/co/angrybee/joe/commands/discord/CommandAdd.java +++ b/src/main/java/uk/co/angrybee/joe/commands/discord/CommandAdd.java @@ -473,6 +473,9 @@ public class CommandAdd if (!WhitelistedPlayers.usingEasyWhitelist && authorPermissions.isUserCanUseCommand()) DiscordClient.ExecuteServerCommand("whitelist add " + finalNameToAdd); + if(MainConfig.getMainConfig().getBoolean("use-geyser/floodgate-compatibility")) { + addBedrockUser(finalNameToAdd); + } // have to use !invalidMinecraftName else the easy whitelist plugin will add the name regardless of whether it is valid on not if (WhitelistedPlayers.usingEasyWhitelist && !invalidMinecraftName && authorPermissions.isUserCanUseCommand()) @@ -615,4 +618,16 @@ public class CommandAdd } } } + + private static void addBedrockUser(String finalNameToAdd) { + String bedrockPrefix = MainConfig.getMainConfig().getString("geyser/floodgate prefix"); + String bedrockName = bedrockPrefix + finalNameToAdd; + if(bedrockName.length() > 16) { + bedrockName = bedrockName.substring(0, 16); + } + //check if we actually NEED to add + if(finalNameToAdd.length() < bedrockPrefix.length() || !finalNameToAdd.substring(0, bedrockPrefix.length() - 1).equals(bedrockPrefix)) { + DiscordClient.ExecuteServerCommand("whitelist add " + bedrockName); + } + } } diff --git a/src/main/java/uk/co/angrybee/joe/configs/MainConfig.java b/src/main/java/uk/co/angrybee/joe/configs/MainConfig.java index 2b51026..e9dd16c 100644 --- a/src/main/java/uk/co/angrybee/joe/configs/MainConfig.java +++ b/src/main/java/uk/co/angrybee/joe/configs/MainConfig.java @@ -157,6 +157,10 @@ public class MainConfig CheckEntry("use-crafatar-for-avatars", false); + CheckEntry("use-geyser/floodgate-compatibility", false); + + CheckEntry("geyser/floodgate prefix", "SetThisToWhateverPrefixYouUse"); + // Remove old role entry if found, move role to new array (for people with v1.3.6 or below) if(whitelisterBotConfig.get("whitelisted-role") != null) {