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. buildscript {
  5. repositories {
  6. maven("https://maven.minecraftforge.net")
  7. maven("https://repo.spongepowered.org/maven")
  8. mavenCentral()
  9. }
  10. dependencies {
  11. classpath(group = "net.minecraftforge.gradle", name = "ForgeGradle", version = "5.1.+") { isChanging = true }
  12. classpath(group = "org.spongepowered", name = "mixingradle", version = "0.7-SNAPSHOT")
  13. }
  14. }
  15. plugins {
  16. java
  17. eclipse
  18. }
  19. apply {
  20. plugin("net.minecraftforge.gradle")
  21. plugin("org.spongepowered.mixin")
  22. }
  23. val modId: String by project
  24. val minecraftVersion: String by project
  25. val forgeVersion: String by project
  26. val mixinVersion: String by project
  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. }