Skip to content

Commit

Permalink
Improve loom.platform management
Browse files Browse the repository at this point in the history
  • Loading branch information
Deftu committed Jun 27, 2024
1 parent 0c91e5e commit 0a953b2
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
9 changes: 2 additions & 7 deletions src/main/kotlin/dev/deftu/gradle/multiversion.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,17 @@ package dev.deftu.gradle
import com.replaymod.gradle.preprocess.PreprocessExtension
import com.replaymod.gradle.preprocess.PreprocessPlugin
import dev.deftu.gradle.utils.MCData
import net.fabricmc.loom.bootstrap.LoomGradlePluginBootstrap
import dev.deftu.gradle.utils.setupLoom

plugins {
java
}

val mcData = MCData.from(project)

setupLoom()
setupLoom(mcData)
setupPreprocessor()

fun setupLoom() {
extra.set("loom.platform", mcData.loader.friendlyString)
apply<LoomGradlePluginBootstrap>()
}

fun setupPreprocessor() {
apply<PreprocessPlugin>()
extensions.configure<PreprocessExtension> {
Expand Down
10 changes: 7 additions & 3 deletions src/main/kotlin/dev/deftu/gradle/tools/minecraft/loom.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,24 @@ package dev.deftu.gradle.tools.minecraft

import dev.architectury.pack200.java.Pack200Adapter
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.extra
import dev.deftu.gradle.utils.*
import gradle.kotlin.dsl.accessors._0935894d714bf6b98fac60b9fc45a2f5.loom
import gradle.kotlin.dsl.accessors._0935894d714bf6b98fac60b9fc45a2f5.mappings
import gradle.kotlin.dsl.accessors._0935894d714bf6b98fac60b9fc45a2f5.minecraft
import gradle.kotlin.dsl.accessors._0935894d714bf6b98fac60b9fc45a2f5.modImplementation

val mcData = MCData.from(project)
setupLoom(mcData) {
if (mcData.isLegacyFabric) {
intermediaryUrl.set("https://maven.legacyfabric.net/net/legacyfabric/intermediary/%1\\\$s/intermediary-%1\\\$s-v2.jar")
}
}

plugins {
id("gg.essential.loom")
}

val mcData = MCData.from(project)
val extension = extensions.create("toolkitLoomHelper", LoomHelperExtension::class)
extra.set("loom.platform", mcData.loader.friendlyString)

loom {
runConfigs {
Expand Down
11 changes: 11 additions & 0 deletions src/main/kotlin/dev/deftu/gradle/utils/minecraft.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package dev.deftu.gradle.utils

import net.fabricmc.loom.api.LoomGradleExtensionAPI
import net.fabricmc.loom.bootstrap.LoomGradlePluginBootstrap
import org.gradle.api.Action
import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.extra
import java.io.File

private val loomIds = listOf(
Expand Down Expand Up @@ -37,6 +40,14 @@ fun Project.withLoom(action: Action<LoomGradleExtensionAPI>) {
}
}

fun Project.setupLoom(mcData: MCData, action: LoomGradleExtensionAPI.(MCData) -> Unit = {}) {
extra.set("loom.platform", mcData.loader.friendlyString)
apply<LoomGradlePluginBootstrap>()
withLoom {
action(mcData)
}
}

fun Project.isMultiversionProject(): Boolean = preprocessorIds.any { id ->
pluginManager.hasPlugin(id)
} || (rootProject.file("versions").exists() && File(rootProject.file("versions"), "mainProject").exists())

0 comments on commit 0a953b2

Please sign in to comment.