Skip to content

Latest commit

 

History

History
128 lines (98 loc) · 4.21 KB

README.md

File metadata and controls

128 lines (98 loc) · 4.21 KB

FzzyConfig

Depending on Fzzy Config

Add the following to your build script to depend on Fzzy Config:

Repositories section

// build.gradle.kts

//version 0.4.3 or higher:
maven {
    name = "FzzyMaven"
    url = uri("https://maven.fzzyhmstrs.me/")
}

//version 0.4.2 or lower:
maven {
    name = "Modrinth"
    url = uri("https://api.modrinth.com/maven")
    content {
        includeGroup("maven.modrinth")
    }
}

//for (neo)forge
maven {
    url = URI("https://thedarkcolour.github.io/KotlinForForge/")
}
// build.gradle

//version 0.4.3 or higher
maven {
    name = "FzzyMaven"
    url = "https://maven.fzzyhmstrs.me/"
}

//version 0.4.2 or lower
maven {
    name = "Modrinth"
    url = "https://api.modrinth.com/maven"
    content {
        includeGroup "maven.modrinth"
    }
}

//for (neo)forge
maven {
    url = "https://thedarkcolour.github.io/KotlinForForge/"
}

Dependencies section:

Version names will be in the form x.x.x+[mc_version], e.g. 0.4.3+1.21. For (Neo)Forge builds, add +neoforge for 1.20.4+ and +forge for 1.20.1.

Either CurseForge, Modrinth, or the Maven itself can be used to see the current version listings.

// build.gradle.kts

//version 0.4.3 or higher
val fzzyConfigVersion: String by project //define this in your gradle.properties file
modImplementation("me.fzzyhmstrs:fzzy_config:$fzzyConfigVersion") //NOTE: underscore, not hyphen!

//version 0.4.2 or lower
val fzzyConfigVersion: String by project //define this in your gradle.properties file
modImplementation("maven.modrinth:fzzy-config:$fzzyConfigVersion")
// build.gradle

//version 0.4.3 or higher
modImplementation "me.fzzyhmstrs:fzzy_config:${project.fzzyConfigVersion}" //NOTE: underscore, not hyphen!

//version 0.4.2 or lower
modImplementation "maven.modrinth:fzzy-config:${project.fzzyConfigVersion}"

NOTE: include or similar jar-in-jar mechanisms is not allowed in the terms of the TDL-M license that Fzzy Config is released under

Fzzy Config is a powerful configuration engine for Minecraft Mods that meets you where you want to be. Quick and dirty or detailed and featureful, Fzzy Config will work with you. It provides a wide array of features above and beyond what you can find in other libraries.

Wiki

Fzzy Configs features are extensively documented on the wiki. Check it out!

documentation button

Documentation

Check out the projects API documentation for detailed overviews of all classes, methods, and so on.

documentation button

Further Help

Stuck? Drop a line in my Discord server and I will help you out.

Join the Discord Button

Features

All the basics

  • Automatic serialization
  • Minimal API with lightweight integration requirements

GUIs

  • Automatic GUI generation based on the layout and content of your config files.
  • Screens are fully keyboard-navigable and narratable out of the box.
  • No need for screen builders or registration.
  • ModMenu and Catalogue automatically integrated.
  • Add Action Buttons to open a wiki site, run a command, and so on.

Synchronization

  • Automatic server-client sync
  • Push live updates to a server from a client
  • Forward client settings to other users who want your setup.

Validation

  • Validation and Correction built into everything, beyond just primitive types.
  • Tightly control what values a player can choose from and how they choose them.
  • Automatic suggestions for settings like tags and identifiers.

Updates

  • Versioned Updates supported with one simple method implementation
  • Scrape previous configs to easily update from another config library

Flexibility

  • Implement a config with as little or much effort as you want
  • Plain java object, or Minecraft GameOptions-like carefully crafted settings