aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
blob: e8fc1ca2a78c0d14262852593879dbf7836411be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
buildscript {
    repositories {
        maven { url = 'https://files.minecraftforge.net/maven' }
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
    }
}
plugins {
    id "org.jetbrains.kotlin.jvm" version "1.3.61"
    id "com.github.johnrengelman.shadow" version "4.0.4"
}

apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'kotlin'

version = '1.0.1'
group = 'thedarkcolour.kotlinforforge'
archivesBaseName = 'kotlinforforge'

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'

tasks.build.dependsOn kotlinSourcesJar
tasks.build.dependsOn shadowJar

minecraft {
    mappings channel: 'snapshot', version: '20191213-1.14.3'
    
    runs {
        client {
            workingDirectory project.file('run')

            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            property 'forge.logging.console.level', 'debug'
        }

        server {
            workingDirectory project.file('run')

            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            property 'forge.logging.console.level', 'debug'
        }

        data {
            workingDirectory project.file('run')

            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            property 'forge.logging.console.level', 'debug'

            args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/')
        }
    }
}

repositories {

}

dependencies {
    minecraft 'net.minecraftforge:forge:1.14.4-28.1.106'

	compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib", version: kotlin_version
	compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk7", version: kotlin_version
	compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk8", version: kotlin_version
	compile group: "org.jetbrains.kotlin", name: "kotlin-reflect", version: kotlin_version
    compile group: "org.jetbrains", name: "annotations", version: annotations_version
	compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-core", version: coroutines_version
	compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-jdk8", version: coroutines_version

    // Used to generate html files
    compile group: 'org.jsoup', name: 'jsoup', version: '1.11.3'
}

shadowJar {
    classifier = "obf"
    dependencies {
        include(dependency("org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"))
        include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}"))
        include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}"))
        include(dependency("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"))
        include(dependency("org.jetbrains:annotations:${annotations_version}"))
        include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutines_version}"))
        include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${coroutines_version}"))
    }
}

jar {
    manifest {
        attributes([
                "FMLModType": "LANGPROVIDER"
                ])

        attributes([
                "Specification-Title": "Mod Language Provider",
                "Specification-Vendor": "Forge",
                "Specification-Version": "1",
                "Implementation-Title": project.name,
                "Implementation-Version": "${version}",
                "Implementation-Vendor" :"thedarkcolour",
                "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
        ], "thedarkcolour/kotlinforforge/")
    }
}

compileKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xinline-classes"]
        jvmTarget = '1.8'
    }
    // Required to run in dev environment
    copy {
        from "$buildDir/classes/kotlin/main" into "$buildDir/classes/java/main"
    }
}