From d27cc9479fd7b2b689a65acb375ffd6ecd038da0 Mon Sep 17 00:00:00 2001 From: Tim203 Date: Fri, 26 Mar 2021 18:13:04 +0100 Subject: [PATCH] Added a way to get the Floodgate prefix using the API --- .../java/org/geysermc/floodgate/api/FloodgateApi.java | 6 ++++++ .../org/geysermc/floodgate/api/ProxyFloodgateApi.java | 8 ++++++-- .../org/geysermc/floodgate/api/SimpleFloodgateApi.java | 7 +++++++ .../org/geysermc/floodgate/module/ProxyCommonModule.java | 4 +++- .../org/geysermc/floodgate/module/ServerCommonModule.java | 7 +++++-- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/org/geysermc/floodgate/api/FloodgateApi.java b/api/src/main/java/org/geysermc/floodgate/api/FloodgateApi.java index c422b120..f506ee91 100644 --- a/api/src/main/java/org/geysermc/floodgate/api/FloodgateApi.java +++ b/api/src/main/java/org/geysermc/floodgate/api/FloodgateApi.java @@ -40,6 +40,12 @@ public interface FloodgateApi { return InstanceHolder.getApi(); } + /** + * Returns the character(s) that will be added in front of a Bedrock player's name to prevent + * username duplicates. + */ + String getPlayerPrefix(); + /** * Returns all the online Floodgate players. */ diff --git a/common/src/main/java/org/geysermc/floodgate/api/ProxyFloodgateApi.java b/common/src/main/java/org/geysermc/floodgate/api/ProxyFloodgateApi.java index ced575a0..f06465a1 100644 --- a/common/src/main/java/org/geysermc/floodgate/api/ProxyFloodgateApi.java +++ b/common/src/main/java/org/geysermc/floodgate/api/ProxyFloodgateApi.java @@ -26,6 +26,7 @@ package org.geysermc.floodgate.api; import java.nio.charset.StandardCharsets; +import org.geysermc.floodgate.config.FloodgateConfigHolder; import org.geysermc.floodgate.crypto.FloodgateCipher; import org.geysermc.floodgate.pluginmessage.PluginMessageManager; import org.geysermc.floodgate.util.BedrockData; @@ -33,8 +34,11 @@ import org.geysermc.floodgate.util.BedrockData; public final class ProxyFloodgateApi extends SimpleFloodgateApi { private final FloodgateCipher cipher; - public ProxyFloodgateApi(PluginMessageManager pluginMessageManager, FloodgateCipher cipher) { - super(pluginMessageManager); + public ProxyFloodgateApi( + PluginMessageManager pluginMessageManager, + FloodgateConfigHolder configHolder, + FloodgateCipher cipher) { + super(pluginMessageManager, configHolder); this.cipher = cipher; } diff --git a/common/src/main/java/org/geysermc/floodgate/api/SimpleFloodgateApi.java b/common/src/main/java/org/geysermc/floodgate/api/SimpleFloodgateApi.java index 0505bf40..196f5184 100644 --- a/common/src/main/java/org/geysermc/floodgate/api/SimpleFloodgateApi.java +++ b/common/src/main/java/org/geysermc/floodgate/api/SimpleFloodgateApi.java @@ -35,6 +35,7 @@ import lombok.RequiredArgsConstructor; import org.geysermc.cumulus.Form; import org.geysermc.cumulus.util.FormBuilder; import org.geysermc.floodgate.api.player.FloodgatePlayer; +import org.geysermc.floodgate.config.FloodgateConfigHolder; import org.geysermc.floodgate.player.FloodgatePlayerImpl; import org.geysermc.floodgate.pluginmessage.PluginMessageManager; import org.geysermc.floodgate.pluginmessage.channel.FormChannel; @@ -44,6 +45,12 @@ import org.geysermc.floodgate.util.Utils; public class SimpleFloodgateApi implements FloodgateApi { private final Map players = new HashMap<>(); private final PluginMessageManager pluginMessageManager; + private final FloodgateConfigHolder configHolder; + + @Override + public String getPlayerPrefix() { + return configHolder.get().getUsernamePrefix(); + } @Override public Collection getPlayers() { diff --git a/common/src/main/java/org/geysermc/floodgate/module/ProxyCommonModule.java b/common/src/main/java/org/geysermc/floodgate/module/ProxyCommonModule.java index cd7fd7bc..1133a73f 100644 --- a/common/src/main/java/org/geysermc/floodgate/module/ProxyCommonModule.java +++ b/common/src/main/java/org/geysermc/floodgate/module/ProxyCommonModule.java @@ -32,6 +32,7 @@ import java.nio.file.Path; import org.geysermc.floodgate.api.ProxyFloodgateApi; import org.geysermc.floodgate.api.SimpleFloodgateApi; import org.geysermc.floodgate.config.FloodgateConfig; +import org.geysermc.floodgate.config.FloodgateConfigHolder; import org.geysermc.floodgate.config.ProxyFloodgateConfig; import org.geysermc.floodgate.crypto.FloodgateCipher; import org.geysermc.floodgate.pluginmessage.PluginMessageManager; @@ -58,7 +59,8 @@ public final class ProxyCommonModule extends CommonModule { @Singleton public ProxyFloodgateApi proxyFloodgateApi( PluginMessageManager pluginMessageManager, + FloodgateConfigHolder configHolder, FloodgateCipher cipher) { - return new ProxyFloodgateApi(pluginMessageManager, cipher); + return new ProxyFloodgateApi(pluginMessageManager, configHolder, cipher); } } diff --git a/common/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java b/common/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java index 5e198f2e..27f850d9 100644 --- a/common/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java +++ b/common/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java @@ -31,6 +31,7 @@ import com.google.inject.name.Named; import java.nio.file.Path; import org.geysermc.floodgate.api.SimpleFloodgateApi; import org.geysermc.floodgate.config.FloodgateConfig; +import org.geysermc.floodgate.config.FloodgateConfigHolder; import org.geysermc.floodgate.pluginmessage.PluginMessageManager; public final class ServerCommonModule extends CommonModule { @@ -47,7 +48,9 @@ public final class ServerCommonModule extends CommonModule { @Provides @Singleton - public SimpleFloodgateApi floodgateApi(PluginMessageManager pluginMessageManager) { - return new SimpleFloodgateApi(pluginMessageManager); + public SimpleFloodgateApi floodgateApi( + PluginMessageManager pluginMessageManager, + FloodgateConfigHolder configHolder) { + return new SimpleFloodgateApi(pluginMessageManager, configHolder); } }