Table of Contents

Class ContentLedger

Namespace
McServerLauncher.Services
Assembly
McServerLauncher.dll

What the app has to remember about a server's mods that the folder itself cannot say.

public sealed class ContentLedger
Inheritance
ContentLedger
Inherited Members

Remarks

Two things the jars on disk do not carry. When a mod was switched off: disabling renames x.jar to x.jar.disabled, and a rename keeps the file's dates, so "off for two months" is only knowable if somebody wrote down the day. Who used to need a library: once the mod that needed it is gone, nothing on disk says it ever existed, and "only litematica used this, and you removed it" is the explanation that makes deleting malilib a decision rather than a gamble.

Keys are file names without .disabled, so the same mod is one entry whether it is on or off; library keys are the library's own id, so they survive the library being updated.

Properties

DependentsByLibrary

By library id, the names of the mods that last needed it.

public Dictionary<string, List<string>> DependentsByLibrary { get; set; }

Property Value

Dictionary<string, List<string>>

DisabledFirstSeen

The disabled jars whose date is only when the app first saw them, not when they were turned off.

public HashSet<string> DisabledFirstSeen { get; set; }

Property Value

HashSet<string>

Remarks

Jars already off before this existed, or turned off by hand outside the app. Their real date is earlier, which is why the panel says "at least since".

DisabledSinceUtc

When each disabled jar was switched off, by file name without .disabled.

public Dictionary<string, DateTime> DisabledSinceUtc { get; set; }

Property Value

Dictionary<string, DateTime>

DismissedUtc

When the user said "not now" to a suggestion, by suggestion key.

public Dictionary<string, DateTime> DismissedUtc { get; set; }

Property Value

Dictionary<string, DateTime>

Version

The file format, in case it ever has to change.

public int Version { get; set; }

Property Value

int