Jump to content

Sokas

Members
  • Posts

    2
  • Joined

  • Last visited

Sokas's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. Hi, I configured a value to be false in my config, but when I load a world, it changes to true, and the config file does not change. I confirmed it while debugging. I'm using it as a loot table condition. It's raw_squid - so squids should drop meat when killed. Config class: package com.sokas.Mokas.config; import java.io.File; import com.electronwill.nightconfig.core.file.CommentedFileConfig; import com.electronwill.nightconfig.core.io.WritingMode; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; import net.minecraftforge.common.ForgeConfigSpec.Builder; import net.minecraftforge.common.ForgeConfigSpec.IntValue; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @EventBusSubscriber public class Config { private static final Builder builder = new Builder(); public static final ForgeConfigSpec config; public static IntValue EGG_FOOD_POINT; public static IntValue RAW_SQUID_FOOD_POINT; public static IntValue COOKED_SQUID_FOOD_POINT; public static IntValue RAW_APPLE_PIE_FOOD_POINT; public static IntValue APPLE_PIE_FOOD_POINT; public static IntValue EGG_SATURATION; public static IntValue RAW_SQUID_SATURATION; public static IntValue COOKED_SQUID_SATURATION; public static IntValue RAW_APPLE_PIE_SATURATION; public static IntValue APPLE_PIE_SATURATION; public static BooleanValue ENDER_PEARL_RECIPE; public static BooleanValue GLOWSTONE_DUST_RECIPE; public static BooleanValue COOKED_EGG; public static BooleanValue RAW_SQUID; public static BooleanValue COOKED_SQUID; public static BooleanValue RAW_APPLE_PIE; public static BooleanValue APPLE_PIE; public static BooleanValue CARDBOARD; public static BooleanValue BOOK; public static BooleanValue FEATHER_WOOL; static { String start = "enable_disable."; ENDER_PEARL_RECIPE = builder.comment(""/*"If this mod's ender pearl recipe should be enabled or not."*/) .define(start + "ender_pearl", true); GLOWSTONE_DUST_RECIPE = builder.comment(""/*"If this mod's glowstone dust recipe should be enabled or not."*/) .define(start + "glowstone_dust", true); COOKED_EGG = builder.comment(""/* If this mod's cooked egg recipe should be enabled or not." */) .define(start + "cooked_egg", true); RAW_SQUID = builder.comment(""/* "If squids drop raw squid or not." */).define(start + "raw_squid", true); COOKED_SQUID = builder.comment(""/* "If raw squid should be cookable or not." */).define(start + "cooked_squid", true); RAW_APPLE_PIE = builder.comment(""/* "If this mod's apple pie recipe should be enabled or not." */) .define(start + "raw_apple_pie", true); APPLE_PIE = builder.comment(""/* "If raw apple pies should be cookable or not." */).define(start + "apple_pie", true); FEATHER_WOOL = builder.comment("").define(start + "feather_wool", true); CARDBOARD = builder.comment("").define(start + "cardboard", true); BOOK = builder.comment("").define(start + "book", true); EGG_FOOD_POINT = builder.comment("How many drumsticks are given by eating a cooked egg.") .defineInRange("cooked_egg.food_point", 3, 2, 4); EGG_SATURATION = builder.comment("How much saturation is given by eating a cooked egg.") .defineInRange("cooked_egg.saturation", 2, 1, 3); RAW_SQUID_FOOD_POINT = builder.comment("How many drumsticks are given by eating a raw squid.") .defineInRange("raw_squid.food_point", 2, 1, 3); RAW_SQUID_SATURATION = builder.comment("How much saturation is given by eating a raw squid.") .defineInRange("raw_squid.saturation", 2, 1, 3); COOKED_SQUID_FOOD_POINT = builder.comment("How many drumsticks are given by eating a cooked squid.") .defineInRange("cooked_squid.food_point", 4, 3, 5); COOKED_SQUID_SATURATION = builder.comment("How much saturation is given by eating a cooked squid.") .defineInRange("cooked_squid.saturation", 4, 3, 5); RAW_APPLE_PIE_FOOD_POINT = builder.comment("How many drumsticks are given by eating a raw apple pie.") .defineInRange("raw_apple_pie.food_point", 3, 1, 10); RAW_APPLE_PIE_SATURATION = builder.comment("How much saturation is given by eating a raw apple pie.") .defineInRange("raw_apple_pie.saturation", 4, 1, 8); APPLE_PIE_FOOD_POINT = builder.comment("How many drumsticks are given by eating an apple pie.") .defineInRange("apple_pie.food_point", 5, 5, 20); APPLE_PIE_SATURATION = builder.comment("How much saturation is given by eating an apple pie.") .defineInRange("apple_pie.saturation", 6, 3, 12); config = builder.build(); } public static void loadConfig(ForgeConfigSpec config, String path) { final CommentedFileConfig file = CommentedFileConfig.builder(new File(path)).sync().autosave() .preserveInsertionOrder().writingMode(WritingMode.REPLACE).build(); file.load(); config.setConfig(file); } } Config: [cooked_egg] #How much saturation is given by eating a cooked egg. #Range: 1 ~ 3 saturation = 2 #How many drumsticks are given by eating a cooked egg. #Range: 2 ~ 4 food_point = 3 [raw_squid] #How much saturation is given by eating a raw squid. #Range: 1 ~ 3 saturation = 2 #How many drumsticks are given by eating a raw squid. #Range: 1 ~ 3 food_point = 2 [cooked_squid] #How much saturation is given by eating a cooked squid. #Range: 3 ~ 5 saturation = 4 #How many drumsticks are given by eating a cooked squid. #Range: 3 ~ 5 food_point = 4 [raw_apple_pie] #How much saturation is given by eating a raw apple pie. #Range: 1 ~ 8 saturation = 4 #How many drumsticks are given by eating a raw apple pie. #Range: 1 ~ 10 food_point = 3 [apple_pie] #How much saturation is given by eating an apple pie. #Range: 3 ~ 12 saturation = 6 #How many drumsticks are given by eating an apple pie. #Range: 5 ~ 20 food_point = 5 [enable_disable] cooked_squid = true feather_wool = true apple_pie = true glowstone_dust = true book = true ender_pearl = true cooked_egg = true cardboard = true raw_apple_pie = true raw_squid = false Main class: package com.sokas.Mokas; import static net.minecraftforge.common.crafting.CraftingHelper.register; import java.io.File; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.sokas.Mokas.config.Config; import com.sokas.Mokas.recipes.ApplePieCondition; import com.sokas.Mokas.recipes.BookCondition; import com.sokas.Mokas.recipes.CardboardCondition; import com.sokas.Mokas.recipes.CookedEggCondition; import com.sokas.Mokas.recipes.CookedSquidCondition; import com.sokas.Mokas.recipes.EnderPearlCondition; import com.sokas.Mokas.recipes.FeatherWoolCondition; import com.sokas.Mokas.recipes.GlowstoneDustCondition; import com.sokas.Mokas.recipes.RawApplePieCondition; import com.sokas.Mokas.recipes.RawSquidLootCondition; import com.sokas.Mokas.setup.Registration; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.loading.FMLPaths; @Mod(Main.MOD_ID) public class Main { public static final String MOD_ID = "mokas"; public static File config; public static Logger logger = LogManager.getLogger(MOD_ID); public Main() { Registration.register(); ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Config.config); Config.loadConfig(Config.config, FMLPaths.CONFIGDIR.get().resolve(MOD_ID + ".toml").toString()); register(new EnderPearlCondition.Serializer()); register(new GlowstoneDustCondition.Serializer()); register(new ApplePieCondition.Serializer()); register(new BookCondition.Serializer()); register(new CardboardCondition.Serializer()); register(new CookedEggCondition.Serializer()); register(new CookedSquidCondition.Serializer()); register(new FeatherWoolCondition.Serializer()); register(new RawApplePieCondition.Serializer()); RawSquidLootCondition.load(); MinecraftForge.EVENT_BUS.register(this); } } Condition class: package com.sokas.Mokas.recipes; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; import com.google.gson.JsonSerializationContext; import com.sokas.Mokas.Main; import com.sokas.Mokas.config.Config; import com.sokas.Mokas.setup.LootHelpers; import net.minecraft.loot.ILootSerializer; import net.minecraft.loot.LootConditionType; import net.minecraft.loot.LootContext; import net.minecraft.loot.conditions.ILootCondition; import net.minecraft.util.ResourceLocation; public class RawSquidLootCondition implements ILootCondition { private static final LootConditionType TYPE = LootHelpers.registerCondition( new ResourceLocation(Main.MOD_ID, "raw_squid_condition"), new RawSquidLootCondition.Serializer()); @Override public boolean test(LootContext t) { return Config.RAW_SQUID.get(); } @Override public LootConditionType func_230419_b_() { return TYPE; } public static void load() { // Dummy call, to enforce class loading } public static class Serializer implements ILootSerializer<RawSquidLootCondition> { public static final Serializer INSTANCE = new Serializer(); @Override public void serialize(JsonObject p_230424_1_, RawSquidLootCondition p_230424_2_, JsonSerializationContext p_230424_3_) { } @Override public RawSquidLootCondition deserialize(JsonObject p_230423_1_, JsonDeserializationContext p_230423_2_) { return new RawSquidLootCondition(); } } } json: { "type": "minecraft:entity", "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "mokas:raw_squid", "functions": [ { "function": "minecraft:set_count", "count": 1 } ] } ], "conditions": [ { "condition": "mokas:raw_squid_condition" } ] }, { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:ink_sac", "functions": [ { "function": "minecraft:set_count", "count": { "min": 1, "max": 3 } }, { "function": "minecraft:looting_enchant", "count": { "min": 0, "max": 1 } } ] } ] } ] } Thanks in advance!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.