Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-27 08:30:12 +01:00
118 Zeilen
3.9 KiB
Plaintext
118 Zeilen
3.9 KiB
Plaintext
@file:Suppress("UnstableApiUsage")
|
|
|
|
import net.fabricmc.loom.task.RemapJarTask
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
|
|
plugins {
|
|
id("geyser.platform-conventions")
|
|
id("architectury-plugin")
|
|
id("dev.architectury.loom")
|
|
}
|
|
|
|
// These are provided by Minecraft/modded platforms already, no need to include them
|
|
provided("com.google.code.gson", "gson")
|
|
provided("com.google.guava", ".*")
|
|
provided("org.slf4j", "slf4j-api")
|
|
provided("com.nukkitx.fastutil", ".*")
|
|
provided("org.cloudburstmc.fastutil.maps", ".*")
|
|
provided("org.cloudburstmc.fastutil.sets", ".*")
|
|
provided("org.cloudburstmc.fastutil.commons", ".*")
|
|
provided("org.cloudburstmc.fastutil", ".*")
|
|
provided("org.checkerframework", "checker-qual")
|
|
provided("io.netty", "netty-transport-classes-epoll")
|
|
provided("io.netty", "netty-transport-native-epoll")
|
|
provided("io.netty", "netty-transport-native-unix-common")
|
|
provided("io.netty", "netty-transport-classes-kqueue")
|
|
provided("io.netty", "netty-transport-native-kqueue")
|
|
provided("io.netty.incubator", "netty-incubator-transport-native-io_uring")
|
|
provided("io.netty.incubator", "netty-incubator-transport-classes-io_uring")
|
|
provided("io.netty", "netty-handler")
|
|
provided("io.netty", "netty-common")
|
|
provided("io.netty", "netty-buffer")
|
|
provided("io.netty", "netty-resolver")
|
|
provided("io.netty", "netty-transport")
|
|
provided("io.netty", "netty-codec")
|
|
provided("io.netty", "netty-resolver-dns")
|
|
provided("io.netty", "netty-resolver-dns-native-macos")
|
|
provided("org.ow2.asm", "asm")
|
|
|
|
// cloud-fabric/cloud-neoforge jij's all cloud depends already
|
|
provided("org.incendo", ".*")
|
|
provided("io.leangen.geantyref", "geantyref")
|
|
|
|
architectury {
|
|
minecraft = libs.minecraft.get().version as String
|
|
}
|
|
|
|
loom {
|
|
silentMojangMappingsLicense()
|
|
}
|
|
|
|
indra {
|
|
javaVersions {
|
|
target(21)
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
create("includeTransitive").isTransitive = true
|
|
}
|
|
|
|
tasks {
|
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
|
// if it is present.
|
|
// If you remove this task, sources will not be generated.
|
|
sourcesJar {
|
|
archiveClassifier.set("sources")
|
|
from(sourceSets.main.get().allSource)
|
|
}
|
|
|
|
shadowJar {
|
|
// Mirrors the example fabric project, otherwise tons of dependencies are shaded that shouldn't be
|
|
configurations = listOf(project.configurations.shadow.get())
|
|
// The remapped shadowJar is the final desired mod jar
|
|
archiveVersion.set(project.version.toString())
|
|
archiveClassifier.set("shaded")
|
|
}
|
|
|
|
remapJar {
|
|
dependsOn(shadowJar)
|
|
inputFile.set(shadowJar.get().archiveFile)
|
|
archiveClassifier.set("")
|
|
archiveVersion.set("")
|
|
}
|
|
|
|
register("remapModrinthJar", RemapJarTask::class) {
|
|
dependsOn(shadowJar)
|
|
inputFile.set(shadowJar.get().archiveFile)
|
|
archiveVersion.set(versionName(project))
|
|
archiveClassifier.set("")
|
|
}
|
|
}
|
|
|
|
afterEvaluate {
|
|
val providedDependencies = getProvidedDependenciesForProject(project.name)
|
|
|
|
// These are shaded, no need to JiJ them
|
|
configurations["shadow"].dependencies.forEach {shadowed ->
|
|
//println("Not including shadowed dependency: ${shadowed.group}:${shadowed.name}")
|
|
providedDependencies.add("${shadowed.group}:${shadowed.name}")
|
|
}
|
|
|
|
// Now: Include all transitive dependencies that aren't excluded
|
|
configurations["includeTransitive"].resolvedConfiguration.resolvedArtifacts.forEach { dep ->
|
|
if (!providedDependencies.contains("${dep.moduleVersion.id.group}:${dep.moduleVersion.id.name}")
|
|
and !providedDependencies.contains("${dep.moduleVersion.id.group}:.*")) {
|
|
//println("Including dependency via JiJ: ${dep.id}")
|
|
dependencies.add("include", dep.moduleVersion.id.toString())
|
|
} else {
|
|
//println("Not including ${dep.id} for ${project.name}!")
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
minecraft(libs.minecraft)
|
|
mappings(loom.officialMojangMappings())
|
|
}
|