1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2025-12-19 14:59:20 +00:00

Allow Floodgate-Fabric to provide it's own TemplateReader (#507)

This commit is contained in:
chris
2024-05-08 17:15:44 +02:00
committed by GitHub
parent 41c42ed3bb
commit 4404c15f1a
3 changed files with 18 additions and 3 deletions

View File

@@ -33,7 +33,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.geysermc.configutils.ConfigUtilities; import org.geysermc.configutils.ConfigUtilities;
import org.geysermc.configutils.file.codec.PathFileCodec; 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.configutils.updater.change.Changes;
import org.geysermc.floodgate.crypto.FloodgateCipher; import org.geysermc.floodgate.crypto.FloodgateCipher;
import org.geysermc.floodgate.crypto.KeyProducer; import org.geysermc.floodgate.crypto.KeyProducer;
@@ -46,6 +46,7 @@ public final class ConfigLoader {
private final KeyProducer keyProducer; private final KeyProducer keyProducer;
private final FloodgateCipher cipher; private final FloodgateCipher cipher;
private final TemplateReader reader;
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends FloodgateConfig> T load() { public <T extends FloodgateConfig> T load() {
@@ -64,7 +65,7 @@ public final class ConfigLoader {
ConfigUtilities.builder() ConfigUtilities.builder()
.fileCodec(PathFileCodec.of(dataDirectory)) .fileCodec(PathFileCodec.of(dataDirectory))
.configFile("config.yml") .configFile("config.yml")
.templateReader(ResourceTemplateReader.of(getClass())) .templateReader(reader)
.template(templateFile) .template(templateFile)
.changes(Changes.builder() .changes(Changes.builder()
.version(1, Changes.versionBuilder() .version(1, Changes.versionBuilder()

View File

@@ -40,6 +40,8 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import lombok.RequiredArgsConstructor; 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.event.PostOrder;
import org.geysermc.floodgate.addon.data.HandshakeHandlersImpl; import org.geysermc.floodgate.addon.data.HandshakeHandlersImpl;
import org.geysermc.floodgate.api.FloodgateApi; import org.geysermc.floodgate.api.FloodgateApi;
@@ -75,6 +77,12 @@ import org.geysermc.floodgate.util.LanguageManager;
public class CommonModule extends AbstractModule { public class CommonModule extends AbstractModule {
private final EventBus eventBus = new EventBus(); private final EventBus eventBus = new EventBus();
private final Path dataDirectory; private final Path dataDirectory;
private final TemplateReader reader;
public CommonModule(Path dataDirectory) {
this.dataDirectory = dataDirectory;
this.reader = ResourceTemplateReader.of(ConfigLoader.class);
}
@Override @Override
protected void configure() { protected void configure() {
@@ -154,7 +162,7 @@ public class CommonModule extends AbstractModule {
@Named("configClass") Class<? extends FloodgateConfig> configClass, @Named("configClass") Class<? extends FloodgateConfig> configClass,
KeyProducer producer, KeyProducer producer,
FloodgateCipher cipher) { FloodgateCipher cipher) {
return new ConfigLoader(dataDirectory, configClass, producer, cipher); return new ConfigLoader(dataDirectory, configClass, producer, cipher, reader);
} }
@Provides @Provides

View File

@@ -29,6 +29,7 @@ import com.google.inject.Provides;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.google.inject.name.Named; import com.google.inject.name.Named;
import java.nio.file.Path; import java.nio.file.Path;
import org.geysermc.configutils.file.template.TemplateReader;
import org.geysermc.floodgate.api.SimpleFloodgateApi; import org.geysermc.floodgate.api.SimpleFloodgateApi;
import org.geysermc.floodgate.config.FloodgateConfig; import org.geysermc.floodgate.config.FloodgateConfig;
@@ -37,6 +38,11 @@ public final class ServerCommonModule extends CommonModule {
super(dataDirectory); super(dataDirectory);
} }
// Used in floodgate-fabric to provide it's own reader implementation
public ServerCommonModule(Path dataDirectory, TemplateReader reader) {
super(dataDirectory, reader);
}
@Override @Override
protected void configure() { protected void configure() {
super.configure(); super.configure();