1
+ buildscript {
2
+ repositories {
3
+ maven {
4
+ name = " MinecraftForge"
5
+ url = uri(" https://files.minecraftforge.net/maven/" )
6
+ }
7
+
8
+ mavenCentral()
9
+ }
10
+
11
+ dependencies {
12
+ classpath(group : " net.minecraftforge.gradle" , name : " ForgeGradle" , version : " 5.1.+" , changing : true )
13
+ classpath ' org.spongepowered:mixingradle:0.7.+'
14
+ }
15
+ }
16
+
17
+ plugins {
18
+ id(" com.matthewprenger.cursegradle" ) version " 1.4.0"
19
+ id(" com.diffplug.spotless" ) version " 6.4.1"
20
+ }
21
+
22
+ apply(plugin : " net.minecraftforge.gradle" )
23
+ apply plugin : ' org.spongepowered.mixin'
24
+
25
+ group = " ninety"
26
+ version = " 1.0.0-alpha.1"
27
+
28
+ repositories {
29
+ maven {
30
+ name = " Modmaven"
31
+ url = uri(" https://modmaven.dev/" )
32
+
33
+ content {
34
+ includeGroup(" appeng" )
35
+ includeGroup(" mekanism" )
36
+ }
37
+ }
38
+
39
+ maven {
40
+ name = " CurseMaven"
41
+ url = uri(" https://cursemaven.com" )
42
+
43
+ content {
44
+ includeGroup " curse.maven"
45
+ }
46
+ }
47
+
48
+ maven {
49
+ name = " Progwml6 maven"
50
+ url = uri(" https://dvs1.progwml6.com/files/maven/" )
51
+
52
+ content {
53
+ includeGroup(" mezz.jei" )
54
+ }
55
+ }
56
+
57
+ maven {
58
+ name = " Local"
59
+ url = file(" libs" ). toURI()
60
+ }
61
+ }
62
+
63
+ dependencies {
64
+ minecraft(" net.minecraftforge:forge:${ minecraft_version} -${ forge_version} " )
65
+
66
+ implementation(fg. deobf(" appeng:appliedenergistics2:${ ae2_version} " ))
67
+
68
+ compileOnly(fg. deobf(" mezz.jei:jei-${ minecraft_version} :${ jei_version} :api" ))
69
+ runtimeOnly(fg. deobf(" mezz.jei:jei-${ minecraft_version} :${ jei_version} " ))
70
+
71
+ compileOnly(fg. deobf(" mekanism:Mekanism:${ minecraft_version} -${ mekanism_version} " ))
72
+ runtimeOnly(fg. deobf(" mekanism:Mekanism:${ minecraft_version} -${ mekanism_version} " ))
73
+
74
+ compileOnly(fg. deobf(" curse.maven:appmek-574300:${ appmek_fileid} " ))
75
+ runtimeOnly(fg. deobf(" curse.maven:appmek-574300:${ appmek_fileid} " ))
76
+
77
+ annotationProcessor ' org.spongepowered:mixin:0.8.5:processor'
78
+ }
79
+
80
+ sourceSets {
81
+ main {
82
+ resources {
83
+ srcDir(" src/generated/resources" )
84
+ }
85
+ }
86
+ }
87
+
88
+ java {
89
+ sourceCompatibility = JavaVersion . VERSION_17
90
+ targetCompatibility = JavaVersion . VERSION_17
91
+ }
92
+
93
+ // //////////////////
94
+ // Forge/Minecraft
95
+ minecraft {
96
+ mappings(channel : " official" , version : " ${ minecraft_version} " )
97
+
98
+ /**
99
+ * Configures properties common to all run configurations
100
+ */
101
+ def commonRunProperties = {
102
+ workingDirectory(project. file(" run" ))
103
+
104
+ property(" forge.logging.console.level" , " debug" )
105
+ property(" fml.earlyprogresswindow" , " false" )
106
+ jvmArgs(" --add-opens" , " java.base/sun.security.util=ALL-UNNAMED" )
107
+ jvmArgs(" --add-opens" , " java.base/java.util.jar=ALL-UNNAMED" )
108
+
109
+ // See https://github.com/Vazkii/Patchouli#mixin-troubleshooting
110
+ property(" mixin.env.remapRefMap" , " true" )
111
+ property(" mixin.env.refMapRemappingFile" , " ${ projectDir} /build/createSrgToMcp/output.srg" )
112
+ // property "mixin.debug.export", "true"
113
+
114
+ mods {
115
+ megacells {
116
+ source(sourceSets. main)
117
+ }
118
+ }
119
+ }
120
+
121
+ runs {
122
+ client {
123
+ with(commonRunProperties)
124
+ }
125
+
126
+ server {
127
+ with(commonRunProperties)
128
+ }
129
+
130
+ data {
131
+ with(commonRunProperties)
132
+ // ForgeGradle will just force-exit the Gradle Daemon which fails our builds in case
133
+ // a daemon is used for any reason.
134
+ forceExit false
135
+ args(" --mod" , " megacells" , " --all" , " --output" , file(" src/generated/resources/" ), " --existing" , file(" src/main/resources" ))
136
+ }
137
+ }
138
+ }
139
+
140
+ tasks. withType(JavaCompile ) {
141
+ options. encoding = " UTF-8"
142
+ options. release. set(17 )
143
+ }
144
+
145
+ processResources {
146
+ inputs. property(" version" , project. version)
147
+
148
+ exclude(" .cache" )
149
+
150
+ filesMatching(" META-INF/mods.toml" ) {
151
+ expand(" version" : project. version)
152
+ }
153
+ }
154
+
155
+ jar {
156
+ finalizedBy(" reobfJar" )
157
+
158
+ from(sourceSets. main. output. classesDirs)
159
+ from(sourceSets. main. output. resourcesDir)
160
+
161
+ manifest {
162
+ attributes([
163
+ " Specification-Title" : " MEGA Cells" ,
164
+ " Specification-Vendor" : " 90" ,
165
+ " Specification-Version" : " ${ project.version} " ,
166
+ " Implementation-Title" : " ${ project.name} " ,
167
+ " Implementation-Version" : " ${ project.version} " ,
168
+ " Implementation-Vendor" : " 90" ,
169
+ " Implementation-Timestamp" : new Date (). format(" yyyy-MM-dd'T'HH:mm:ssZ" )
170
+ ])
171
+ }
172
+ }
173
+
174
+ // ///////////
175
+ // Spotless
176
+ spotless {
177
+ java {
178
+ target(" src/main/java/**/*.java" )
179
+
180
+ endWithNewline()
181
+ indentWithSpaces()
182
+ removeUnusedImports()
183
+ toggleOffOn()
184
+ eclipse(). configFile(" codeformat/codeformat.xml" )
185
+ importOrderFile(" codeformat/ae2.importorder" )
186
+ }
187
+
188
+ format(" json" ) {
189
+ target(" src/*/resources/**/*.json" )
190
+ targetExclude(" src/generated/resources/**" )
191
+ prettier(). config(parser : " json" )
192
+ }
193
+ }
194
+
195
+ // //////////////
196
+ // CurseForge
197
+ /*
198
+ System.getenv("CURSEFORGE")?.with { String key ->
199
+ curseforge {
200
+ apiKey = key
201
+
202
+ project {
203
+ id = "609977"
204
+ changelogType = "markdown"
205
+ changelog = "View changelog at [the release page](https://github.com/Technici4n/AE2Things-Forge/releases/tag/${version})"
206
+
207
+ if (version.contains("alpha")) {
208
+ releaseType = "alpha"
209
+ } else if (version.contains("beta")) {
210
+ releaseType = "beta"
211
+ } else {
212
+ releaseType = "release"
213
+ }
214
+
215
+ addGameVersion("${minecraft_version}")
216
+ addGameVersion("Forge")
217
+
218
+ mainArtifact(jar) {
219
+ displayName = "AE2 Things v${version}"
220
+
221
+ relations {
222
+ requiredDependency("applied-energistics-2")
223
+ }
224
+ }
225
+ }
226
+ }
227
+ }
228
+ */
0 commit comments