1+ buildscript {
2+ repositories {
3+ mavenLocal()
4+ maven { url = ' http://files.minecraftforge.net/maven' }
5+ jcenter()
6+ mavenCentral()
7+ }
8+ dependencies {
9+ classpath ' net.minecraftforge.gradle:ForgeGradle:3.0.+'
10+ }
11+ }
12+
13+ apply plugin : ' eclipse'
14+ apply plugin : ' net.minecraftforge.gradle.forgedev.patcher'
15+
16+ configurations {
17+ shade
18+ compile. extendsFrom shade
19+ }
20+
21+ group = ' me.mikex86'
22+ version = ' 1.0.0-alpha'
23+
24+ ext {
25+ minecraft_version = ' 1.16.5'
26+ mcp_version = ' 20210115.111550'
27+ mappings_channel = ' snapshot'
28+ mappings_version = ' 20201028-1.16.3'
29+ }
30+
31+ repositories {
32+ mavenCentral()
33+ }
34+
35+ dependencies {
36+ shade ' net.minecraftforge:forgespi:3.0.+'
37+ }
38+
39+ project(' :mcp' ) {
40+ apply plugin : ' net.minecraftforge.gradle.forgedev.mcp'
41+ mcp {
42+ config = minecraft_version + ' -' + mcp_version
43+ pipeline = ' joined'
44+ }
45+ }
46+
47+ evaluationDependsOn(' :mcp' )
48+
49+ patcher {
50+ parent = project(' :mcp' )
51+ patchedSrc = file(' src/main/java' )
52+ mappings channel : mappings_channel, version : mappings_version
53+ mcVersion = minecraft_version
54+ }
55+
56+ jar {
57+ manifest {
58+ attributes(
59+ ' Main-Class' : ' net.minecraft.server.Main' ,
60+ ' Multi-Release' : ' true'
61+ )
62+ }
63+ from { configurations .runtimeClasspath .collect { file -> file. isDirectory() ? file : zipTree(file) } } {
64+ exclude ' META-INF/MOJANG*'
65+ exclude ' *.dll*' , ' *.so*' , ' *.dylib*' , ' *.csv' , ' *.jnilib'
66+ exclude ' **/Log4j2Plugins.dat'
67+ exclude ' org/lwjgl/**'
68+ exclude ' assets/**'
69+ // Exclude all log4j configuration from libraries, the log4j configuration in resource will remain
70+ exclude ' log4j2.xml'
71+ }
72+ }
73+
74+ task runclient (type : JavaExec ) {
75+ group = " MCP"
76+ description = " Runs the client"
77+ classpath sourceSets. main. runtimeClasspath
78+ if (System . getProperty(" os.name" ). toLowerCase(). contains(" mac" )) {
79+ jvmArgs ' -XstartOnFirstThread'
80+ }
81+ args ' --gameDir' , ' .'
82+ args ' --version' , minecraft_version
83+ args ' --assetsDir' , downloadAssets. output
84+ args ' --assetIndex' , " 1.16"
85+ args ' --accessToken' , ' 0'
86+ main ' net.minecraft.client.main.Main'
87+ workingDir ' run'
88+ }
89+
90+ task createDiffs () {
91+ doFirst {
92+ mkdir ' diffs'
93+ def process = Runtime . getRuntime(). exec(" git diff --no-index build/mcp_diff_src/ src/main/java/ --output diffs/velox_source.diff" )
94+ process. waitFor()
95+ }
96+ }
97+
98+ task applyDiffs () {
99+ doFirst {
100+ copy {
101+ from ' build/mcp_diff_src'
102+ into ' build/mcp_diff_clean_src'
103+ }
104+ def diffs = file(" diffs" ). listFiles()
105+ diffs. each { diff ->
106+ def process = Runtime . getRuntime(). exec(" git apply \" ${ diff.path} \" " )
107+ process. waitFor()
108+ }
109+ delete ' build/mcp_diff_src'
110+ copy {
111+ from ' build/mcp_diff_clean_src'
112+ into ' build/mcp_diff_src'
113+ }
114+ delete ' build/mcp_diff_clean_src'
115+ }
116+ }
117+
118+
119+ task setup () {
120+ group = " MCP"
121+ description = " Setups the dev workspace"
122+ dependsOn ' :extractMapped'
123+ doLast {
124+ mkdir ' run/assets'
125+ copy {
126+ from downloadAssets. output. path
127+ into ' run/assets'
128+ }
129+ mkdir ' build/mcp_diff_src'
130+ copy {
131+ from ' src/main/java'
132+ into ' build/mcp_diff_src'
133+ }
134+ }
135+ }
136+
137+ task copyAssets {
138+ group = " MCP"
139+ description = " Download and place the assets into the run folder"
140+ dependsOn ' :downloadAssets'
141+ mkdir ' run/assets'
142+ copy {
143+ from downloadAssets. output. path
144+ into ' run/assets'
145+ }
146+ }
147+
148+ task buildFinalJar {
149+ dependsOn ordered(' :setup' , ' :applyDiffs' , ' :build' )
150+ }
151+
152+ def ordered (String ... dependencyPaths ) {
153+ def dependencies = dependencyPaths. collect { tasks. getByPath(it) }
154+ for (int i = 0 ; i < dependencies. size() - 1 ; i++ ) {
155+ dependencies[i + 1 ]. mustRunAfter(dependencies[i])
156+ }
157+ return dependencies
158+ }
0 commit comments