From 4404c15f1a0ae0c19ff3a763654f7a29b27c1d02 Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 8 May 2024 17:15:44 +0200 Subject: [PATCH] Allow Floodgate-Fabric to provide it's own TemplateReader (#507) --- .../org/geysermc/floodgate/config/ConfigLoader.java | 5 +++-- .../org/geysermc/floodgate/module/CommonModule.java | 10 +++++++++- .../geysermc/floodgate/module/ServerCommonModule.java | 6 ++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/geysermc/floodgate/config/ConfigLoader.java b/core/src/main/java/org/geysermc/floodgate/config/ConfigLoader.java index e4311058..739e1767 100644 --- a/core/src/main/java/org/geysermc/floodgate/config/ConfigLoader.java +++ b/core/src/main/java/org/geysermc/floodgate/config/ConfigLoader.java @@ -33,7 +33,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import org.geysermc.configutils.ConfigUtilities; import org.geysermc.configutils.file.codec.PathFileCodec; -import org.geysermc.configutils.file.template.ResourceTemplateReader; +import org.geysermc.configutils.file.template.TemplateReader; import org.geysermc.configutils.updater.change.Changes; import org.geysermc.floodgate.crypto.FloodgateCipher; import org.geysermc.floodgate.crypto.KeyProducer; @@ -46,6 +46,7 @@ public final class ConfigLoader { private final KeyProducer keyProducer; private final FloodgateCipher cipher; + private final TemplateReader reader; @SuppressWarnings("unchecked") public T load() { @@ -64,7 +65,7 @@ public final class ConfigLoader { ConfigUtilities.builder() .fileCodec(PathFileCodec.of(dataDirectory)) .configFile("config.yml") - .templateReader(ResourceTemplateReader.of(getClass())) + .templateReader(reader) .template(templateFile) .changes(Changes.builder() .version(1, Changes.versionBuilder() diff --git a/core/src/main/java/org/geysermc/floodgate/module/CommonModule.java b/core/src/main/java/org/geysermc/floodgate/module/CommonModule.java index 881f3ede..cddb93f7 100644 --- a/core/src/main/java/org/geysermc/floodgate/module/CommonModule.java +++ b/core/src/main/java/org/geysermc/floodgate/module/CommonModule.java @@ -40,6 +40,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import lombok.RequiredArgsConstructor; +import org.geysermc.configutils.file.template.ResourceTemplateReader; +import org.geysermc.configutils.file.template.TemplateReader; import org.geysermc.event.PostOrder; import org.geysermc.floodgate.addon.data.HandshakeHandlersImpl; import org.geysermc.floodgate.api.FloodgateApi; @@ -75,6 +77,12 @@ import org.geysermc.floodgate.util.LanguageManager; public class CommonModule extends AbstractModule { private final EventBus eventBus = new EventBus(); private final Path dataDirectory; + private final TemplateReader reader; + + public CommonModule(Path dataDirectory) { + this.dataDirectory = dataDirectory; + this.reader = ResourceTemplateReader.of(ConfigLoader.class); + } @Override protected void configure() { @@ -154,7 +162,7 @@ public class CommonModule extends AbstractModule { @Named("configClass") Class configClass, KeyProducer producer, FloodgateCipher cipher) { - return new ConfigLoader(dataDirectory, configClass, producer, cipher); + return new ConfigLoader(dataDirectory, configClass, producer, cipher, reader); } @Provides diff --git a/core/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java b/core/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java index 23514824..9afb2253 100644 --- a/core/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java +++ b/core/src/main/java/org/geysermc/floodgate/module/ServerCommonModule.java @@ -29,6 +29,7 @@ import com.google.inject.Provides; import com.google.inject.Singleton; import com.google.inject.name.Named; import java.nio.file.Path; +import org.geysermc.configutils.file.template.TemplateReader; import org.geysermc.floodgate.api.SimpleFloodgateApi; import org.geysermc.floodgate.config.FloodgateConfig; @@ -37,6 +38,11 @@ public final class ServerCommonModule extends CommonModule { super(dataDirectory); } + // Used in floodgate-fabric to provide it's own reader implementation + public ServerCommonModule(Path dataDirectory, TemplateReader reader) { + super(dataDirectory, reader); + } + @Override protected void configure() { super.configure();