aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle86
1 files changed, 86 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..4bb78e7
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,86 @@
+plugins {
+ id "java"
+ id "com.github.johnrengelman.shadow" version "6.1.0"
+ id "net.minecraftforge.gradle.forge" version "6f53277"
+ id "org.jetbrains.kotlin.jvm" version "1.5.31"
+}
+
+group "io.github.dediamondpro"
+version "1.0-SNAPSHOT"
+archivesBaseName = "OneConfig"
+
+sourceCompatibility = targetCompatibility = 1.8
+compileJava.options.encoding = 'UTF-8'
+
+minecraft {
+ version = "1.8.9-11.15.1.2318-1.8.9"
+ runDir = "run"
+ mappings = "stable_22"
+ makeObfSourceJar = false
+}
+
+configurations {
+ implementation.extendsFrom(include)
+}
+
+repositories {
+ maven { url "https://repo.sk1er.club/repository/maven-public" }
+ maven { url 'https://jitpack.io' }
+}
+
+dependencies {
+
+}
+
+/**
+ * This task simply replaces the `${version}` and `${mcversion}` properties in the mcmod.info with the data from Gradle
+ */
+processResources {
+ // this will ensure that this task is redone when the versions change.
+ inputs.property "version", project.version
+ inputs.property "mcversion", project.minecraft.version
+
+ // replace stuff in mcmod.info, nothing else
+ from(sourceSets.main.resources.srcDirs) {
+ include 'mcmod.info'
+
+ // replace version and mcversion
+ expand 'version': project.version, 'mcversion': project.minecraft.version
+ }
+
+ // copy everything else, thats not the mcmod.info
+ from(sourceSets.main.resources.srcDirs) {
+ exclude 'mcmod.info'
+ }
+}
+
+/**
+ * This task simply moves resources so they can be accessed at runtime, Forge is quite weird isn't it
+ */
+task moveResources {
+ doLast {
+ ant.move file: "${buildDir}/resources/main",
+ todir: "${buildDir}/classes/java"
+ }
+}
+
+moveResources.dependsOn processResources
+classes.dependsOn moveResources
+
+shadowJar {
+ archiveClassifier.set('dep')
+ configurations = [project.configurations.include]
+ duplicatesStrategy DuplicatesStrategy.EXCLUDE
+}
+
+compileKotlin {
+ kotlinOptions {
+ jvmTarget = "1.8"
+ }
+}
+
+reobf { shadowJar { mappingType = "SEARGE" } }
+tasks.reobfShadowJar.mustRunAfter shadowJar
+afterEvaluate {
+ build.dependsOn reobfShadowJar
+} \ No newline at end of file