Skip to content

Commit

Permalink
Port the backport's improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
EnnuiL committed Mar 24, 2023
1 parent 814b67f commit 28e169d
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 6 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ org.gradle.jvmargs = -Xmx1G
org.gradle.parallel = true

# Mod Properties
version = 1.0.3
version = 1.0.4
maven_group = io.github.ennuil
archives_base_name = boring_default_game_rules

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@Processor("setSerializer")
public class ModConfig extends WrappedConfig {
// wait, how in the world is this working???
public final String $schema = ModConfigManager.GENERATE_ME;
public final String $schema = ModConfigManager.GENERATE_ME_MAYBE;
public final ValueMap<Object> default_game_rules = ValueMap.builder((Object) "").build();
public final boolean generate_json_schema = true;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
@SuppressWarnings("unchecked")
public class ModConfigManager {
public static final String GENERATE_ME = "GENERATE_ME";
public static final String GENERATE_ME_MAYBE = "GENERATE_ME_MAYBE";
public static final Path SCHEMA_DIRECTORY_PATH = QuiltLoader.getConfigDir().resolve("boring_default_game_rules");
public static final Path SCHEMA_PATH = SCHEMA_DIRECTORY_PATH.resolve("config.schema.json");
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
Expand Down Expand Up @@ -87,8 +88,9 @@ public static void prepareSchema() {
}
}

if (SCHEMA.value().equals(GENERATE_ME)) {
SCHEMA.setValue(SCHEMA_PATH.toUri().toString(), false);
switch (SCHEMA.value()) {
case GENERATE_ME -> SCHEMA.setValue(SCHEMA_PATH.toUri().toString(), false);
case GENERATE_ME_MAYBE -> SCHEMA.setValue(GENERATE_JSON_SCHEMA.value() ? SCHEMA_PATH.toUri().toString() : "", false);
}

if (generateNewSchema) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ private <E extends Enum<E>> void overrideDefaults(CallbackInfo info) {
} else if (rule instanceof BooleanRule booleanRule) {
booleanRule.set((Boolean) defaultValue, null);
} else if (rule instanceof DoubleRule doubleRule) {
((DoubleRuleAccessor)(Object) doubleRule).setValue(((Number) defaultValue).doubleValue());
((DoubleRuleAccessor) (Object) doubleRule).setValue(((Number) defaultValue).doubleValue());
((RuleAccessor) (Object) doubleRule).callChanged(null);
} else if (rule instanceof EnumRule enumRule) {
enumRule.set(Enum.valueOf(enumRule.getEnumClass(), (String) defaultValue), null);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package io.github.ennuil.boring_default_game_rules.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

import net.minecraft.server.MinecraftServer;
import net.minecraft.world.GameRules;

@Mixin(GameRules.Rule.class)
public interface RuleAccessor {
@Invoker
void callChanged(MinecraftServer server);
}
3 changes: 2 additions & 1 deletion src/main/resources/boring_default_game_rules.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
"DoubleRuleAccessor",
"EnumRuleAccessor",
"GameRulesAccessor",
"GameRulesMixin"
"GameRulesMixin",
"RuleAccessor"
],
"injectors": {
"defaultRequire": 1
Expand Down

0 comments on commit 28e169d

Please sign in to comment.