Advanced Usage
This section summarizes techniques and considerations commonly used in large projects or special requirements.
Static Fields vs Instance Fields
- Static fields:
- Simplest to use, read directly with
MyConfig.section.option - Recommended for most scenarios
- Simplest to use, read directly with
- Instance fields:
- Obtain instance via
TritiumConfig.getConfig(MOD_ID).get()then access - Suitable for scenarios requiring multiple config instances or stronger encapsulation
- Obtain instance via
Custom Filename and Multiple Configurations
- Use
TritiumConfig#filename("my_config")to customize filename - For multiple configurations, register multiple
TritiumConfiginstances (differentmodIdor differentconfigClass)
In-Program Modification and Saving
- After modifying field values (static/instance), call
config.save()to persist - UI save also calls
save()
Caching and Performance
- Parser return values are wrapped in
ConfigValue\<T\>, cache expires after 3000ms by default - To reflect disk changes immediately, call
reload()or wait for hot reload
Listening and Hot Reload
- Built-in
ConfigFileWatchercheckslastModifiedevery 2 seconds - If changes detected, automatically calls
reload()
Logging and Debugging
- Library outputs logs at key points: registration, reload, save, migration
- Out-of-range/parse failures output
warn, serious errors outputerrorlog and throw exceptions
Compatibility and Limitations
- Supported types:
boolean/int/long/double/String/enum/List\<String\> - Lists only support string elements
- Server environment won't load items annotated with
@ClientOnly