_Enrico

frozen/build.gradle.kts

Oct 3rd, 2025
1,166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.94 KB | Source Code | 0 0
  1. @file:Suppress("UnstableApiUsage", "PropertyName")
  2.  
  3. import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
  4. import net.fabricmc.loom.task.RemapJarTask
  5. import org.polyfrost.gradle.util.noServerRunConfigs
  6.  
  7. plugins {
  8.     java
  9.     id("org.polyfrost.defaults.repo")
  10.     id("org.polyfrost.defaults.java")
  11.     id("org.polyfrost.defaults.loom")
  12.     id("com.github.johnrengelman.shadow")
  13.     id("net.kyori.blossom") version "1.3.2"
  14. }
  15.  
  16. val mod_id: String = findProperty("frozen.id")?.toString() ?: "frozen"
  17. val mod_name: String = findProperty("frozen.name")?.toString() ?: "Frozen"
  18. val mod_version: String = findProperty("frozen.version")?.toString() ?: "1.0.0"
  19. val baseGroup: String = project.rootProject.group.toString()
  20. val forgeVersion: String by project
  21.  
  22.  
  23. // blossom replacement
  24. blossom {
  25.     replaceToken("@VER@", mod_version)
  26.     replaceToken("@NAME@", mod_name)
  27.     replaceToken("@ID@", mod_id)
  28. }
  29.  
  30. version = mod_version
  31. group = baseGroup
  32.  
  33. // Source resources go into classes folder (same trick you used earlier)
  34. sourceSets {
  35.     main {
  36.         output.setResourcesDir(java.classesDirectory)
  37.     }
  38. }
  39.  
  40. // Shade configurations: we will include the :frozencloud project into the mod jar
  41. val shade: Configuration by configurations.creating {
  42.     configurations.implementation.get().extendsFrom(this)
  43. }
  44. val modShade: Configuration by configurations.creating {
  45.     configurations.modImplementation.get().extendsFrom(this)
  46. }
  47.  
  48. repositories {
  49.     maven("https://repo.polyfrost.org/releases")
  50.     maven("https://repo.spongepowered.org/maven")
  51.     maven("https://repo.polyfrost.cc/releases")
  52. }
  53.  
  54. dependencies {
  55.     // OneConfig and DevAuth similar to polyfrost example
  56.     modCompileOnly("cc.polyfrost:oneconfig-1.8.9-forge:0.2.2-alpha+")
  57.     modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.2.1")
  58.  
  59.     // Mixin & launchwrapper for legacy Forge
  60.     compileOnly("org.spongepowered:mixin:0.7.11-SNAPSHOT")
  61.     shade("cc.polyfrost:oneconfig-wrapper-launchwrapper:1.0.0-beta17")
  62.  
  63.     // include the shared project in modJar by shading it
  64.     shade(project(":frozencloud-core"))
  65.     implementation(project(":frozencloud-core"))
  66. }
  67.  
  68. // ShadowJar task provider
  69. val shadowJarTask = tasks.named<ShadowJar>("shadowJar") {
  70.     archiveClassifier.set("dev")
  71.     configurations = listOf(shade, modShade)
  72.     duplicatesStrategy = DuplicatesStrategy.EXCLUDE
  73. }
  74.  
  75. // RemapJar task uses shadowJarTask
  76. tasks.named<RemapJarTask>("remapJar") {
  77.     inputFile.set(shadowJarTask.flatMap { it.archiveFile })
  78.     archiveClassifier.set("")
  79. }
  80.  
  81. // Make assemble depend on remapJar
  82. tasks.named("assemble") {
  83.     dependsOn(tasks.named("remapJar"))
  84. }
  85.  
  86. // Loom configuration (using polyfrost defaults)
  87. loom {
  88.     noServerRunConfigs()
  89.  
  90.     // Legacy Forge tweak class for 1.8.9
  91.     runConfigs {
  92.         "client" {
  93.             programArgs("--tweakClass", "cc.polyfrost.oneconfig.loader.stage0.LaunchWrapperTweaker")
  94.             property("mixin.debug.export", "true")
  95.         }
  96.     }
  97.  
  98.     forge {
  99.         mixinConfig("mixins.${mod_id}.json")
  100.         accessTransformer(file("src/main/resources/accesstransformer.cfg"))
  101.     }
  102.  
  103.     mixin {
  104.         defaultRefmapName.set("mixins.${mod_id}.refmap.json")
  105.     }
  106. }
  107.  
  108. tasks {
  109.     // processResources replacements
  110.     processResources {
  111.         inputs.property("modid", mod_id)
  112.         inputs.property("name", mod_name)
  113.         inputs.property("version", mod_version)
  114.         inputs.property("mcversion", "1.8.9")
  115.         inputs.property("basePackage", baseGroup)
  116.         filesMatching(listOf("mcmod.info", "mixins.${mod_id}.json", "mods.toml")) {
  117.             expand(mapOf(
  118.                 "modid" to mod_id,
  119.                 "name" to mod_name,
  120.                 "version" to mod_version,
  121.                 "mcversion" to "1.8.9",
  122.                 "basePackage" to baseGroup
  123.             ))
  124.         }
  125.     }
  126.  
  127.     // The remapped jar that gets assembled
  128.     assemble {
  129.         dependsOn(remapJar)
  130.     }
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment