build.gradle.kts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import net.minecraftforge.gradle.userdev.UserDevExtension
  2. import org.gradle.api.file.DuplicatesStrategy.INCLUDE
  3. import org.spongepowered.asm.gradle.plugins.MixinExtension
  4. val modId: String by project
  5. val minecraftVersion: String by project
  6. val forgeVersion: String by project
  7. val mixinVersion: String by project
  8. buildscript {
  9. repositories {
  10. maven("https://maven.minecraftforge.net")
  11. maven("https://repo.spongepowered.org/maven")
  12. mavenCentral()
  13. }
  14. dependencies {
  15. classpath(group = "net.minecraftforge.gradle", name = "ForgeGradle", version = "5.1.+") { isChanging = true }
  16. classpath(group = "org.spongepowered", name = "mixingradle", version = "0.7-SNAPSHOT")
  17. }
  18. }
  19. plugins {
  20. java
  21. eclipse
  22. }
  23. apply {
  24. plugin("net.minecraftforge.gradle")
  25. plugin("org.spongepowered.mixin")
  26. }
  27. dependencies {
  28. "minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion")
  29. if (System.getProperty("idea.sync.active") != "true") {
  30. annotationProcessor("org.spongepowered:mixin:$mixinVersion:processor")
  31. }
  32. }
  33. configure<UserDevExtension> {
  34. mappings("official", minecraftVersion)
  35. runs {
  36. create("client") {
  37. taskName = "Client"
  38. workingDirectory(rootProject.file("run"))
  39. ideaModule("${rootProject.name}.${project.name}.main")
  40. property("mixin.env.remapRefMap", "true")
  41. property("mixin.env.refMapRemappingFile", "$projectDir/build/createSrgToMcp/output.srg")
  42. arg("-mixin.config=$modId.mixins.json")
  43. mods {
  44. create(modId) {
  45. source(sourceSets.main.get())
  46. source(rootProject.sourceSets.main.get())
  47. }
  48. }
  49. }
  50. create("server") {
  51. taskName = "Server"
  52. workingDirectory(rootProject.file("run"))
  53. ideaModule("${rootProject.name}.${project.name}.main")
  54. property("mixin.env.remapRefMap", "true")
  55. property("mixin.env.refMapRemappingFile", "$projectDir/build/createSrgToMcp/output.srg")
  56. arg("-mixin.config=$modId.mixins.json")
  57. mods {
  58. create(modId) {
  59. source(sourceSets.main.get())
  60. source(rootProject.sourceSets.main.get())
  61. }
  62. }
  63. }
  64. }
  65. }
  66. configure<MixinExtension> {
  67. add(sourceSets.main.get(), "$modId.refmap.json")
  68. }
  69. tasks.processResources {
  70. from(sourceSets.main.get().resources.srcDirs) {
  71. include("META-INF/mods.toml")
  72. expand(inputs.properties)
  73. duplicatesStrategy = INCLUDE
  74. }
  75. }
  76. tasks.jar {
  77. finalizedBy("reobfJar")
  78. }