package io.gitlab.jfronny.scripts import org.gradle.api.Project import org.gradle.api.provider.Property import java.util.* interface LomExtension { val loaderKind: Property val minecraftVersion: Property val loaderVersion: Property val yarnBuild: Property fun yarn(yarnBuild: String) { this.yarnBuild.set(Objects.requireNonNull(yarnBuild)) } fun mojmap() { yarnBuild.set(null) } fun check(proj: Project) { yarnBuild.finalizeValue() minecraftVersion.finalizeValue() loaderVersion.finalizeValue() loaderKind.finalizeValue() } fun copyFrom(ext: LomExtension) { if (loaderKind.get() != ext.loaderKind.get()) { throw IllegalArgumentException("Cannot copy from a config meant for a different loader") } yarnBuild.set(ext.yarnBuild) minecraftVersion.set(ext.minecraftVersion) loaderVersion.set(ext.loaderVersion) } }