Download Simple Config — Minecraft Mods — ModStock
Simple Config

Simple Config

Active

Downloads

0

Last update

1 year ago

Versions

1.20.4
Client
Fabric
Neoforge
Forge
Libraries
Utils

Simple Config

Simple Config is a Kotlin Fabric Minecraft mod that allows you to easily manage your mod's configuration. It provides a simple and intuitive API to read and write configuration data. The data will be serialized with the JSONformat.

Usage

Here's a basic example of how to use Simple Config:

object TutorialMod : ModInitializer {
  private val logger = LoggerFactory.getLogger("tutorialmod")

  override fun onInitialize() {

    //Access Data
    MyConfig.data.someNestedObject.someData
    MyConfig.data.someString // returns "hello"

    //write Data
    MyConfig.patch {
      someString = "Hello World!"
      someNumber = 0.07
    }

    MyConfig.data.someString // returns "Hello World!"

    logger.info("Hello I am using Simple Config!")
  }
}

When you write data using the patch method, it will automatically be written to the file.

Command

You can also reload your config with /simpleconfig [fileName] command or you can reload all Simple Config's with the /simpleconfig all command.

Configuration

To create a config, you need to create an object that extends SimpleConfig<T>. T can be any class as long as it has the @Serializable annotation. You must override fileName!

Here's an example:

object MyConfig: SimpleConfig<SomeDataClass>(defaultValue = SomeDataClass()) {
  override var fileName = "tutorialmod_config"
}

@Serializable
data class SomeDataClass(
  var someNumber: Double = 2.0,
  var someString: String = "hello",
  var someNestedObject: SomeNestedClass = SomeNestedClass()
)

@Serializable
class SomeNestedClass {
  var someData = LocalDate.parse("2024-01-01")
}

Optional values you can override: | Options | Description | default | |--------------------------|------------------------------------------------|------------------------------------------------------| | fileEnding | The file extension that should be used | ".json" | | path | The path the config will be written to | FabricLoader.getInstance().configDir | | createReloadCommand | Should Simple Config register a reload command | true | | json | The Json settings used for the serialization | Json { prettyPrint = true; encodeDefaults = true } |

Gradle Setup

To set up Simple Config via Gradle, add the following to your build.gradle file:


plugins {
  [...]
  id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.22'
}

repositories {
  [...]
  maven { url 'https://jitpack.io' }
}

dependencies {
  [...]
  modImplementation 'com.github.JonasSeifried:SimpleConfig:1623553e8f'
}

Troubleshooting

If you encounter any issues while using Simple Config, please check the GitHub issues page. If your issue is not listed there, feel free to open a new issue.

License

Simple Config is licensed under the MIT License.