import com.dfsek.terra.configureCommon import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import net.minecraftforge.gradle.common.util.RunConfig import net.minecraftforge.gradle.mcp.task.GenerateSRG import net.minecraftforge.gradle.userdev.UserDevExtension import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace buildscript { repositories { maven { url = uri("https://files.minecraftforge.net/maven") } jcenter() mavenCentral() maven { url = uri("https://repo.spongepowered.org/repository/maven-public/") } } dependencies { classpath(group = "net.minecraftforge.gradle", name = "ForgeGradle", version = "4.1.+") classpath("org.spongepowered:mixingradle:0.7-SNAPSHOT") } } apply(plugin = "net.minecraftforge.gradle") plugins { java } configureCommon() group = "com.dfsek.terra.forge" repositories { maven { url = uri("https://files.minecraftforge.net/maven") } jcenter() mavenCentral() maven { url = uri("https://repo.spongepowered.org/repository/maven-public/") } } val forgeVersion = "36.1.13" val mcVersion = "1.16.5" dependencies { "shadedApi"(project(":common")) "minecraft"("net.minecraftforge:forge:$mcVersion-$forgeVersion") } afterEvaluate { val reobf = extensions.getByName>("reobf") reobf.maybeCreate("shadowJar").run { mappings = tasks.getByName("createMcpToSrg").output } } configure { mappings(mapOf( "channel" to "official", "version" to mcVersion )) runs { val runConfig = Action { properties(mapOf( "forge.logging.markers" to "SCAN,REGISTRIES,REGISTRYDUMP", "forge.logging.console.level" to "debug" )) workingDirectory = project.file("run").canonicalPath source(sourceSets["main"]) } create("client", runConfig) create("server", runConfig) } } tasks.register("deobfJar") { from(sourceSets["main"].output) archiveClassifier.set("dev") } val deobfElements = configurations.register("deobfElements") { isVisible = false description = "De-obfuscated elements for libs" isCanBeResolved = false isCanBeConsumed = true attributes { attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) } outgoing.artifact(tasks.named("deobfJar")) } val javaComponent = components["java"] as AdhocComponentWithVariants javaComponent.addVariantsFromConfiguration(deobfElements.get()) { mapToMavenScope("runtime") }