diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java index 69619b2a..c4df77d7 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java @@ -122,7 +122,7 @@ public abstract class MinecraftProvider { } private void verifyJars() throws IOException, SignatureVerificationFailure { - if (GradleUtils.getBooleanProperty(getProject(), Constants.Properties.DISABLE_MINECRAFT_VERIFICATION)) { + if (!GradleUtils.getBooleanProperty(getProject(), Constants.Properties.ENABLE_MINECRAFT_VERIFICATION)) { LOGGER.info("Skipping Minecraft jar verification!"); return; } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/verify/MinecraftJarVerification.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/verify/MinecraftJarVerification.java index 0a7253ca..b0fac6d3 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/verify/MinecraftJarVerification.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/verify/MinecraftJarVerification.java @@ -25,6 +25,7 @@ package net.fabricmc.loom.configuration.providers.minecraft.verify; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; import java.util.function.Function; @@ -72,6 +73,13 @@ public abstract class MinecraftJarVerification { } LOGGER.error("Verification of Minecraft {} signature failed: {}", path.getFileName(), e.getMessage()); + + try { + Files.delete(path); + } catch (IOException ioe) { + LOGGER.error("Failed to delete invalid Minecraft jar: {}", path, ioe); + } + throw e; } } diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index 89a38a9b..27c5cf50 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -159,7 +159,7 @@ public class Constants { /** * Skip the signature verification of the Minecraft jar after downloading it. */ - public static final String DISABLE_MINECRAFT_VERIFICATION = "fabric.loom.disableMinecraftVerification"; + public static final String ENABLE_MINECRAFT_VERIFICATION = "fabric.loom.enableMinecraftVerification"; /** * When using the MojangMappingLayer this will remove names for non root methods by using the intermediary mappings. */ diff --git a/src/main/java/net/fabricmc/loom/util/gradle/GradleUtils.java b/src/main/java/net/fabricmc/loom/util/gradle/GradleUtils.java index 7f97bfc3..cd1a22c3 100644 --- a/src/main/java/net/fabricmc/loom/util/gradle/GradleUtils.java +++ b/src/main/java/net/fabricmc/loom/util/gradle/GradleUtils.java @@ -109,7 +109,11 @@ public final class GradleUtils { } public static boolean getBooleanProperty(Project project, String key) { - return getBooleanPropertyProvider(project, key).getOrElse(false); + return getBooleanProperty(project, key, false); + } + + public static boolean getBooleanProperty(Project project, String key, boolean defaultValue) { + return getBooleanPropertyProvider(project, key).getOrElse(defaultValue); } public static Object getProperty(Project project, String key) { diff --git a/src/test/resources/projects/simple/gradle.properties b/src/test/resources/projects/simple/gradle.properties index 845c3560..f39bd672 100644 --- a/src/test/resources/projects/simple/gradle.properties +++ b/src/test/resources/projects/simple/gradle.properties @@ -1,5 +1,6 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx1G +fabric.loom.enableMinecraftVerification=true # Fabric Properties # check these on https://fabricmc.net/use