generated from Qalcyo-Archive/ForgeModTemplate
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
141 lines (124 loc) · 3.84 KB
/
build.gradle
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* Define Gradle plugins used in the project. */
plugins {
id "net.minecraftforge.gradle.forge" version "6f5327738d"
id "com.github.johnrengelman.shadow" version "6.1.0"
id "org.spongepowered.mixin" version "0.6-SNAPSHOT"
id "java"
}
version = mod_ver
group = mod_group
archivesBaseName = "${mod_name} (${mod_ver})"
sourceCompatibility = targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
/* Define Minecraft options. Such as the Forge version, run directory and game mappings. */
minecraft {
version = forge_ver
runDir = "run"
replace('@NAME@', mod_name)
replace('@VER@': mod_ver)
replace('@ID@', mod_id)
mappings = mc_mappings
}
/* Add available repositories to areas where dependencies can be downloaded. */
repositories {
mavenCentral()
maven {
name = "SpongePowered"
url = 'https://repo.spongepowered.org/maven/'
}
maven {
name = "JitPack"
url = 'https://jitpack.io/'
}
}
/* Adds a configuration for shading libraries. */
configurations {
shade
implementation.extendsFrom(shade)
}
/* Define dependencies, also where dependencies are automatically handled. */
dependencies {
implementation('xyz.matthewtgm:TGMLib:2.5.2')
shade('xyz.matthewtgm:JsonTGM:2.6.3')
shade('xyz.matthewtgm:TGMConfig:2.3')
implementation('org.projectlombok:lombok:1.18.16')
annotationProcessor('org.projectlombok:lombok:1.18.16')
shade('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
exclude module: 'gson'
exclude module: 'guava'
exclude module: 'launchwrapper'
exclude module: 'commons-io'
}
annotationProcessor('org.spongepowered:mixin:0.7.11-SNAPSHOT')
}
/* Disable mixin refMap warnings. */
mixin {
disableRefMapWarning = true
add sourceSets.main, 'mixins.template.refmap.json'
}
/* Set the duplicatesStrategy and define configs. */
jar {
archiveName = "${archivesBaseName}.jar"
enabled = false
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest.attributes(
'MixinConfigs': 'mixins.template.json',
'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
'FMLCorePlugin': 'xyz.matthewtgm.template.forge.TemplateLoadingPlugin',
'FMLCorePluginContainsFMLMod': true,
'ForceLoadAsMod': true
)
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
/* Disabled source jars. */
sourceJar {
enabled = false
}
/* Makes the shade configuration work and re-define the duplicatesStrategy. */
shadowJar {
configurations = [project.configurations.shade]
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
archiveBaseName.set(archivesBaseName)
archiveVersion.set('')
archiveClassifier.set('')
}
/* Force the Gradle wrapper version and distribution type. */
wrapper {
gradleVersion = "6.8.1"
distributionType = Wrapper.DistributionType.ALL
}
/* Make shadow reobfuscate using SEARGE. */
reobf {
shadowJar {
mappingType = 'SEARGE'
}
}
/* Process the mcmod.info. */
processResources {
inputs.property 'version', project.version
inputs.property 'mcversion', project.minecraft.version
inputs.property 'name', mod_name
inputs.property 'modid', mod_id
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
expand (
'version':project.version,
'mcversion':project.minecraft.version,
'name':mod_name,
'modid': mod_id
)
}
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
/* Move the resources to the working directory for runs. */
task moveResources {
doLast {
ant.move file: "${buildDir}/resources/main",
todir: "${buildDir}/classes/java"
}
}
moveResources.dependsOn(processResources)
classes.dependsOn(moveResources)
reobfJar.dependsOn(shadowJar)