Mod
YACL Synced
No reviews yet
An addon for YetAnotherConfigLib with server-client config synchronization
Provides a framework or library for other mods to use.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
YACL Synced
An addon for YetAnotherConfigLib with server-client config synchronization.
This is a library mod and won't work without any mods that depend on this mod!!!
Why synced?
YACL is a config lib that helps developers create a config with beautiful config screen in Minecraft. But it doesn't support server-client config synchronization. YACL Synced is an addon for YACL that adds the feature.
For developers
Install
// build.gradle
repositories {
maven { // Only needed for forge (YACL needs it)
name = 'Kotlin for Forge'
url = 'https://thedarkcolour.github.io/KotlinForForge/'
}
maven {
name 'Xander Maven'
url 'https://maven.isxander.dev/releases'
}
maven {
name = "Tiger Maven"
url = "https://maven.tigercrl.top/releases/"
}
}
dependencies {
modImplementation "top.tigercrl:YACLSynced-<common/fabric/neoforge>:<version>"
}
Usage
You can define a config in the same way as YACL but with SyncedConfigClassHandler.
public class CommonConfig {
public static final ConfigClassHandler<CommonConfig> HANDLER = SyncedConfigClassHandler.createBuilder(CommonConfig.class)
.id(YACLPlatform.rl("yacl3-test", "config"))
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(YACLPlatform.getConfigDir().resolve("yacl-test-v2.json5"))
.setJson5(true)
.build())
.build();
// ...
}
On both sides, you can use HANDLER.instance() in the same way to get the config instance.
On client side, you can also use HANDLER.localInstance() and HANDLER.remoteInstance() to get the local and remote config instances in a server.
Config mismatch detect
You can use @OptionFlags to define option flags for an autogen config
It's same as using Option.Builder.flag(...OptionFlag flag) in YACL
public class CommonConfig {
@AutoGen(category = "test", group = "test")
@SerialEntry(comment = "This option requires game restart")
@OptionFlags({OptionFlags.FlagType.GAME_RESTART})
@BooleanFlag
public boolean myOption = true;
}
But by using @OptionFlags, YACL Synced will detect the config mismatch when joining a server and show a warning screen.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers