diff --git a/src/client/java/com/bawnorton/bettertrims/client/BetterTrimsClient.java b/src/client/java/com/bawnorton/bettertrims/client/BetterTrimsClient.java
index fd5c600..84dbe1a 100644
--- a/src/client/java/com/bawnorton/bettertrims/client/BetterTrimsClient.java
+++ b/src/client/java/com/bawnorton/bettertrims/client/BetterTrimsClient.java
@@ -5,8 +5,8 @@
import com.bawnorton.bettertrims.client.impl.YACLImpl;
import com.bawnorton.bettertrims.client.networking.ClientNetworking;
import com.bawnorton.bettertrims.compat.Compat;
+import com.bawnorton.bettertrims.config.Config;
import net.fabricmc.api.ClientModInitializer;
-import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.ConfirmScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -19,25 +19,30 @@
import java.net.URI;
public class BetterTrimsClient implements ClientModInitializer {
- public static final Logger LOGGER = LoggerFactory.getLogger(BetterTrims.MOD_ID);
+ public static final Logger LOGGER = LoggerFactory.getLogger(BetterTrims.MOD_ID);
- public static Screen getConfigScreen(Screen parent) {
- if (Compat.isYaclLoaded()) {
- return YACLImpl.getScreen(parent);
- } else {
- return new ConfirmScreen((result) -> {
- if (result) {
- Util.getOperatingSystem().open(URI.create("https://modrinth.com/mod/yacl/versions"));
- }
- MinecraftClient.getInstance().setScreen(parent);
- }, Text.of("Yet Another Config Lib not installed!"), Text.of("YACL 3 is required to edit the config in game, would you like to install YACL 3?"), ScreenTexts.YES, ScreenTexts.NO);
- }
- }
+ public static Screen getConfigScreen(Screen parent) {
+ if (Compat.isYaclLoaded()) {
+ return YACLImpl.getScreen(parent);
+ } else {
+ return new ConfirmScreen((result) -> {
+ if (result) {
+ Util.getOperatingSystem().open(URI.create("https://modrinth.com/mod/yacl/versions"));
+ }
+ MinecraftClient.getInstance().setScreen(parent);
+ }, Text.translatable("bettertrims.yacl.not_installed"), Text.of("bettertrims.yacl.not_installed.desc"), ScreenTexts.YES, ScreenTexts.NO);
+ }
+ }
- @Override
- public void onInitializeClient() {
- LOGGER.debug("Initializing Better Trims Client");
- ClientNetworking.init();
- EventHandler.init();
- }
+ public static Config getConfig() {
+ if (ClientNetworking.isConnectedToDedicated()) return Config.getServerInstance();
+ return Config.getLocalInstance();
+ }
+
+ @Override
+ public void onInitializeClient() {
+ LOGGER.debug("Initializing Better Trims Client");
+ ClientNetworking.init();
+ EventHandler.init();
+ }
}
\ No newline at end of file
diff --git a/src/client/java/com/bawnorton/bettertrims/client/impl/YACLImpl.java b/src/client/java/com/bawnorton/bettertrims/client/impl/YACLImpl.java
index df52ed0..f73afe1 100644
--- a/src/client/java/com/bawnorton/bettertrims/client/impl/YACLImpl.java
+++ b/src/client/java/com/bawnorton/bettertrims/client/impl/YACLImpl.java
@@ -2,7 +2,6 @@
import com.bawnorton.bettertrims.BetterTrims;
import com.bawnorton.bettertrims.client.networking.ClientNetworking;
-import com.bawnorton.bettertrims.config.Config;
import com.bawnorton.bettertrims.config.ConfigManager;
import com.bawnorton.bettertrims.config.option.NestedConfigOption;
import com.bawnorton.bettertrims.config.option.OptionType;
@@ -26,33 +25,37 @@ public static Screen getScreen(Screen parent) {
return YetAnotherConfigLib.createBuilder()
.title(title("main"))
.category(ConfigCategory.createBuilder()
- .name(category("general"))
- .tooltip(tooltip("general"))
- .group(OptionGroup.createBuilder()
- .name(group("game"))
- .description(OptionDescription.of(description("game")))
- .options(generateOptionsForType(OptionType.GAME))
- .build())
- .group(OptionGroup.createBuilder()
- .name(group("vanilla"))
- .description(OptionDescription.of(description("vanilla")))
- .options(generateOptionsForType(OptionType.VANILLA))
- .build())
- .group(OptionGroup.createBuilder()
- .name(group("added.vanilla"))
- .description(OptionDescription.of(description("added.vanilla")))
- .options(generateOptionsForType(OptionType.ADDED_VANILLA))
- .build())
- .group(OptionGroup.createBuilder()
- .name(group("modded"))
- .description(OptionDescription.of(description("modded")))
- .options(generateOptionsForType(OptionType.MODDED))
- .build())
- .build())
+ .name(category("general"))
+ .tooltip(tooltip("general"))
+ .group(OptionGroup.createBuilder()
+ .name(group("game"))
+ .description(OptionDescription.of(description("game")))
+ .options(generateOptionsForType(OptionType.GAME))
+ .build())
+ .group(OptionGroup.createBuilder()
+ .name(group("vanilla"))
+ .description(OptionDescription.of(description("vanilla")))
+ .options(generateOptionsForType(OptionType.VANILLA))
+ .build())
+ .group(OptionGroup.createBuilder()
+ .name(group("added.vanilla"))
+ .description(OptionDescription.of(description("added.vanilla")))
+ .options(generateOptionsForType(OptionType.ADDED_VANILLA))
+ .build())
+ .group(OptionGroup.createBuilder()
+ .name(group("modded"))
+ .description(OptionDescription.of(description("modded")))
+ .options(generateOptionsForType(OptionType.MODDED))
+ .build())
+ .build())
.save(() -> {
- ConfigManager.saveConfig();
boolean inWorld = MinecraftClient.getInstance().world != null;
- if(inWorld) ClientNetworking.trySendConfigToServer();
+ if (inWorld && ClientNetworking.isConnectedToDedicated()) {
+ ClientNetworking.trySendConfigToServer();
+ return;
+ }
+
+ ConfigManager.saveLocalConfig();
})
.build()
.generateScreen(parent);
@@ -60,11 +63,11 @@ public static Screen getScreen(Screen parent) {
private static Collection extends Option>> generateOptionsForType(OptionType type) {
Collection