Scripts/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExtension.kt

37 lines
1.2 KiB
Kotlin

package io.gitlab.jfronny.scripts
import org.gradle.api.Project
import org.gradle.api.provider.Property
import java.util.*
interface LomExtension {
val yarnBuild: Property<String>
fun yarn(yarnBuild: String) {
this.yarnBuild.set(Objects.requireNonNull(yarnBuild))
}
fun mojmap() {
yarnBuild.set(null)
}
val minecraftVersion: Property<String>
val fabricLoaderVersion: Property<String>
val neoforgeVersion: Property<String>
fun check(proj: Project) {
yarnBuild.finalizeValue()
minecraftVersion.finalizeValue()
fabricLoaderVersion.finalizeValue()
neoforgeVersion.finalizeValue()
require(!(fabricLoaderVersion.isPresent && neoforgeVersion.isPresent)) { "fabricLoaderVersion and forgeVersion are mutually exclusive" }
require(fabricLoaderVersion.isPresent || neoforgeVersion.isPresent) { "fabricLoaderVersion or forgeVersion must be set" }
}
fun copyFrom(ext: LomExtension) {
yarnBuild.set(ext.yarnBuild)
minecraftVersion.set(ext.minecraftVersion)
fabricLoaderVersion.set(ext.fabricLoaderVersion)
neoforgeVersion.set(ext.neoforgeVersion)
}
}