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 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 extends FloodgateConfig> 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()

View File

@@ -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<? extends FloodgateConfig> configClass,
KeyProducer producer,
FloodgateCipher cipher) {
return new ConfigLoader(dataDirectory, configClass, producer, cipher);
return new ConfigLoader(dataDirectory, configClass, producer, cipher, reader);
}
@Provides

View File

@@ -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();