From d0921156a57d9cc5efd8a4b62abb37b864e38c85 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Mar 2024 03:31:13 +0700 Subject: [PATCH 1/2] 1.0.10 --- src/client/resources/dynamicpack.client.mixins.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/resources/dynamicpack.client.mixins.json b/src/client/resources/dynamicpack.client.mixins.json index bd81fa4..eb26858 100644 --- a/src/client/resources/dynamicpack.client.mixins.json +++ b/src/client/resources/dynamicpack.client.mixins.json @@ -1,11 +1,11 @@ { "required": true, - "package": "com.adamcalculator.dynamicpack.mixin", + "package": "com.adamcalculator.dynamicpack.mixin.client", "compatibilityLevel": "JAVA_17", "client": [ - "client.MinecraftClientMixin" + "MinecraftClientMixin" ], "injectors": { "defaultRequire": 1 - } + } } \ No newline at end of file From 267d797ac9bf8757dcb15424eefe9cec45a3aebe Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Mar 2024 03:51:56 +0700 Subject: [PATCH 2/2] 1.0.11 --- .../dynamicpack/DynamicPackModBase.java | 2 ++ .../com/adamcalculator/dynamicpack/pack/Pack.java | 11 ++++------- .../adamcalculator/dynamicpack/FabricDynamicMod.java | 12 ++++++++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/com/adamcalculator/dynamicpack/DynamicPackModBase.java b/common/src/main/java/com/adamcalculator/dynamicpack/DynamicPackModBase.java index d97bc7c..5641fe9 100644 --- a/common/src/main/java/com/adamcalculator/dynamicpack/DynamicPackModBase.java +++ b/common/src/main/java/com/adamcalculator/dynamicpack/DynamicPackModBase.java @@ -123,4 +123,6 @@ public boolean isMinecraftInitialized() { } public abstract String getCurrentGameVersion(); + + public abstract boolean checkResourcePackMetaValid(String s); } \ No newline at end of file diff --git a/common/src/main/java/com/adamcalculator/dynamicpack/pack/Pack.java b/common/src/main/java/com/adamcalculator/dynamicpack/pack/Pack.java index 4fa85fa..1fbeabc 100644 --- a/common/src/main/java/com/adamcalculator/dynamicpack/pack/Pack.java +++ b/common/src/main/java/com/adamcalculator/dynamicpack/pack/Pack.java @@ -4,6 +4,7 @@ import com.adamcalculator.dynamicpack.PackUtil; import com.adamcalculator.dynamicpack.sync.PackSyncProgress; import com.adamcalculator.dynamicpack.util.AFiles; +import com.adamcalculator.dynamicpack.util.Out; import org.json.JSONObject; import java.io.File; @@ -135,15 +136,11 @@ private void checkSafePackMinecraftMeta() throws IOException { private boolean checkMinecraftMetaIsValid(String s) { try { - JSONObject jsonObject = new JSONObject(s); - JSONObject pack = jsonObject.getJSONObject("pack"); - pack.getLong("pack_format"); - if (pack.getString("description").length() > 60) { - throw new Exception("Description length"); - } + return DynamicPackModBase.INSTANCE.checkResourcePackMetaValid(s); + } catch (Exception e) { + Out.error("Error while check meta valid.", e); return false; } - return true; } } diff --git a/src/client/java/com/adamcalculator/dynamicpack/FabricDynamicMod.java b/src/client/java/com/adamcalculator/dynamicpack/FabricDynamicMod.java index a483bb1..11f954e 100644 --- a/src/client/java/com/adamcalculator/dynamicpack/FabricDynamicMod.java +++ b/src/client/java/com/adamcalculator/dynamicpack/FabricDynamicMod.java @@ -11,7 +11,9 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.toast.SystemToast; import net.minecraft.client.toast.ToastManager; +import net.minecraft.resource.metadata.PackResourceMetadataReader; import net.minecraft.text.Text; +import net.minecraft.util.JsonHelper; public class FabricDynamicMod extends DynamicPackModBase implements ClientModInitializer { private static final boolean SHOW_STATE = false; @@ -80,6 +82,16 @@ public String getCurrentGameVersion() { return SharedConstants.getGameVersion().getId(); } + @Override + public boolean checkResourcePackMetaValid(String s) { + try { + new PackResourceMetadataReader().fromJson(JsonHelper.deserialize(s)); + return true; + } catch (Exception e) { + return false; + } + } + private void tryToReloadResources() { MinecraftClient client = MinecraftClient.getInstance(); if (client != null) {