diff options
| author | Sefa Eyeoglu <contact@scrumplex.net> | 2025-11-19 20:33:23 +0100 |
|---|---|---|
| committer | Sefa Eyeoglu <contact@scrumplex.net> | 2025-11-19 20:33:23 +0100 |
| commit | 9d751238a566464df8a184755718bf1ac2f485e4 (patch) | |
| tree | cb2efc7d09273793a3f1f1c7e4fa5c062e38d47c /meta | |
| parent | 82a0a6bb6f8fa675e70c1a4f668ea77633cdd13a (diff) | |
| download | Project-Tick-9d751238a566464df8a184755718bf1ac2f485e4.tar.gz Project-Tick-9d751238a566464df8a184755718bf1ac2f485e4.zip | |
feat: add workarounds for unobfuscated versions
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/common/fabric.py | 7 | ||||
| -rw-r--r-- | meta/model/fabric.py | 4 | ||||
| -rwxr-xr-x | meta/run/generate_fabric.py | 9 | ||||
| -rwxr-xr-x | meta/run/update_fabric.py | 28 |
4 files changed, 37 insertions, 11 deletions
diff --git a/meta/common/fabric.py b/meta/common/fabric.py index 2a35695cf1..667c38482f 100644 --- a/meta/common/fabric.py +++ b/meta/common/fabric.py @@ -10,3 +10,10 @@ LOADER_COMPONENT = "net.fabricmc.fabric-loader" INTERMEDIARY_COMPONENT = "net.fabricmc.intermediary" DATETIME_FORMAT_HTTP = "%a, %d %b %Y %H:%M:%S %Z" + +# version -> releaseTime +BROKEN_INTERMEDIARIES = { + "1.21.11-pre1_unobfuscated": "2025-11-19T11:03:07+00:00" # releaseTime of 1.21.11 intermediary +} +EARLY_UNOBFUSCATED_SUFFIX = "_unobfuscated" +NOOP_INTERMEDIARY_VERSION = "net.fabricmc:intermediary:0.0.0" diff --git a/meta/model/fabric.py b/meta/model/fabric.py index 5cb0e9caab..7acd7c8756 100644 --- a/meta/model/fabric.py +++ b/meta/model/fabric.py @@ -6,6 +6,10 @@ from pydantic import Field from . import Library, MetaBase +EARLY_UNOBFUSCATED_SUFFIX = "_unobfuscated" +NOOP_INTERMEDIARY_VERSION = "net.fabricmc:intermediary:0.0.0" + + class FabricInstallerArguments(MetaBase): client: Optional[List[str]] common: Optional[List[str]] diff --git a/meta/run/generate_fabric.py b/meta/run/generate_fabric.py index 7ca50dd6aa..9d1f96263b 100755 --- a/meta/run/generate_fabric.py +++ b/meta/run/generate_fabric.py @@ -8,11 +8,13 @@ from meta.common import ( transform_maven_key, ) from meta.common.fabric import ( + EARLY_UNOBFUSCATED_SUFFIX, JARS_DIR, INSTALLER_INFO_DIR, META_DIR, INTERMEDIARY_COMPONENT, LOADER_COMPONENT, + NOOP_INTERMEDIARY_VERSION, ) from meta.model import MetaVersion, Dependency, Library, MetaPackage, GradleSpecifier from meta.model.fabric import FabricJarInfo, FabricInstallerDataV1, FabricMainClasses @@ -76,8 +78,13 @@ def process_intermediary_version(entry) -> MetaVersion: v.type = "release" v.libraries = [] v.volatile = True + + maven = entry["maven"] + if EARLY_UNOBFUSCATED_SUFFIX in entry["version"]: + maven = NOOP_INTERMEDIARY_VERSION + intermediary_lib = Library( - name=GradleSpecifier.from_string(entry["maven"]), + name=GradleSpecifier.from_string(maven), url="https://maven.fabricmc.net", ) v.libraries.append(intermediary_lib) diff --git a/meta/run/update_fabric.py b/meta/run/update_fabric.py index e0c1d819c9..43a27e146c 100755 --- a/meta/run/update_fabric.py +++ b/meta/run/update_fabric.py @@ -14,6 +14,7 @@ from meta.common import ( default_session, ) from meta.common.fabric import ( + BROKEN_INTERMEDIARIES, JARS_DIR, INSTALLER_INFO_DIR, META_DIR, @@ -70,7 +71,7 @@ def get_binary_file(path, url): f.write(chunk) -def compute_jar_file(path, url): +def fetch_release_time(path, url): # These two approaches should result in the same metadata, except for the timestamp which might be a few minutes # off for the fallback method try: @@ -91,18 +92,25 @@ def compute_jar_file(path, url): if tstamp_new > tstamp: tstamp = tstamp_new - data = FabricJarInfo(release_time=tstamp) - data.write(path + ".json") + return tstamp def compute_jar_file_concurrent(it): - print(f"Processing {it['version']} ") - jar_maven_url = get_maven_url(it["maven"], "https://maven.fabricmc.net/", ".jar") - compute_jar_file( - os.path.join(UPSTREAM_DIR, JARS_DIR, transform_maven_key(it["maven"])), - jar_maven_url, - ) - print(f"Processing {it['version']} Done") + print(f"Processing {it['maven']} ") + path = os.path.join(UPSTREAM_DIR, JARS_DIR, transform_maven_key(it["maven"])) + tstamp = BROKEN_INTERMEDIARIES.get(it["version"]) + if not tstamp: + jar_maven_url = get_maven_url( + it["maven"], "https://maven.fabricmc.net/", ".jar" + ) + tstamp = fetch_release_time( + path, + jar_maven_url, + ) + + data = FabricJarInfo(release_time=tstamp) + data.write(f"{path}.json") + print(f"Processing {it['maven']} Done") def get_json_file_concurrent(it): |
