MaskingBridge

interface MaskingBridge

Type-safe gateway across the game-loader ↔ masking-loader boundary. Aggregates every operation that can ONLY run on the masking loader — the Kotlin REPL host (repl.impl.ReplHost) and the remap-cache builder (repl.impl.RemapCacheBuilder) — behind one interface, so the game loader never has to reflect a masking-only class per call. Every method below forwards to one of those two backends; see ReplBridge for the boundary rules and how the single implementation instance is obtained.

The compile handle stays Object because its real type (kotlin.script...ResultWithDiagnostics) exists only on the masking loader; execute returns exec.Outcome or exec.IterEval, which share no common supertype, so it is Object too.

Inheritors

Functions

Link copied to clipboard
abstract fun assembleMappings(clientTxt: String, secondSource: String, outMappings: String)
Assemble the remap mappings, the MC-version half of the bundle.
Link copied to clipboard
abstract fun buildCompiler(cpFiles: List<File>)
Build the Kotlin compiler state (overlay + createState).
Link copied to clipboard
abstract fun buildSymbols(runtimeMcUri: String, mappings: String, outSymbolsDir: String)
Reverse-remap runtimeMcUri through cached mappings into a mojmap symbol jar, the loader half.
Link copied to clipboard
abstract fun compile(code: String, cpFiles: List<File>, guardLane: GuardLane, evalId: Int, abandoned: BooleanSupplier): Any
Compile a snippet to an opaque handle.
Link copied to clipboard
abstract fun execute(handle: Any, code: String, out: Capture): Any
Run a compiled handle.
Link copied to clipboard
abstract fun preload(): Boolean
Load the compiler working set.
Link copied to clipboard
abstract fun recordWorkingSet(path: String)
Write the classes the masking loader has defined so far to path, plus a stamp of the kotlin version they were recorded under.
Link copied to clipboard
abstract fun warm()
Compile and run one dummy snippet, warming the whole eval path.