Config Tracker
Tracks the marketplace config the client runs.
A loaded config is State.TRACKED while the settings match what was loaded and State.EDITING once they differ. The settings from before the first load are kept as a backup until the user restores or detaches.
A config's config dependencies are applied before it, depth-first in their order, and its add-on and script dependencies are installed. The settings after the dependencies are its base: an overlay only publishes what differs from it.
Loading a local config over it stops tracking, unless the local config was saved from it; see loadedLocal.
Types
Dependencies load installed; restartRequired when one only works after a restart. unavailable are the ones left out since they or what they need do not load with this game.
Properties
Stores the ValueGroup in which the ValueGroup is included, can be null.
Config dependencies applied before the tracked config, in order.
If true, value will not be included in generated public config. Can be set using doNotIncludeWhen or doNotIncludeAlways.
Get the related CoroutineScope of receiver EventListener.
Group for optional inclusion during configuration saving. Managed by AutoConfig.
If true, the description won't be bound to any net.ccbluex.liquidbounce.config.types.group.ValueGroup.
If true, value will always keep inner equals defaultValue.
If false, the value is neither written to nor read from config files, but still reaches the GUI. For values whose state lives elsewhere, such as another client's modules.
We write to this temp file, we can safely rename jsonTmpFile to jsonFile, to eliminate any chances of data loss.
If true, value will not be included in generated RestAPI config.
Returns whether the listenable is running or not, this is based on the parent listenable and if no parent is present, it will return the opposite of isDestructed.
Id of the tracked config, which a local config saved now keeps as its origin.
Hides the value from the GUI while false. Configs keep it either way.
Functions
Checks if this value should be included in the public configuration based on its doNotInclude condition and inclusionGroup.
Children EventListener
Returns computed ReadWriteProperty based on the accumulator of specific event.
Publishes the current settings as a new config and tracks it.
Deserialize value from JSON
For Java, which cannot call the reified overload.
Publishes the edited settings as a new config that links back to the tracked revision.
Assigns the value of the settings to the component
Uses text instead of a translation key, for descriptions that come from outside LiquidBounce.
Applies revisionId of item after its config dependencies and installs its add-on and script dependencies. A full load starts tracking it, a load restricted to modules only applies that slice of every step.
Settings of the local config name were applied, only some modules of it when partial. A partial load, or one of a config saved from the tracked one (origin is its trackedItemId), goes on as edits of the tracked config. Any other replaces it: tracking stops, the backup stays.
Applies a config that does not come from the marketplace. It stops tracking but keeps the backup.
Re-reads the file, dropping unsaved changes.
For Java, which cannot call the reified overloads.
Calls handler for every type event while this listener is running. Higher priority runs first. Close the result to stop early; unregister does the same for all of them.
task every game tick while this listener is running.
Publishes only what was changed on top of the tracked config, as a new config that depends on it, and tracks that.
Parent EventListener
Allows dynamic groups to create their children before stored values are applied.
Remove cached scope and cancel it.
Returns to the settings from before the first marketplace load.
Writes the file now; the client does so on exit anyway.
Registers an event hook for events of type T and launches a sequence
Start a Job on event.
Registers a repeatable sequence which repeats the execution of code on GameTickEvent.
Unregisters the event handler from the manager. This decision is FINAL! After the class was unregistered we cannot restore the handlers.
Uploads the edited settings as the tracked config's newest revision. With config dependencies, only what differs from them.
Walks the path of the ValueGroup and its children
Wrap the original interceptor and make it auto-detect the listener's running state at suspension to determine whether to resume the continuation.