Jump to content
  • Home
  • Files
  • Docs
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [1.16.4] Config file will not update.
Currently Supported: 1.16.X (Latest) and 1.15.X (LTS)
Sign in to follow this  
Followers 0
metword

[1.16.4] Config file will not update.

By metword, January 13 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 13 (edited)

Hello, I am having problems with my config file. Whenever I make changes in the file, they do not transfer over into my config variable.

 

Changes made in the config are not changing the actual config variable.

 

Config builder:

package com.metword.minecraftmod.config;

import com.electronwill.nightconfig.core.file.CommentedFileConfig;
import com.electronwill.nightconfig.core.io.WritingMode;
import com.metword.minecraftmod.ExampleMod;
import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.fml.common.Mod;

import java.io.File;

@Mod.EventBusSubscriber

public class Config {
    private static final ForgeConfigSpec.Builder server_builder = new ForgeConfigSpec.Builder();
    public static final ForgeConfigSpec server_config;
    private static final ForgeConfigSpec.Builder client_builder = new ForgeConfigSpec.Builder();
    public static final ForgeConfigSpec client_config;

    static {
        TextConfig.init(server_builder, client_builder);

        server_config = server_builder.build();
        client_config = client_builder.build();
    }

    public static void loadConfig(ForgeConfigSpec config, String path) {

        ExampleMod.LOGGER.info("Loading Config: " + path);
        final CommentedFileConfig file = CommentedFileConfig.builder(new File(path)).sync().autosave().writingMode(WritingMode.REPLACE).build();
        ExampleMod.LOGGER.info("Built Config: " + path);
        file.load();
        ExampleMod.LOGGER.info("Loaded Config: " + path);
        config.setConfig(file);
    }
}

 

Config loader:

ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Config.server_config);
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Config.client_config);

Config.loadConfig(Config.client_config, FMLPaths.CONFIGDIR.get().resolve("minecraftmod.client.toml").toString());
Config.loadConfig(Config.server_config, FMLPaths.CONFIGDIR.get().resolve("minecraftmod.server.toml").toString());

 

Edited January 13 by metword
  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 13

Do not force load the configuration file. The client and common config will be available after registry and before common setup while the server isn't present until the associated server loads for the first time (these are on a per-save instance).

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 13 (edited)
37 minutes ago, ChampionAsh5357 said:

Do not force load the configuration file

So I should remove the Config Loader code?

 

I'm a little confused what you mean by this.

 

Edited January 13 by metword
  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 13
2 hours ago, metword said:

So I should remove the Config Loader code?

Yes, you should not even need to reference this at all.

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 13
32 minutes ago, ChampionAsh5357 said:

Yes, you should not even need to reference this at all.

I am still having issues. The config still reverts to the default value.

  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 14
3 hours ago, metword said:

I am still having issues. The config still reverts to the default value.

When and how are you trying to access the values?

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 14
4 hours ago, ChampionAsh5357 said:

When and how are you trying to access the values?

I’m trying to use the value as a string in my main class.

  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 14

And when are you trying to access the value?

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 16 (edited)

Here:


"Config variable that will not update" is the variable that I'm trying to access. It simply reverts to the default value.

 

// Do something when certain thing is said in chat

    public static final Minecraft mc = Minecraft.getInstance();

    boolean serverFound = false;

    @SubscribeEvent
    public void onChat (ClientChatReceivedEvent event)
    {
        // Logger
        LOGGER.info("serverFound is now " + serverFound);

        String message = event.getMessage().getString();
        if (message.contains("CONFIG VARIABLE THAT WILL NOT UPDATE"))
        {
            serverFound = true;

            // Logger
            LOGGER.info("serverFound has been set to true");
        }

        if ((message.contains("entered the world.") && serverFound) == true)
        {

            // Logger
            LOGGER.info("serverFound is now true");

            Minecraft.getInstance().player.sendChatMessage("/teleport 0 150 0");
            serverFound = false;

            // Logger
            LOGGER.info("serverFound has been set to false");
        }
    }

}

 

Edited January 16 by metword
  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 16 (edited)

Does anyone know how to fix my problem?

Its some issue with the text edit file and the code not syncing. The text edit file for config not updating the code.

Edited January 17 by metword
  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 17
2 hours ago, metword said:

Does anyone know how to fix my problem?

Patience, you can't expect everyone to get back so fast. As for the issue, it probably is that your singleton reference to the configuration is not actually linked to the spec for updating the variables. I would suggest looking at how forge sets up their configuration. However, these are all guesses as they are snippets of code and not the entire repository context.

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 17
1 hour ago, ChampionAsh5357 said:

it probably is that your singleton reference to the configuration is not actually linked to the spec for updating the variables.

Sorry, after reading the Minecraft Forge code I am still confused at how to link these two...

  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 17

Please link your repository then. I'm questioning a few things regarding that TextConfig class and context surrounding what you are using on the client and server configuration.

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 17

https://github.com/metword/TextReaderMod

  • Quote

Share this post


Link to post
Share on other sites

ChampionAsh5357    161

ChampionAsh5357

ChampionAsh5357    161

  • World Shaper
  • ChampionAsh5357
  • Members
  • 161
  • 1021 posts
Posted January 17

It seems your testing if the value changed using the logger, which will always be the default value when first initialized.

 

This is not to mention that the entirety of the code is reaching across sides and still trying to force load the config.

  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 17

??? The logger is just to help me read more clearly what is going on in the code.

 

I am still confused how I should connect the two.

  • Quote

Share this post


Link to post
Share on other sites

diesieben07    7614

diesieben07

diesieben07    7614

  • Reality Controller
  • diesieben07
  • Forum Team
  • 7614
  • 55193 posts
Posted January 17
  • Your repository is incomplete. The MDK comes with a properly configured .gitignore file, please use it and a proper Git client instead of uploading via the web interface.
  • You do not own metword.com. Do not use it as your package name.
  • You are registering your config as a server config, this means it will be separate per World (read the javadocs).
  • You should not be loading your config manually. Forge does this for you.
  • Your mod will crash on servers. If you have a client-only mod, it should just do nothing when installed on the server.
  • Quote

Share this post


Link to post
Share on other sites

metword    0

metword

metword    0

  • Tree Puncher
  • metword
  • Members
  • 0
  • 17 posts
Posted January 17

Thank you all so much. Loading the config was my problem.

I think it is all in order now!

  • Quote

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

    • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 0
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • DaemonUmbra
      net.minecraft.world.biome.biome$category cannot be cast to java.lang.string

      By DaemonUmbra · Posted 4 hours ago

      Same answer  
    • DaemonUmbra
      1.12.2 won’t install

      By DaemonUmbra · Posted 4 hours ago

      1.12 is no longer supported on this forum. Please update to a modern version of Minecraft to receive support.
    • DaemonUmbra
      1.16.5 Modpack "Missing License Information"

      By DaemonUmbra · Posted 4 hours ago

      This is either a bug in a mod, or you installed mods that won't work with your current version of Minecraft. Note that mods are rarely ever compatible with multiple versions of Minecraft.
    • kiou.23
      [1.16.4] Custom item enchantability

      By kiou.23 · Posted 4 hours ago

      well obviously, Enchantment#canApply(), calls ItemStack#CanApplyAtEnchantingTable(), which calls Item#canApplyAtEnchantingTable. Therefore, you got yourself an infinite loop...
    • AndrewLI
      World creation in 1.16.x

      By AndrewLI · Posted 4 hours ago

      Hi I want to write a new mod in forge 1.16.4, which should generate a new (water) world, and add later the usual blocks there. But I found only old tutorials, that use IWorldGenerator. And I cannot find a new (json-based) world generator. Does anyone know a tutorial or documentation of the new world generation?
  • Topics

    • LOLCREW
      3
      net.minecraft.world.biome.biome$category cannot be cast to java.lang.string

      By LOLCREW
      Started January 8

    • Winterlotus16
      1
      1.12.2 won’t install

      By Winterlotus16
      Started 5 hours ago

    • elliotfoxk
      1
      1.16.5 Modpack "Missing License Information"

      By elliotfoxk
      Started 5 hours ago

    • AzizD
      4
      [1.16.4] Custom item enchantability

      By AzizD
      Started 7 hours ago

    • AndrewLI
      0
      World creation in 1.16.x

      By AndrewLI
      Started 4 hours ago

  • Who's Online (See full list)

    • LK1905
    • PyRoTheLifeLess
    • Alienboy
    • Trhod177
    • FireInfinity
    • Bluperman949
    • Shadowglider667
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [1.16.4] Config file will not update.
  • Theme

Copyright © 2019 ForgeDevelopment LLC · Ads by Longitude Ads LLC Powered by Invision Community