Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,6 @@ public boolean isMinecraftInitialized() {
}

public abstract String getCurrentGameVersion();

public abstract boolean checkResourcePackMetaValid(String s);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down
6 changes: 3 additions & 3 deletions src/client/resources/dynamicpack.client.mixins.json
Original file line number Diff line number Diff line change
@@ -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
}
}
}