diff --git a/gradle.properties b/gradle.properties index b7aac9ba84..34d200316c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=df6eb7c8b8 +archash=765d14b16f diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 585fa5ad32..9886b96e83 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -691,7 +691,7 @@ public class ServerControl implements ApplicationListener{ Jval base = readRulesFile(); if(arg.length == 0){ - info("Rules:\n@", Jval.read(base.toJson(OutputType.minimal)).toString(Jformat.hjson)); + info("Rules:\n@", base.toString(Jformat.hjson)); }else if(arg.length == 1){ err("Invalid usage. Specify which rule to remove or add."); }else{ @@ -716,24 +716,19 @@ public class ServerControl implements ApplicationListener{ } try{ - Jval value = new JsonReader().parse(arg[2]); - value.name = arg[1]; + String name = arg[1]; + Jval value = Jval.read(arg[2]); + base.put(name, value); - Jval parent = new Jval(ValueType.object); - parent.addChild(value); + JsonIO.json.readField(state.rules, name, base); - JsonIO.json.readField(state.rules, value.name, parent); - if(base.has(value.name)){ - base.remove(value.name); - } - base.addChild(arg[1], value); info("Changed rule: @", value.toString().replace("\n", " ")); }catch(Throwable e){ err("Error parsing rule JSON: @", e.getMessage()); } } - rulesFile.writeString(Jval.read(base.toString()).toString(Jformat.hjson)); + rulesFile.writeString(base.toString(Jformat.hjson)); Call.setRules(state.rules); } });