Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 4.64 KB | None | 0 0
  1. import groovy.json.JsonSlurper
  2. import org.gradle.internal.os.OperatingSystem
  3.  
  4. buildscript {
  5.     repositories {
  6.         maven { url "https://plugins.gradle.org/m2/" }
  7.         flatDir dirs: "$rootDir/proguard/libs"
  8.     }
  9.     dependencies {
  10.         classpath "com.github.jengelman.gradle.plugins:shadow:2.0.0"
  11.         classpath ':proguard:'
  12.     }
  13. }
  14.  
  15. apply plugin: 'java'
  16. apply plugin: "com.github.johnrengelman.shadow"
  17.  
  18. def artifactName = "Aristois-EMC"
  19. def minecraftRoot = System.getenv('APPDATA') + "/.minecraft"
  20. if (OperatingSystem.current().isMacOsX()) {
  21.     minecraftRoot = System.getenv('HOME') + "/Library/Application Support/minecraft"
  22. }
  23.  
  24. def emcVersion = "${project.emc}-${project.minecraftVersion}"
  25. def emcFile = new File("$rootDir/proguard/libs/EMC.jar")
  26. def donorBuild = project.hasProperty('donorbuild') ? project.property('donorbuild').toBoolean() : false
  27. def getVersionFromJson() {
  28.     def jsonFile = file("$rootDir/src/main/resources/client.json")
  29.     def parsedJson = new JsonSlurper().parseText(jsonFile.text)
  30.     return parsedJson.version
  31. }
  32.  
  33. version = getVersionFromJson()
  34. group 'me.deftware'
  35.  
  36. sourceCompatibility = targetCompatibility = 1.8
  37.  
  38. repositories {
  39.     mavenCentral()
  40.     maven { url 'https://www.dimdev.org/maven/' }
  41.     maven { url 'https://libraries.minecraft.net/' }
  42.     maven { url "https://gitlab.com/EMC-Framework/maven/raw/master/" }
  43.     maven { url = 'http://repo.spongepowered.org/maven/' }
  44. }
  45.  
  46. jar {
  47.     manifest.attributes(
  48.         "adb": donorBuild,
  49.         "build_date": new Date().format('yyyy/MM/dd HH:mm'),
  50.         "Manifest-Version": 1.0
  51.     )
  52. }
  53.  
  54. if (!donorBuild) {
  55.     sourceSets {
  56.         main {
  57.            java {
  58.                 srcDir 'src'
  59.                 exclude '**/deftware/aristois/mod/donormods/**'
  60.                 exclude '**/deftware/aristois/mod/loader/PremiumModLoader**'
  61.                 exclude '**/deftware/aristois/main/PathBuilder**'
  62.            }
  63.        }
  64.     }
  65. }
  66.  
  67. task copyArtifact(type: Copy) {
  68.     from "$rootDir/build/libs/${artifactName}-${version}.jar"
  69.     into "$rootDir/proguard/"
  70.     rename("${artifactName}-${version}.jar", "Aristois.jar")
  71. }
  72.  
  73. task copyMinecraft(type: Copy) {
  74.     from "${minecraftRoot}/versions/${project.minecraftVersion}/${project.minecraftVersion}.jar"
  75.     into "$rootDir/proguard/libs/"
  76.     rename("${project.minecraftVersion}.jar", "Minecraft.jar")
  77. }
  78.  
  79. task downloadEMC {
  80.     new URL("https://gitlab.com/EMC-Framework/maven/raw/master/me/deftware/EMC/${emcVersion}/EMC-${emcVersion}.jar").withInputStream{ i -> emcFile.withOutputStream{ it << i }}
  81. }
  82.  
  83. task stringObfuscation {
  84.     doLast {
  85.         javaexec {
  86.             main = "-jar"
  87.             args = [
  88.                     "$rootDir/proguard/StringObfuscator.jar",
  89.                     "$rootDir/proguard/Aristois" + (project.obfuscation == "true" ? "-Obfuscated" : "") + ".jar",
  90.                     "$rootDir/proguard/" + (donorBuild ? "donor" : "free") + ".jar"
  91.             ]
  92.         }
  93.         delete "$rootDir/proguard/Aristois-Obfuscated.jar"
  94.         delete "$rootDir/proguard/Aristois.jar"
  95.     }
  96. }
  97.  
  98. task copyToMinecraftLibs {
  99.     doLast {
  100.         delete "${minecraftRoot}/libraries/EMC/${project.addToMinecraftVersion}/Aristois.jar"
  101.         copy {
  102.             from "$rootDir/packager/${version}/" + (donorBuild ? "donor" : "free") + ".jar"
  103.             into "${minecraftRoot}/libraries/EMC/${project.addToMinecraftVersion}/"
  104.             rename((donorBuild ? "donor" : "free") + ".jar", "Aristois.jar")
  105.         }
  106.     }
  107. }
  108.  
  109. task copyToPackager {
  110.     doLast {
  111.         copy {
  112.             from "$rootDir/proguard/" + (donorBuild ? "donor" : "free") + ".jar"
  113.             into "$rootDir/packager/${version}/"
  114.         }
  115.         delete "$rootDir/proguard/" + (donorBuild ? "donor" : "free") + ".jar"
  116.     }
  117. }
  118.  
  119. task proguard(type: proguard.gradle.ProGuardTask) {
  120.     configuration "$rootDir/proguard/proguard.txt"
  121.     injars "$rootDir/proguard/Aristois.jar"
  122.     outjars "$rootDir/proguard/Aristois-Obfuscated.jar"
  123.     delete "$rootDir/proguard/Aristois.jar"
  124. }
  125.  
  126. dependencies {
  127.     compileOnly 'com.google.code.gson:gson:2.8.2'
  128.     //compileOnly files("E:\\Code\\Repositories\\1.13.2\\EMC\\build\\libs\\EMC-13.7.6.jar")
  129.     compileOnly "me.deftware:EMC:${emcVersion}"
  130.     compileOnly group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.0'
  131.     compileOnly group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.0'
  132.     compileOnly files("${minecraftRoot}/versions/${project.minecraftVersion}/${project.minecraftVersion}.jar")
  133.     compileOnly 'org.lwjgl:lwjgl-glfw:3.2.1'
  134.     compileOnly 'org.lwjgl:lwjgl-opengl:3.2.1'
  135.     compileOnly 'net.minecraft:launchwrapper:1.12'
  136.     compileOnly 'com.mojang:brigadier:1.0.14'
  137. }
  138.  
  139. build.dependsOn(copyMinecraft)
  140. build.dependsOn(copyArtifact)
  141. build.dependsOn(downloadEMC)
  142. if (project.obfuscation == "true") {
  143.     build.dependsOn(proguard)
  144. }
  145. build.dependsOn(stringObfuscation)
  146. build.finalizedBy(copyToPackager)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement