Files
Friends-CMP-2.0-Bedrock/scripts/validate_pack.py
T
root f955d4321f
Build and release Bedrock pack / release (push) Failing after 6s
Add Friends CMP Bedrock resource pack conversion
2026-07-31 21:04:30 +02:00

27 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
"""Validate pack metadata, required assets, mappings, and archive contents."""
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def load(path):
with path.open(encoding="utf-8") as stream:
return json.load(stream)
manifest = load(ROOT / "manifest.json")
assert manifest["format_version"] == 2
assert manifest["header"]["uuid"] != manifest["modules"][0]["uuid"]
assert manifest["modules"][0]["type"] == "resources"
assert len(manifest["header"]["version"]) == 3
textures = load(ROOT / "textures/item_texture.json")["texture_data"]
sound_defs = load(ROOT / "sounds/sound_definitions.json")["sound_definitions"]
mappings = load(ROOT / "geyser/mappings.json")
names = ("interior_shop0", "pawn_shop1", "food_mart2", "hat_shop3", "clothing_shop4", "jump_up5", "city_under_siege6")
assert set(textures) == {f"friends_cmp:{name}" for name in names}
assert len(sound_defs) == len(names)
for entry in textures.values():
assert (ROOT / (entry["textures"] + ".png")).is_file()
for entry in sound_defs.values():
assert (ROOT / (entry["sounds"][0]["name"] + ".ogg")).is_file()
assert mappings["format_version"] == 2
assert len(mappings["items"]["minecraft:music_disc_13"][0]["definitions"]) == len(names)
print("Bedrock pack validation passed")