diff --git a/src/main/java/net/thenextlvl/portals/PortalsPlugin.java b/src/main/java/net/thenextlvl/portals/PortalsPlugin.java index b6ddf46..fe17291 100644 --- a/src/main/java/net/thenextlvl/portals/PortalsPlugin.java +++ b/src/main/java/net/thenextlvl/portals/PortalsPlugin.java @@ -1,6 +1,9 @@ package net.thenextlvl.portals; +import core.file.FileIO; +import core.file.format.GsonFile; import core.i18n.file.ComponentBundle; +import core.io.IO; import io.papermc.paper.math.Position; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import net.kyori.adventure.key.Key; @@ -43,11 +46,16 @@ public final class PortalsPlugin extends JavaPlugin { public static final String ISSUES = "https://github.com/TheNextLvl-net/portals/issues/new"; private final PaperPortalProvider portalProvider = new PaperPortalProvider(this); - private final PortalConfig portalConfig = SimplePortalConfig.INSTANCE; private EconomyProvider economyProvider = new EmptyEconomyProvider(); private final Metrics metrics = new Metrics(this, 27514); + private final FileIO portalConfig = new GsonFile<>( + IO.of(getDataPath().resolve("config.json")), + new SimplePortalConfig(true, false, true, 0.3), + SimplePortalConfig.class + ).validate().saveIfAbsent(); + private final ComponentBundle bundle = ComponentBundle.builder( Key.key("portals", "translations"), getDataPath().resolve("translations") @@ -59,7 +67,7 @@ public final class PortalsPlugin extends JavaPlugin { public PortalsPlugin() { StaticBinder.getInstance(ActionTypes.class.getClassLoader()).bind(ActionTypes.class, SimpleActionTypes.INSTANCE); StaticBinder.getInstance(ActionTypeRegistry.class.getClassLoader()).bind(ActionTypeRegistry.class, SimpleActionTypeRegistry.INSTANCE); - StaticBinder.getInstance(PortalConfig.class.getClassLoader()).bind(PortalConfig.class, portalConfig); + StaticBinder.getInstance(PortalConfig.class.getClassLoader()).bind(PortalConfig.class, portalConfig.getRoot()); StaticBinder.getInstance(PortalProvider.class.getClassLoader()).bind(PortalProvider.class, portalProvider); registerCommands(); @@ -109,7 +117,7 @@ public ComponentBundle bundle() { @Contract(pure = true) public PortalConfig config() { - return portalConfig; + return portalConfig.getRoot(); } @Contract(value = "_ -> new", pure = true) diff --git a/src/main/java/net/thenextlvl/portals/model/SimplePortalConfig.java b/src/main/java/net/thenextlvl/portals/model/SimplePortalConfig.java index 38eab49..75b2127 100644 --- a/src/main/java/net/thenextlvl/portals/model/SimplePortalConfig.java +++ b/src/main/java/net/thenextlvl/portals/model/SimplePortalConfig.java @@ -6,7 +6,4 @@ public record SimplePortalConfig( boolean pushBackOnEntryDenied, double pushbackSpeed ) implements PortalConfig { - public static final SimplePortalConfig INSTANCE = new SimplePortalConfig( - true, false, true, 0.3 - ); }