From Baby Lemur , 2 Years ago , written in Groovy.
Embed
  1. buildscript {
  2.     repositories {
  3.         // These repositories are only for Gradle plugins, put any other repositories in the repository block further below
  4.         maven { url = 'https://maven.minecraftforge.net' }
  5.         maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
  6.         maven { url = 'https://maven.parchmentmc.org' }
  7.         mavenCentral()
  8.     }
  9.     dependencies {
  10.         classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
  11.         classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
  12.         classpath 'org.parchmentmc:librarian:1.+'
  13.     }
  14. }
  15.  
  16. plugins {
  17.     id "io.freefair.lombok" version "6.5.0.3"
  18. }
  19.  
  20. apply plugin: 'net.minecraftforge.gradle'
  21. apply plugin: 'org.spongepowered.mixin'
  22. apply plugin: 'org.parchmentmc.librarian.forgegradle'
  23. apply plugin: 'java'
  24. apply plugin: 'maven-publish'
  25.  
  26. group = 'tt432'
  27. version = '1.18.2-3-1'
  28.  
  29. java {
  30.     archivesBaseName = 'millennium'
  31.     toolchain.languageVersion = JavaLanguageVersion.of(17)
  32. }
  33.  
  34. minecraft {
  35.     mappings channel: 'parchment', version: '2022.08.07-1.18.2'
  36.  
  37.     accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
  38.  
  39.     runs {
  40.         client {
  41.             workingDirectory project.file('run')
  42.  
  43.             property 'forge.logging.markers', 'REGISTRIES'
  44.  
  45.             property 'forge.logging.console.level', 'debug'
  46.  
  47.             property 'forge.enabledGameTestNamespaces', 'millennium'
  48.  
  49.             mods {
  50.                 millennium {
  51.                     source sourceSets.main
  52.                 }
  53.             }
  54.         }
  55.  
  56.         server {
  57.             workingDirectory project.file('run')
  58.  
  59.             property 'forge.logging.markers', 'REGISTRIES'
  60.  
  61.             property 'forge.logging.console.level', 'debug'
  62.  
  63.             property 'forge.enabledGameTestNamespaces', 'millennium'
  64.  
  65.             mods {
  66.                 millennium {
  67.                     source sourceSets.main
  68.                 }
  69.             }
  70.         }
  71.  
  72.         gameTestServer {
  73.             workingDirectory project.file('run')
  74.  
  75.             property 'forge.logging.markers', 'REGISTRIES'
  76.  
  77.             property 'forge.logging.console.level', 'debug'
  78.  
  79.             property 'forge.enabledGameTestNamespaces', 'millennium'
  80.  
  81.             mods {
  82.                 millennium {
  83.                     source sourceSets.main
  84.                 }
  85.             }
  86.         }
  87.  
  88.         data {
  89.             workingDirectory project.file('run')
  90.  
  91.             property 'forge.logging.markers', 'REGISTRIES'
  92.  
  93.             property 'forge.logging.console.level', 'debug'
  94.  
  95.             args '--mod', 'millennium', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
  96.  
  97.             mods {
  98.                 millennium {
  99.                     source sourceSets.main
  100.                 }
  101.             }
  102.         }
  103.     }
  104. }
  105.  
  106. mixin {
  107.     add sourceSets.main, "millennium.refmap.json"
  108.  
  109.     config "millennium.mixins.json"
  110. }
  111.  
  112. sourceSets.main.resources { srcDir 'src/generated/resources' }
  113.  
  114. project.ext.lwjglVersion = "3.2.2"
  115. project.ext.lwjglNatives = "natives-windows"
  116.  
  117. configurations {
  118.     library
  119.     implementation.extendsFrom library
  120. }
  121.  
  122. minecraft.runs.all {
  123.     lazyToken('minecraft_classpath') {
  124.         configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator)
  125.     }
  126. }
  127.  
  128. repositories {
  129.     maven {
  130.         // location of the maven that hosts JEI files
  131.         name = "Progwml6 maven"
  132.         url = "https://dvs1.progwml6.com/files/maven/"
  133.     }
  134.     maven {
  135.         // Modern UI
  136.         name 'IzzelAliz Maven'
  137.         url 'https://maven.izzel.io/releases/'
  138.     }
  139.     maven {
  140.         // JEI, Mekanism
  141.         name 'ModMaven'
  142.         url 'https://modmaven.dev/'
  143.     }
  144.     maven {
  145.         url "https://cursemaven.com"
  146.         content {
  147.             includeGroup "curse.maven"
  148.         }
  149.     }
  150.     mavenCentral()
  151. }
  152.  
  153. jarJar.enable()
  154.  
  155. dependencies {
  156.     minecraft 'net.minecraftforge:forge:1.18.2-40.1.73'
  157.  
  158.     annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
  159.  
  160.     compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
  161.     implementation fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
  162.  
  163.     library "icyllis.modernui:ModernUI-Core:${modernui_version}"
  164.     implementation fg.deobf("icyllis.modernui:ModernUI-Forge:${minecraft_version}-${modernui_version}")
  165.  
  166.     library "org.lwjgl:lwjgl-assimp:$lwjglVersion"
  167.     runtimeOnly "org.lwjgl:lwjgl-assimp:$lwjglVersion:$lwjglNatives"
  168.  
  169.     jarJar(group: 'org.lwjgl', name: 'lwjgl-assimp', version: '[' + lwjglVersion + ',)') {
  170.         jarJar.pin(it, lwjglVersion)
  171.     }
  172.  
  173.     library "org.lwjgl:lwjgl-nanovg:$lwjglVersion"
  174.     runtimeOnly "org.lwjgl:lwjgl-nanovg:$lwjglVersion:$lwjglNatives"
  175.  
  176.     jarJar(group: 'org.lwjgl', name: 'lwjgl-nanovg', version: '[' + lwjglVersion + ',)') {
  177.         jarJar.pin(it, lwjglVersion)
  178.     }
  179.  
  180.     library('com.vladsch.flexmark:flexmark-all:0.64.0') {
  181.         exclude(group: "org.jetbrains", module: "annotations")
  182.     }
  183.  
  184.     jarJar(group: 'com.vladsch.flexmark', name: 'flexmark-all', version: "[0.64.0,)") {
  185.         exclude(group: "org.jetbrains", module: "annotations")
  186.         jarJar.pin(it, '0.64.0')
  187.     }
  188.  
  189.     library 'com.github.stephengold:Minie:6.0.1'
  190.  
  191.     jarJar(group: 'com.github.stephengold', name: 'Minie', version: '[6.0.1,)') {
  192.         jarJar.pin(it, '6.0.1')
  193.     }
  194. }
  195.  
  196. // Example for how to get properties into the manifest for reading at runtime.
  197. jar {
  198.     manifest {
  199.         attributes([
  200.                 "Specification-Title"     : "millennium",
  201.                 "Specification-Vendor"    : "DustW",
  202.                 "Specification-Version"   : "1", // We are version 1 of ourselves
  203.                 "Implementation-Title"    : project.name,
  204.                 "Implementation-Version"  : project.jar.archiveVersion,
  205.                 "Implementation-Vendor"   : "DustW",
  206.                 "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
  207.         ])
  208.     }
  209. }
  210.  
  211. tasks.jarJar {
  212.     archiveClassifier.set('')
  213. }
  214.  
  215. tasks.jar {
  216.     archiveClassifier.set('noShadow')
  217. }
  218.  
  219. task sourcesJar(type: Jar, dependsOn: classes) {
  220.     classifier = 'sources'
  221.     from sourceSets.main.allSource
  222. }
  223.  
  224. artifacts {
  225.     archives sourcesJar
  226. }
  227.  
  228. publishing {
  229.     publications {
  230.         normal(MavenPublication) {
  231.             artifactId = archivesBaseName
  232.  
  233.             from components.java
  234.             fg.component(it)
  235.             jarJar.component(it)
  236.         }
  237.     }
  238.  
  239.     repositories {
  240.         maven {
  241.             url "file://${project.projectDir}/mcmodsrepo"
  242.         }
  243.     }
  244. }
  245.  
  246. jar.finalizedBy('reobfJar')
  247. reobf.create('jarJar')
  248.  
  249. build {
  250.     dependsOn 'jarJar'
  251. }
  252.  
  253. tasks.withType(JavaCompile).configureEach {
  254.     options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
  255. }

Reply to "Untitled"