From 63ac0b141fb4302818b3d6a0f174b43c73185a38 Mon Sep 17 00:00:00 2001 From: Aurora Date: Tue, 19 Aug 2025 16:00:22 +0100 Subject: [PATCH] Add option to enforce pack.mcmeta check, off by default --- .../geysermc/pack/converter/bootstrap/Main.java | 1 + .../pack/converter/bootstrap/ThunderGUI.java | 1 + .../geysermc/pack/converter/PackConverter.java | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/Main.java b/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/Main.java index 3e3bc1b..09eaef4 100644 --- a/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/Main.java +++ b/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/Main.java @@ -73,6 +73,7 @@ public class Main { System.setProperty("PackConverter.Debug", String.valueOf(debug)); new PackConverter() + .enforcePackCheck(true) .input(Path.of(inputPath)) .output(Path.of(outputPath)) .packName(packName) diff --git a/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/ThunderGUI.java b/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/ThunderGUI.java index e85c67c..34e5a09 100644 --- a/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/ThunderGUI.java +++ b/bootstrap/src/main/java/org/geysermc/pack/converter/bootstrap/ThunderGUI.java @@ -123,6 +123,7 @@ public class ThunderGUI extends JFrame { new Thread(() -> { try { new PackConverter() + .enforcePackCheck(true) .input(inputPath) .output(outputPath) .packName(packName.getText().isBlank() ? inputPath.getFileName().toString() : packName.getText()) diff --git a/converter/src/main/java/org/geysermc/pack/converter/PackConverter.java b/converter/src/main/java/org/geysermc/pack/converter/PackConverter.java index 3cec325..4da4638 100644 --- a/converter/src/main/java/org/geysermc/pack/converter/PackConverter.java +++ b/converter/src/main/java/org/geysermc/pack/converter/PackConverter.java @@ -61,6 +61,7 @@ public final class PackConverter { private String textureSubdirectory; private boolean compressed; + private boolean enforcePackCheck = false; private final Map, List>> actionListeners = new IdentityHashMap<>(); @@ -169,6 +170,17 @@ public final class PackConverter { return this; } + /** + * Sets if PackConverter should enforce a check for `pack.mcmeta` in the input. + * + * @param enforcePackCheck whether the check should be done + * @return this instance + */ + public PackConverter enforcePackCheck(boolean enforcePackCheck) { + this.enforcePackCheck = enforcePackCheck; + return this; + } + /** * Adds a converter to the converter list. * @@ -294,10 +306,10 @@ public final class PackConverter { // Need to download the client jar, then use the // client jar to get the vanilla models and textures, so we can // ensure all parent models exist to convert them to Bedrock. - VanillaPackProvider.create(vanillaPackPath, this.logListener); + VanillaPackProvider.create(this.vanillaPackPath, this.logListener); ZipUtils.openFileSystem(this.input, this.compressed, input -> { - if (!Files.exists(input.resolve("pack.mcmeta"))) { + if (this.enforcePackCheck && !Files.exists(input.resolve("pack.mcmeta"))) { logListener.error("Invalid Java Edition resource pack. No pack.mcmeta found."); return; }