Skip to content

Commit 1b7bd5e

Browse files
JDLogicLexManos
authored andcommitted
Add updateMappings task to userdev (#628)
Add warning message when using official mappings from Mojang
1 parent c5779b6 commit 1b7bd5e

File tree

9 files changed

+83
-12
lines changed

9 files changed

+83
-12
lines changed

src/patcher/java/net/minecraftforge/gradle/patcher/task/TaskApplyMappings.java renamed to src/common/java/net/minecraftforge/gradle/common/task/TaskApplyMappings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* USA
1919
*/
2020

21-
package net.minecraftforge.gradle.patcher.task;
21+
package net.minecraftforge.gradle.common.task;
2222

2323
import java.io.File;
2424
import java.io.FileOutputStream;

src/patcher/java/net/minecraftforge/gradle/patcher/task/TaskApplyRangeMap.java renamed to src/common/java/net/minecraftforge/gradle/common/task/TaskApplyRangeMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* USA
1919
*/
2020

21-
package net.minecraftforge.gradle.patcher.task;
21+
package net.minecraftforge.gradle.common.task;
2222

2323
import org.gradle.api.tasks.Input;
2424
import org.gradle.api.tasks.InputFile;

src/patcher/java/net/minecraftforge/gradle/patcher/task/TaskExtractExistingFiles.java renamed to src/common/java/net/minecraftforge/gradle/common/task/TaskExtractExistingFiles.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* USA
1919
*/
2020

21-
package net.minecraftforge.gradle.patcher.task;
21+
package net.minecraftforge.gradle.common.task;
2222

2323
import java.io.File;
2424
import java.io.FileOutputStream;

src/patcher/java/net/minecraftforge/gradle/patcher/task/TaskExtractRangeMap.java renamed to src/common/java/net/minecraftforge/gradle/common/task/TaskExtractRangeMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* USA
1919
*/
2020

21-
package net.minecraftforge.gradle.patcher.task;
21+
package net.minecraftforge.gradle.common.task;
2222

2323
import org.gradle.api.file.FileCollection;
2424
import org.gradle.api.tasks.Input;

src/common/java/net/minecraftforge/gradle/common/util/Utils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public class Utils {
9090
public static final String INSTALLERTOOLS = "net.minecraftforge:installertools:1.1.7:fatjar";
9191
public static final long ZIPTIME = 628041600000L;
9292
public static final TimeZone GMT = TimeZone.getTimeZone("GMT");
93+
public static final String OFFICIAL_MAPPING_USAGE =
94+
"These mapping files are licensed as All Rights Reserved with permission to use the contents for INTERNAL, "
95+
+ "REFERENCE purposes. Please avoid publishing any source code referencing these mappings. A full copy of "
96+
+ "the license can be found at the top of the mapping file itself and in the 19w36a snapshot article at: "
97+
+ "https://www.minecraft.net/en-us/article/minecraft-snapshot-19w36a.";
9398

9499
public static void extractFile(ZipFile zip, String name, File output) throws IOException {
95100
extractFile(zip, zip.getEntry(name), output);

src/patcher/java/net/minecraftforge/gradle/patcher/task/DownloadMCPMappingsTask.java renamed to src/mcp/java/net/minecraftforge/gradle/mcp/task/DownloadMCPMappingsTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* USA
1919
*/
2020

21-
package net.minecraftforge.gradle.patcher.task;
21+
package net.minecraftforge.gradle.mcp.task;
2222

2323
import net.minecraftforge.gradle.common.util.MavenArtifactDownloader;
2424
import net.minecraftforge.gradle.mcp.MCPRepo;

src/patcher/java/net/minecraftforge/gradle/patcher/PatcherPlugin.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@
3939
import net.minecraftforge.gradle.mcp.task.DownloadMCPConfigTask;
4040
import net.minecraftforge.gradle.mcp.task.SetupMCPTask;
4141
import net.minecraftforge.gradle.patcher.task.CreateFakeSASPatches;
42-
import net.minecraftforge.gradle.patcher.task.DownloadMCPMappingsTask;
42+
import net.minecraftforge.gradle.mcp.task.DownloadMCPMappingsTask;
4343
import net.minecraftforge.gradle.patcher.task.GenerateBinPatches;
44-
import net.minecraftforge.gradle.patcher.task.TaskApplyMappings;
44+
import net.minecraftforge.gradle.common.task.TaskApplyMappings;
4545
import net.minecraftforge.gradle.patcher.task.TaskApplyPatches;
46-
import net.minecraftforge.gradle.patcher.task.TaskApplyRangeMap;
46+
import net.minecraftforge.gradle.common.task.TaskApplyRangeMap;
4747
import net.minecraftforge.gradle.patcher.task.TaskCreateExc;
4848
import net.minecraftforge.gradle.patcher.task.TaskCreateSrg;
49-
import net.minecraftforge.gradle.patcher.task.TaskExtractExistingFiles;
50-
import net.minecraftforge.gradle.patcher.task.TaskExtractRangeMap;
49+
import net.minecraftforge.gradle.common.task.TaskExtractExistingFiles;
50+
import net.minecraftforge.gradle.common.task.TaskExtractRangeMap;
5151
import net.minecraftforge.gradle.patcher.task.TaskFilterNewJar;
5252
import net.minecraftforge.gradle.patcher.task.TaskGeneratePatches;
5353
import net.minecraftforge.gradle.patcher.task.TaskGenerateUserdevConfig;

src/userdev/java/net/minecraftforge/gradle/userdev/UserDevPlugin.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
import net.minecraftforge.gradle.common.util.Utils;
2727
import net.minecraftforge.gradle.common.util.VersionJson;
2828
import net.minecraftforge.gradle.mcp.MCPRepo;
29+
import net.minecraftforge.gradle.mcp.task.DownloadMCPMappingsTask;
30+
import net.minecraftforge.gradle.common.task.TaskApplyMappings;
31+
import net.minecraftforge.gradle.common.task.TaskApplyRangeMap;
32+
import net.minecraftforge.gradle.common.task.TaskExtractExistingFiles;
33+
import net.minecraftforge.gradle.common.task.TaskExtractRangeMap;
2934
import net.minecraftforge.gradle.userdev.tasks.GenerateSRG;
3035
import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace;
3136
import net.minecraftforge.gradle.userdev.util.DeobfuscatingRepo;
@@ -40,11 +45,13 @@
4045
import org.gradle.api.plugins.JavaPluginConvention;
4146
import org.gradle.api.tasks.TaskProvider;
4247
import org.gradle.api.tasks.bundling.Jar;
48+
import org.gradle.api.tasks.compile.JavaCompile;
4349

4450
import javax.annotation.Nonnull;
4551
import java.io.File;
4652
import java.io.IOException;
4753
import java.util.ArrayList;
54+
import java.util.Set;
4855
import java.util.concurrent.TimeUnit;
4956

5057
public class UserDevPlugin implements Plugin<Project> {
@@ -159,7 +166,65 @@ public RenameJarInPlace create(String jarName) {
159166
task.setMeta(downloadMCMeta.get().getOutput());
160167
});
161168

169+
if (project.hasProperty("UPDATE_MAPPINGS")) {
170+
String version = (String)project.property("UPDATE_MAPPINGS");
171+
String channel = project.hasProperty("UPDATE_MAPPINGS_CHANNEL") ? (String)project.property("UPDATE_MAPPINGS_CHANNEL") : "snapshot";
172+
173+
logger.lifecycle("This process uses Srg2Source for java source file renaming. Please forward relevant bug reports to https://github.com/MinecraftForge/Srg2Source/issues.");
174+
if ("official".equals(channel)) {
175+
String warning = "WARNING: This project will be updated to use the official obfuscation mappings provided by Mojang. " + Utils.OFFICIAL_MAPPING_USAGE;
176+
logger.warn(warning);
177+
}
178+
179+
JavaCompile javaCompile = (JavaCompile) project.getTasks().getByName("compileJava");
180+
JavaPluginConvention javaConv = (JavaPluginConvention) project.getConvention().getPlugins().get("java");
181+
Set<File> srcDirs = javaConv.getSourceSets().getByName("main").getJava().getSrcDirs();
182+
183+
TaskProvider<DownloadMCPMappingsTask> dlMappingsNew = project.getTasks().register("downloadMappingsNew", DownloadMCPMappingsTask.class);
184+
TaskProvider<TaskExtractRangeMap> extractRangeConfig = project.getTasks().register("extractRangeMap", TaskExtractRangeMap.class);
185+
TaskProvider<TaskApplyRangeMap> applyRangeConfig = project.getTasks().register("applyRangeMap", TaskApplyRangeMap.class);
186+
TaskProvider<TaskApplyMappings> toMCPNew = project.getTasks().register("srg2mcpNew", TaskApplyMappings.class);
187+
TaskProvider<TaskExtractExistingFiles> extractMappedNew = project.getTasks().register("extractMappedNew", TaskExtractExistingFiles.class);
188+
189+
extractRangeConfig.configure(task -> {
190+
task.addSources(srcDirs);
191+
task.addDependencies(javaCompile.getClasspath());
192+
});
193+
194+
applyRangeConfig.configure(task -> {
195+
task.dependsOn(extractRangeConfig, createMcpToSrg);
196+
task.setRangeMap(extractRangeConfig.get().getOutput());
197+
task.setSrgFiles(createMcpToSrg.get().getOutput());
198+
task.setSources(srcDirs);
199+
});
200+
201+
dlMappingsNew.configure(task -> {
202+
task.setMappings(channel + "_" + version);
203+
task.setOutput(project.file("build/mappings_new.zip"));
204+
});
205+
206+
toMCPNew.configure(task -> {
207+
task.dependsOn(dlMappingsNew, applyRangeConfig);
208+
task.setInput(applyRangeConfig.get().getOutput());
209+
task.setMappings(dlMappingsNew.get().getOutput());
210+
});
211+
212+
extractMappedNew.configure(task -> {
213+
task.dependsOn(toMCPNew);
214+
task.setArchive(toMCPNew.get().getOutput());
215+
srcDirs.forEach(task::addTarget);
216+
});
217+
218+
TaskProvider<DefaultTask> updateMappings = project.getTasks().register("updateMappings", DefaultTask.class);
219+
updateMappings.get().dependsOn(extractMappedNew);
220+
}
221+
162222
project.afterEvaluate(p -> {
223+
if ("official".equals(extension.getMappingChannel())) {
224+
String warning = "WARNING: This project is configured to use the official obfuscation mappings provided by Mojang. " + Utils.OFFICIAL_MAPPING_USAGE;
225+
logger.warn(warning);
226+
}
227+
163228
MinecraftUserRepo mcrepo = null;
164229
DeobfuscatingRepo deobfrepo = null;
165230

src/userdev/java/net/minecraftforge/gradle/userdev/util/Deobfuscator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package net.minecraftforge.gradle.userdev.util;
2222

2323
import net.minecraftforge.gradle.common.util.*;
24+
import net.minecraftforge.gradle.mcp.MCPRepo;
2425
import net.minecraftforge.gradle.userdev.tasks.RenameJarSrg2Mcp;
2526

2627
import org.apache.commons.io.IOUtils;
@@ -190,7 +191,7 @@ private File findMapping(String mapping) {
190191
int idx = mapping.lastIndexOf('_');
191192
String channel = mapping.substring(0, idx);
192193
String version = mapping.substring(idx + 1);
193-
String desc = "de.oceanlabs.mcp:mcp_" + channel + ":" + version + "@zip";
194-
return MavenArtifactDownloader.manual(project, desc, false);
194+
String desc = MCPRepo.getMappingDep(channel, version);
195+
return MavenArtifactDownloader.generate(project, desc, false);
195196
}
196197
}

0 commit comments

Comments
 (0)