Skip to content

Commit c07b45d

Browse files
committed
Migrate GCAPI to YAML files
Comments are broke, I'll fix that later
1 parent cdd368d commit c07b45d

15 files changed

Lines changed: 228 additions & 117 deletions

build.gradle.kts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,11 @@ allprojects {
9999
isTransitive = false
100100
}
101101

102-
implementation("blue.endless:jankson:1.2.1")
103-
// modLocalRuntime("net.glasslauncher.mods:GlassConfigAPI:${project.properties["gcapi_version"]}") {
102+
// implementation("blue.endless:jankson:1.2.1")
103+
implementation("me.carleslc:Simple-Yaml:1.8.4")
104+
// modLocalRuntime("net.glasslauncher:HowManyItems-Fabric-Unofficial:${project.properties["hmi_version"]}") {
104105
// isTransitive = false
105106
// }
106-
modLocalRuntime("net.glasslauncher:HowManyItems-Fabric-Unofficial:${project.properties["hmi_version"]}") {
107-
isTransitive = false
108-
}
109107
// Optional bugfix mod for testing qol. Remove the // to enable.
110108
//modLocalRuntime "maven.modrinth:mojangfix:${project.properties["mojangfix_version"]}"
111109
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package net.modificationstation.stationapi.api.config;
2+
3+
import java.lang.annotation.*;
4+
5+
@Retention(RetentionPolicy.RUNTIME)
6+
public @interface Comment {
7+
String value();
8+
}

glass-config-api-v3/src/main/java/net/modificationstation/stationapi/api/config/ConfigFactoryProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package net.modificationstation.stationapi.api.config;
22

3-
import blue.endless.jankson.JsonElement;
43
import com.google.common.collect.ImmutableMap;
54
import net.modificationstation.stationapi.impl.config.NonFunction;
65
import net.modificationstation.stationapi.impl.config.object.ConfigEntry;
@@ -22,7 +21,7 @@ public interface ConfigFactoryProvider {
2221
* @param immutableBuilder Arguments for the Function are: value.
2322
* Should return a JsonElement containing the serialized value for your custom config type.
2423
*/
25-
void provideSaveFactories(ImmutableMap.Builder<Type, Function<Object, JsonElement>> immutableBuilder);
24+
void provideSaveFactories(ImmutableMap.Builder<Type, Function<Object, Object>> immutableBuilder);
2625

2726
/**
2827
* Return custom factories for certain config class types.

glass-config-api-v3/src/main/java/net/modificationstation/stationapi/api/config/GCAPI.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package net.modificationstation.stationapi.api.config;
22

3-
import blue.endless.jankson.Jankson;
4-
import blue.endless.jankson.JsonObject;
5-
import blue.endless.jankson.api.SyntaxError;
63
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
74
import net.modificationstation.stationapi.impl.config.EventStorage;
85
import net.modificationstation.stationapi.impl.config.GCCore;
96
import net.modificationstation.stationapi.api.util.Identifier;
7+
import net.modificationstation.stationapi.impl.config.GlassYamlFile;
108
import net.modificationstation.stationapi.impl.config.object.ConfigCategory;
119
import org.jetbrains.annotations.Nullable;
1210
import uk.co.benjiweber.expressions.tuple.BiTuple;
1311

12+
import java.io.*;
1413
import java.util.concurrent.atomic.*;
1514

1615
/**
@@ -23,8 +22,8 @@ public class GCAPI {
2322
* @param configID Should be an identifier formatted like mymodid:mygconfigvalue
2423
* @param overrideConfigJson Optional config override JSON. Leave as null to do a plain config reload. JSON can be partial, and missing values from the JSON will be kept.
2524
*/
26-
public static void reloadConfig(Identifier configID, @Nullable String overrideConfigJson) throws SyntaxError {
27-
reloadConfig(configID, Jankson.builder().build().load(overrideConfigJson));
25+
public static void reloadConfig(Identifier configID, @Nullable String overrideConfigJson) throws IOException {
26+
reloadConfig(configID, new GlassYamlFile(overrideConfigJson));
2827
}
2928

3029
/**
@@ -33,7 +32,7 @@ public static void reloadConfig(Identifier configID, @Nullable String overrideCo
3332
* @param overrideConfigJson Optional config override JSON. Leave as null to do a plain config reload. JSON can be partial, and missing values from the JSON will be kept.
3433
*/
3534
@SuppressWarnings("deprecation")
36-
public static void reloadConfig(Identifier configID, @Nullable JsonObject overrideConfigJson) {
35+
public static void reloadConfig(Identifier configID, @Nullable GlassYamlFile overrideConfigJson) {
3736
AtomicReference<Identifier> mod = new AtomicReference<>();
3837
GCCore.MOD_CONFIGS.keySet().forEach(modContainer -> {
3938
if (modContainer.toString().equals(configID.toString())) {
@@ -52,7 +51,7 @@ public static void reloadConfig(Identifier configID, @Nullable JsonObject overri
5251
* @param configID Should be an identifier formatted like mymodid:mygconfigvalue
5352
*/
5453
public static void reloadConfig(Identifier configID) {
55-
reloadConfig(configID, (JsonObject) null);
54+
reloadConfig(configID, (GlassYamlFile) null);
5655
}
5756

5857
}

glass-config-api-v3/src/main/java/net/modificationstation/stationapi/api/config/PreConfigSavedListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.modificationstation.stationapi.api.config;
22

3-
import blue.endless.jankson.JsonObject;
3+
import net.modificationstation.stationapi.impl.config.GlassYamlFile;
44

55
public interface PreConfigSavedListener {
66

@@ -13,5 +13,5 @@ public interface PreConfigSavedListener {
1313
* @param newValues the values that are about to be saved to the config file.
1414
* @see net.modificationstation.stationapi.impl.config.EventStorage.EventSource
1515
*/
16-
void onPreConfigSaved(int source, JsonObject oldValues, JsonObject newValues);
16+
void onPreConfigSaved(int source, GlassYamlFile oldValues, GlassYamlFile newValues);
1717
}

glass-config-api-v3/src/main/java/net/modificationstation/stationapi/impl/config/ConfigFactories.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package net.modificationstation.stationapi.impl.config;
22

3-
import blue.endless.jankson.JsonElement;
43
import com.google.common.collect.ImmutableMap;
54
import net.modificationstation.stationapi.api.config.MaxLength;
65
import net.modificationstation.stationapi.impl.config.object.ConfigEntry;
@@ -11,7 +10,7 @@
1110
public class ConfigFactories {
1211

1312
public static ImmutableMap<Type, NonFunction<String, String, String, Field, Object, Boolean, Object, Object, MaxLength, ConfigEntry<?>>> loadFactories = null;
14-
public static ImmutableMap<Type, Function<Object, JsonElement>> saveFactories = null;
13+
public static ImmutableMap<Type, Function<Object, Object>> saveFactories = null;
1514

1615
@SuppressWarnings("rawtypes")
1716
public static ImmutableMap<Type, Class> loadTypeAdapterFactories = null;

0 commit comments

Comments
 (0)