Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Sokas

Members
  • Joined

  • Last visited

  1. Sokas joined the community
  2. 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!

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.