package com.hea3ven.hardmodetweaks.gamerules;
import net.minecraft.world.GameRules;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Property.Type;
import com.hea3ven.tools.commonutils.mod.ProxyModModule;
import com.hea3ven.tools.commonutils.mod.config.FileConfigManagerBuilder.CategoryConfigManagerBuilder;
public class ProxyModHardModeTweaksGameRules extends ProxyModModule {
private GameRulesManager rulesManager;
@Override
public CategoryConfigManagerBuilder getConfig() {
CategoryConfigManagerBuilder cfg =
new CategoryConfigManagerBuilder("GameRules").addValue("enableGameRules", "true",
Type.BOOLEAN, "Enable changing the game rules.", property -> {
if (property.getBoolean()) {
if (rulesManager == null) {
rulesManager = new GameRulesManager();
MinecraftForge.EVENT_BUS.register(rulesManager);
}
} else {
if (rulesManager != null) {
MinecraftForge.EVENT_BUS.unregister(rulesManager);
rulesManager = null;
}
}
});
GameRules rules = new GameRules();
for (String ruleName : rules.getRules()) {
cfg = cfg.addValue(ruleName, rules.getString(ruleName), Type.STRING, "", property -> {
GameRulesManager.gameRules.put(property.getName(), property.getString());
}, false, true);
}
return cfg;
}
}