Forráskód Böngészése

Split example mod to client and server

Lortseam 3 éve
szülő
commit
9db28ed46c

+ 1 - 14
example/src/main/java/me/lortseam/completeconfig/example/ExampleMod.java

@@ -1,20 +1,7 @@
 package me.lortseam.completeconfig.example;
 
-import net.fabricmc.api.ModInitializer;
-
-public class ExampleMod implements ModInitializer {
+public class ExampleMod {
 
     public static final String MOD_ID = "example";
-    private static Settings settings;
-
-    public static Settings getSettings() {
-        return settings;
-    }
-
-    @Override
-    public void onInitialize() {
-        settings = new Settings();
-        settings.load();
-    }
 
 }

+ 9 - 0
example/src/main/java/me/lortseam/completeconfig/example/ExampleModClient.java

@@ -1,14 +1,23 @@
 package me.lortseam.completeconfig.example;
 
+import me.lortseam.completeconfig.example.config.ClientSettings;
 import me.lortseam.completeconfig.gui.ConfigScreenBuilder;
 import me.lortseam.completeconfig.gui.cloth.ClothConfigScreenBuilder;
 import net.fabricmc.api.ClientModInitializer;
 
 public class ExampleModClient implements ClientModInitializer {
 
+    private static ClientSettings settings;
+
     @Override
     public void onInitializeClient() {
+        settings = new ClientSettings();
+        settings.load();
         ConfigScreenBuilder.setMain(ExampleMod.MOD_ID, new ClothConfigScreenBuilder());
     }
 
+    public static ClientSettings getSettings() {
+        return settings;
+    }
+
 }

+ 20 - 0
example/src/main/java/me/lortseam/completeconfig/example/ExampleModServer.java

@@ -0,0 +1,20 @@
+package me.lortseam.completeconfig.example;
+
+import me.lortseam.completeconfig.example.config.Settings;
+import net.fabricmc.api.DedicatedServerModInitializer;
+
+public class ExampleModServer implements DedicatedServerModInitializer {
+
+    private static Settings settings;
+
+    @Override
+    public void onInitializeServer() {
+        settings = new Settings();
+        settings.load();
+    }
+
+    public static Settings getSettings() {
+        return settings;
+    }
+    
+}

+ 36 - 0
example/src/main/java/me/lortseam/completeconfig/example/config/ClientSettings.java

@@ -0,0 +1,36 @@
+package me.lortseam.completeconfig.example.config;
+
+import me.lortseam.completeconfig.api.ConfigEntries;
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigGroup;
+import me.shedaniel.clothconfig2.api.ModifierKeyCode;
+import net.minecraft.client.util.InputUtil;
+import net.minecraft.text.TextColor;
+import net.minecraft.util.Formatting;
+
+public class ClientSettings extends Settings {
+
+    @Transitive
+    @ConfigEntries
+    private static final class ClientDataTypes implements ConfigGroup {
+
+        private TextColor textColor = TextColor.fromFormatting(Formatting.GREEN);
+        private InputUtil.Key key = InputUtil.UNKNOWN_KEY;
+        private ModifierKeyCode modifierKeyCode = ModifierKeyCode.unknown();
+
+    }
+
+    @Transitive
+    @ConfigEntries
+    public static class Tooltips implements ConfigGroup {
+
+        private boolean defaultOneLine;
+
+        private boolean defaultMultiLine;
+
+        @ConfigEntry(tooltipTranslationKeys = {"customTooltipLine1", "customTooltipLine2"})
+        private boolean custom;
+
+    }
+
+}

+ 4 - 21
example/src/main/java/me/lortseam/completeconfig/example/Settings.java → example/src/main/java/me/lortseam/completeconfig/example/config/Settings.java

@@ -1,20 +1,19 @@
-package me.lortseam.completeconfig.example;
+package me.lortseam.completeconfig.example.config;
 
 import me.lortseam.completeconfig.api.ConfigContainer;
 import me.lortseam.completeconfig.api.ConfigEntries;
 import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigGroup;
 import me.lortseam.completeconfig.data.Config;
-import me.shedaniel.clothconfig2.api.ModifierKeyCode;
+import me.lortseam.completeconfig.example.ExampleMod;
 import me.shedaniel.math.Color;
-import net.minecraft.client.util.InputUtil;
 
 import java.util.Arrays;
 import java.util.List;
 
-public final class Settings extends Config implements ConfigContainer {
+public class Settings extends Config implements ConfigContainer {
 
-    Settings() {
+    public Settings() {
         super(ExampleMod.MOD_ID);
     }
 
@@ -23,7 +22,6 @@ public final class Settings extends Config implements ConfigContainer {
     public static class DataTypes implements ConfigGroup {
 
         private boolean bool;
-        private int integer;
         @ConfigEntry.BoundedInteger(min = 0, max = 10)
         @ConfigEntry.Slider
         private int boundedInt;
@@ -39,8 +37,6 @@ public final class Settings extends Config implements ConfigContainer {
         private List<String> list = Arrays.asList("First entry", "Second entry");
         private String[] array = new String[0];
         private Color color = Color.ofRGB(0, 255, 0);
-        private InputUtil.Key key = InputUtil.UNKNOWN_KEY;
-        private ModifierKeyCode modKey = ModifierKeyCode.unknown();
 
     }
 
@@ -48,17 +44,4 @@ public final class Settings extends Config implements ConfigContainer {
         FOO, BAR, BAZ
     }
 
-    @Transitive
-    @ConfigEntries
-    public static class Tooltips implements ConfigGroup {
-
-        private boolean defaultOneLine;
-
-        private boolean defaultMultiLine;
-
-        @ConfigEntry(tooltipTranslationKeys = {"customTooltipLine1", "customTooltipLine2"})
-        private boolean custom;
-
-    }
-
 }

+ 4 - 0
example/src/main/resources/assets/example/lang/en_us.json

@@ -15,6 +15,10 @@
   "config.example.dataTypes.list": "List",
   "config.example.dataTypes.array": "Array",
   "config.example.dataTypes.color": "Color",
+  "config.example.clientDataTypes": "Client data types",
+  "config.example.clientDataTypes.textColor": "Text Color",
+  "config.example.clientDataTypes.key": "Key",
+  "config.example.clientDataTypes.modifierKeyCode": "Modifier Key Code",
   "config.example.tooltips": "Tooltips",
   "config.example.tooltips.defaultOneLine.tooltip": "A tooltip with a single line",
   "config.example.tooltips.defaultMultiLine.tooltip.0": "A tooltip with multiple lines, this is the first line...",

+ 3 - 3
example/src/main/resources/fabric.mod.json

@@ -9,11 +9,11 @@
   "license": "Apache-2.0",
   "environment": "*",
   "entrypoints": {
-    "main": [
-      "me.lortseam.completeconfig.example.ExampleMod"
-    ],
     "client": [
       "me.lortseam.completeconfig.example.ExampleModClient"
+    ],
+    "server": [
+      "me.lortseam.completeconfig.example.ExampleModServer"
     ]
   },
   "depends": {