feat(minecraft): Make every subproject its own mod

This commit is contained in:
2025-11-08 00:44:52 +01:00
parent 47ad406560
commit d2dada2b77
34 changed files with 186 additions and 65 deletions

View File

@@ -0,0 +1,46 @@
import de.siphalor.tweed5.gradle.plugin.minecraft.mod.MinecraftModded
plugins {
java
id("de.siphalor.tweed5.publishing")
id("de.siphalor.tweed5.minecraft.mod.base")
}
val minecraftJij = configurations.dependencyScope("minecraftJij")
val minecraftJijElements = configurations.named("minecraftJijElements") {
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements.JAR))
attribute(MinecraftModded.MINECRAFT_MODDED_ATTRIBUTE, objects.named(MinecraftModded.MODDED))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8)
}
extendsFrom(minecraftJij.get())
}
configurations.runtimeElements {
extendsFrom(minecraftJijElements.get())
}
configurations.apiElements {
extendsFrom(minecraftJijElements.get())
}
tasks.named<Jar>("jar") {
dependsOn(tasks.named("processMinecraftModResources"))
dependsOn(minecraftJijElements)
from(project.layout.buildDirectory.dir("minecraftModResources"))
from(minecraftJijElements) {
into("META-INF/jars")
}
}
publishing {
publications {
create<MavenPublication>("main") {
artifactId = project.name
version = project.version.toString()
from(components["java"])
}
}
}

View File

@@ -2,6 +2,7 @@ package de.siphalor.tweed5.minecraft.bundled.sources
import org.gradle.api.file.ArchiveOperations
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.bundling.Jar
@@ -17,5 +18,7 @@ abstract class BundledSourcesJar: Jar() {
@TaskAction
override fun copy() {
from(sources.filter { it.name.startsWith("tweed5") }.map { archiveOperations.zipTree(it) })
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
super.copy()
}
}