aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
blob: e6d4434a1d5b66fc6bded3d13b3c7550d0d75e72 (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
buildscript {
    repositories {
        //new forge repository
        maven { url "https://maven.minecraftforge.net" }
        maven { url 'https://repo.spongepowered.org/maven'}
        mavenCentral()
    }
    dependencies {
        classpath "net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT"
        classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
    }
}

plugins {
    id "java"
    id "com.github.johnrengelman.shadow" version "2.0.4"
}

apply plugin: 'net.minecraftforge.gradle.tweaker-client'
apply plugin: 'org.spongepowered.mixin'

version = "1.0.0"
group = "gq.malwarefight.nosession"
archivesBaseName = "nosession"

compileJava.sourceCompatibility = compileJava.targetCompatibility = 1.8
compileJava.options.encoding = "UTF-8"

minecraft {
    version = "1.8.9"
    runDir = "run"
    mappings = "stable_22" //mappings for 1.8.9
    makeObfSourceJar = false //disable creation of sources jar
    tweakClass = 'gq.malwarefight.nosession.mixin.InitialTweaker'
}

configurations {
    shade
    compile.extendsFrom(shade)
}

repositories {
    maven { url 'https://repo.spongepowered.org/maven/' }
    maven { url 'https://maven.minecraftforge.net/' }
    mavenCentral()
}

dependencies {
    shade('org.spongepowered:mixin:0.7.10-SNAPSHOT') {
        exclude module: 'launchwrapper'
        exclude module: 'guava'
        exclude module: 'gson'
        exclude module: 'commons-io'
        exclude module: 'log4j-core'
    }
}

processResources {
    //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, that"s not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude "mcmod.info"
    }

    rename '(.+_at.cfg)', 'META-INF/$1'
}

shadowJar {
    dependencies {}
    configurations = [project.configurations.shade]
    duplicatesStrategy DuplicatesStrategy.EXCLUDE //prevent duplicates
    classifier "" //prevent creation of unshadowed jar
}

reobf {
    //reobfuscate the shadowed jar
    shadowJar {}
}

jar {
    manifest {
        attributes "ForceLoadAsMod": true,
                "TweakOrder": 0,
                "ModSide": "CLIENT",
                'FMLCorePluginContainsFMLMod': true,
                'TweakClass': 'gq.malwarefight.nosession.mixin.InitialTweaker',
                'MixinConfigs': 'mixins.nosession.json'
    }
}

sourceSets {
    main {
        ext.refMap = "mixins.nosession.refmap.json"
    }
}