From 055c797e45ac2c6e4d5953a3168ad50edd03029b Mon Sep 17 00:00:00 2001 From: Cat Core Date: Thu, 5 May 2022 00:31:53 +0200 Subject: [PATCH 1/7] add legacy fabric support --- generateFabric.py | 11 ++++++++--- updateFabric.py | 10 ++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/generateFabric.py b/generateFabric.py index 5ef3458..76e2692 100755 --- a/generateFabric.py +++ b/generateFabric.py @@ -43,7 +43,7 @@ def processLoaderVersion(loaderVersion, it, loaderData): version.libraries.append(loaderLib) loaderVersions.append(version) -def processIntermediaryVersion(it): +def processIntermediaryVersion(it, maven): intermediaryRecommended.append(it["version"]) versionJarInfo = loadJarInfo(it["maven"]) version = MultiMCVersionFile(name="Intermediary Mappings", uid="net.fabricmc.intermediary", version=it["version"]) @@ -53,7 +53,7 @@ def processIntermediaryVersion(it): version.type = "release" version.libraries = [] version.volatile = True - mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven.fabricmc.net") + mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url=maven) version.libraries.append(mappingLib) intermediaryVersions.append(version) @@ -69,7 +69,12 @@ def processIntermediaryVersion(it): with open("upstream/fabric/meta-v2/intermediary.json", 'r', encoding='utf-8') as intermediaryVersionIndexFile: intermediaryVersionIndex = json.load(intermediaryVersionIndexFile) for it in intermediaryVersionIndex: - processIntermediaryVersion(it) + processIntermediaryVersion(it, "https://maven.fabricmc.net") + +with open("upstream/fabric-legacy/meta-v2/intermediary.json", 'r', encoding='utf-8') as intermediaryVersionIndexFile: + intermediaryVersionIndex = json.load(intermediaryVersionIndexFile) + for it in intermediaryVersionIndex: + processIntermediaryVersion(it, "https://maven.legacyfabric.net") for version in loaderVersions: outFilepath = "multimc/net.fabricmc.fabric-loader/%s.json" % version.version diff --git a/updateFabric.py b/updateFabric.py index 925fc0b..3786695 100755 --- a/updateFabric.py +++ b/updateFabric.py @@ -66,6 +66,9 @@ def compute_jar_file(path, url): mkdirs("upstream/fabric/loader-installer-json") mkdirs("upstream/fabric/jars") +mkdirs("upstream/fabric-legacy/meta-v2") +mkdirs("upstream/fabric-legacy/jars") + # get the version list for each component we are interested in for component in ["intermediary", "loader"]: index = get_json_file("upstream/fabric/meta-v2/" + component + ".json", "https://meta.fabricmc.net/v2/versions/" + component) @@ -73,6 +76,13 @@ def compute_jar_file(path, url): jarMavenUrl = get_maven_url(it["maven"], "https://maven.fabricmc.net/", ".jar") compute_jar_file("upstream/fabric/jars/" + it["maven"].replace(":", "."), jarMavenUrl) +# get Legacy Fabric intermediary list +for component in ["intermediary"]: + index = get_json_file("upstream/fabric-legacy/meta-v2/" + component + ".json", "https://meta.legacyfabric.net/v2/versions/" + component) + for it in index: + jarMavenUrl = get_maven_url(it["maven"], "https://meta.legacyfabric.net/", ".jar") + compute_jar_file("upstream/fabric-legacy/jars/" + it["maven"].replace(":", "."), jarMavenUrl) + # for each loader, download installer JSON file from maven with open("upstream/fabric/meta-v2/loader.json", 'r', encoding='utf-8') as loaderVersionIndexFile: loaderVersionIndex = json.load(loaderVersionIndexFile) From ced9cb93aaa9c22539ad597e60a36c8047bc4add Mon Sep 17 00:00:00 2001 From: Cat Core <34719527+arthurbambou@users.noreply.github.com> Date: Sat, 7 May 2022 23:07:55 +0200 Subject: [PATCH 2/7] Update updateFabric.py --- updateFabric.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/updateFabric.py b/updateFabric.py index 3786695..b6e90be 100755 --- a/updateFabric.py +++ b/updateFabric.py @@ -77,7 +77,7 @@ def compute_jar_file(path, url): compute_jar_file("upstream/fabric/jars/" + it["maven"].replace(":", "."), jarMavenUrl) # get Legacy Fabric intermediary list -for component in ["intermediary"]: +for component in ["intermediary", "loader"]: index = get_json_file("upstream/fabric-legacy/meta-v2/" + component + ".json", "https://meta.legacyfabric.net/v2/versions/" + component) for it in index: jarMavenUrl = get_maven_url(it["maven"], "https://meta.legacyfabric.net/", ".jar") From a357defcc7a2b29ca946b955c3f3e41665a5229a Mon Sep 17 00:00:00 2001 From: Cat Core <34719527+arthurbambou@users.noreply.github.com> Date: Sat, 7 May 2022 23:15:33 +0200 Subject: [PATCH 3/7] Update generateFabric.py --- generateFabric.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/generateFabric.py b/generateFabric.py index 76e2692..ce99f36 100755 --- a/generateFabric.py +++ b/generateFabric.py @@ -18,18 +18,21 @@ def mkdirs(path): mkdirs("multimc/net.fabricmc.fabric-loader") mkdirs("multimc/net.fabricmc.intermediary") +mkdirs("multimc/net.legacyfabric.fabric-loader") +mkdirs("multimc/net.legacyfabric.intermediary") + def loadJarInfo(mavenKey): with open("upstream/fabric/jars/" + mavenKey.replace(":", ".") + ".json", 'r', encoding='utf-8') as jarInfoFile: return FabricJarInfo(json.load(jarInfoFile)) -def processLoaderVersion(loaderVersion, it, loaderData): +def processLoaderVersion(loaderVersion, it, loaderData, kind): verStable = it["stable"] if (len(loaderRecommended) < 1) and verStable: loaderRecommended.append(loaderVersion) versionJarInfo = loadJarInfo(it["maven"]) - version = MultiMCVersionFile(name="Fabric Loader", uid="net.fabricmc.fabric-loader", version=loaderVersion) + version = MultiMCVersionFile(name="Fabric Loader", uid="net." + kind + ".fabric-loader", version=loaderVersion) version.releaseTime = versionJarInfo.releaseTime - version.requires = [DependencyEntry(uid='net.fabricmc.intermediary')] + version.requires = [DependencyEntry(uid='net." + kind " .intermediary')] version.order = 10 version.type = "release" if isinstance(loaderData.mainClass, dict): @@ -43,17 +46,17 @@ def processLoaderVersion(loaderVersion, it, loaderData): version.libraries.append(loaderLib) loaderVersions.append(version) -def processIntermediaryVersion(it, maven): +def processIntermediaryVersion(it, kind): intermediaryRecommended.append(it["version"]) versionJarInfo = loadJarInfo(it["maven"]) - version = MultiMCVersionFile(name="Intermediary Mappings", uid="net.fabricmc.intermediary", version=it["version"]) + version = MultiMCVersionFile(name="Intermediary Mappings", uid="net." + kind + ".intermediary", version=it["version"]) version.releaseTime = versionJarInfo.releaseTime version.requires = [DependencyEntry(uid='net.minecraft', equals=it["version"])] version.order = 11 version.type = "release" version.libraries = [] version.volatile = True - mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url=maven) + mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven." + kind + ".net/") version.libraries.append(mappingLib) intermediaryVersions.append(version) From f37cc29448c392bb679e183b33ab0087bc13a7ef Mon Sep 17 00:00:00 2001 From: Cat Core <34719527+arthurbambou@users.noreply.github.com> Date: Sat, 7 May 2022 23:34:59 +0200 Subject: [PATCH 4/7] Update generateFabric.py --- generateFabric.py | 97 +++++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 46 deletions(-) diff --git a/generateFabric.py b/generateFabric.py index ce99f36..1a181ba 100755 --- a/generateFabric.py +++ b/generateFabric.py @@ -6,10 +6,17 @@ import os, copy # turn loader versions into packages -loaderRecommended = [] -loaderVersions = [] -intermediaryRecommended = [] -intermediaryVersions = [] +loaderRecommended = {} +loaderVersions = {} +intermediaryRecommended = {} +intermediaryVersions = {} +kinds = ["fabricmc","legacy-fabric"] +for i in kinds: + i = i.replace("-", "") + loaderRecommended[i] = [] + loaderVersions[i] = [] + intermediaryRecommended[i] = [] + intermediaryVersions[i] = [] def mkdirs(path): if not os.path.exists(path): @@ -28,7 +35,7 @@ def loadJarInfo(mavenKey): def processLoaderVersion(loaderVersion, it, loaderData, kind): verStable = it["stable"] if (len(loaderRecommended) < 1) and verStable: - loaderRecommended.append(loaderVersion) + loaderRecommended[kind].append(loaderVersion) versionJarInfo = loadJarInfo(it["maven"]) version = MultiMCVersionFile(name="Fabric Loader", uid="net." + kind + ".fabric-loader", version=loaderVersion) version.releaseTime = versionJarInfo.releaseTime @@ -44,10 +51,10 @@ def processLoaderVersion(loaderVersion, it, loaderData, kind): version.libraries.extend(loaderData.libraries.client) loaderLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven.fabricmc.net") version.libraries.append(loaderLib) - loaderVersions.append(version) + loaderVersions[kind].append(version) def processIntermediaryVersion(it, kind): - intermediaryRecommended.append(it["version"]) + intermediaryRecommended[kind].append(it["version"]) versionJarInfo = loadJarInfo(it["maven"]) version = MultiMCVersionFile(name="Intermediary Mappings", uid="net." + kind + ".intermediary", version=it["version"]) version.releaseTime = versionJarInfo.releaseTime @@ -56,49 +63,47 @@ def processIntermediaryVersion(it, kind): version.type = "release" version.libraries = [] version.volatile = True - mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven." + kind + ".net/") + mappingLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven." + kind + ".net") version.libraries.append(mappingLib) - intermediaryVersions.append(version) + intermediaryVersions[kind].append(version) -with open("upstream/fabric/meta-v2/loader.json", 'r', encoding='utf-8') as loaderVersionIndexFile: - loaderVersionIndex = json.load(loaderVersionIndexFile) - for it in loaderVersionIndex: - version = it["version"] - with open("upstream/fabric/loader-installer-json/" + version + ".json", 'r', encoding='utf-8') as loaderVersionFile: - ldata = json.load(loaderVersionFile) - ldata = FabricInstallerDataV1(ldata) - processLoaderVersion(version, it, ldata) +for i in kinds: + j = i.replace("mc","") + i = i.replace("-","") + with open("upstream/" + j + "/meta-v2/loader.json", 'r', encoding='utf-8') as loaderVersionIndexFile: + loaderVersionIndex = json.load(loaderVersionIndexFile) + for it in loaderVersionIndex: + version = it["version"] + with open("upstream/fabric/loader-installer-json/" + version + ".json", 'r', encoding='utf-8') as loaderVersionFile: + ldata = json.load(loaderVersionFile) + ldata = FabricInstallerDataV1(ldata) + processLoaderVersion(version, it, ldata, i) -with open("upstream/fabric/meta-v2/intermediary.json", 'r', encoding='utf-8') as intermediaryVersionIndexFile: - intermediaryVersionIndex = json.load(intermediaryVersionIndexFile) - for it in intermediaryVersionIndex: - processIntermediaryVersion(it, "https://maven.fabricmc.net") + with open("upstream/" + j + "/meta-v2/intermediary.json", 'r', encoding='utf-8') as intermediaryVersionIndexFile: + intermediaryVersionIndex = json.load(intermediaryVersionIndexFile) + for it in intermediaryVersionIndex: + processIntermediaryVersion(it, i) -with open("upstream/fabric-legacy/meta-v2/intermediary.json", 'r', encoding='utf-8') as intermediaryVersionIndexFile: - intermediaryVersionIndex = json.load(intermediaryVersionIndexFile) - for it in intermediaryVersionIndex: - processIntermediaryVersion(it, "https://maven.legacyfabric.net") + for version in loaderVersions[i]: + outFilepath = "multimc/net." + i + ".fabric-loader/%s.json" % version.version + with open(outFilepath, 'w') as outfile: + json.dump(version.to_json(), outfile, sort_keys=True, indent=4) -for version in loaderVersions: - outFilepath = "multimc/net.fabricmc.fabric-loader/%s.json" % version.version - with open(outFilepath, 'w') as outfile: - json.dump(version.to_json(), outfile, sort_keys=True, indent=4) + sharedData = MultiMCSharedPackageData(uid = 'net.fabricmc.fabric-loader', name = 'Fabric Loader') + sharedData.recommended = loaderRecommended + sharedData.description = "Fabric Loader is a tool to load Fabric-compatible mods in game environments." + sharedData.projectUrl = "https://fabricmc.net" + sharedData.authors = ["Fabric Developers"] + sharedData.write() -sharedData = MultiMCSharedPackageData(uid = 'net.fabricmc.fabric-loader', name = 'Fabric Loader') -sharedData.recommended = loaderRecommended -sharedData.description = "Fabric Loader is a tool to load Fabric-compatible mods in game environments." -sharedData.projectUrl = "https://fabricmc.net" -sharedData.authors = ["Fabric Developers"] -sharedData.write() + for version in intermediaryVersions: + outFilepath = "multimc/net." + i + ".intermediary/%s.json" % version.version + with open(outFilepath, 'w') as outfile: + json.dump(version.to_json(), outfile, sort_keys=True, indent=4) -for version in intermediaryVersions: - outFilepath = "multimc/net.fabricmc.intermediary/%s.json" % version.version - with open(outFilepath, 'w') as outfile: - json.dump(version.to_json(), outfile, sort_keys=True, indent=4) - -sharedData = MultiMCSharedPackageData(uid = 'net.fabricmc.intermediary', name = 'Intermediary Mappings') -sharedData.recommended = intermediaryRecommended -sharedData.description = "Intermediary mappings allow using Fabric Loader with mods for Minecraft in a more compatible manner." -sharedData.projectUrl = "https://fabricmc.net" -sharedData.authors = ["Fabric Developers"] -sharedData.write() + sharedData = MultiMCSharedPackageData(uid = 'net.' + i + '.intermediary', name = 'Intermediary Mappings') + sharedData.recommended = intermediaryRecommended + sharedData.description = "Intermediary mappings allow using Fabric Loader with mods for Minecraft in a more compatible manner." + sharedData.projectUrl = "https://" + i + ".net" + sharedData.authors = ["Fabric Developers"] + sharedData.write() From bd37344ec85c989a45adffe7b7968e6505875c76 Mon Sep 17 00:00:00 2001 From: Cat Core <34719527+arthurbambou@users.noreply.github.com> Date: Sat, 7 May 2022 23:36:11 +0200 Subject: [PATCH 5/7] Update updateFabric.py --- updateFabric.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updateFabric.py b/updateFabric.py index b6e90be..6888949 100755 --- a/updateFabric.py +++ b/updateFabric.py @@ -66,8 +66,8 @@ def compute_jar_file(path, url): mkdirs("upstream/fabric/loader-installer-json") mkdirs("upstream/fabric/jars") -mkdirs("upstream/fabric-legacy/meta-v2") -mkdirs("upstream/fabric-legacy/jars") +mkdirs("upstream/legacy-fabric/meta-v2") +mkdirs("upstream/legacy-fabric/jars") # get the version list for each component we are interested in for component in ["intermediary", "loader"]: @@ -78,10 +78,10 @@ def compute_jar_file(path, url): # get Legacy Fabric intermediary list for component in ["intermediary", "loader"]: - index = get_json_file("upstream/fabric-legacy/meta-v2/" + component + ".json", "https://meta.legacyfabric.net/v2/versions/" + component) + index = get_json_file("upstream/legacy-fabric/meta-v2/" + component + ".json", "https://meta.legacyfabric.net/v2/versions/" + component) for it in index: jarMavenUrl = get_maven_url(it["maven"], "https://meta.legacyfabric.net/", ".jar") - compute_jar_file("upstream/fabric-legacy/jars/" + it["maven"].replace(":", "."), jarMavenUrl) + compute_jar_file("upstream/legacy-fabric/jars/" + it["maven"].replace(":", "."), jarMavenUrl) # for each loader, download installer JSON file from maven with open("upstream/fabric/meta-v2/loader.json", 'r', encoding='utf-8') as loaderVersionIndexFile: From b64192f06168e3d0f08ed7870333c6ed90e284ef Mon Sep 17 00:00:00 2001 From: Cat Core Date: Sun, 8 May 2022 11:12:54 +0200 Subject: [PATCH 6/7] add noapplet trait to legacy variant of loader --- generateFabric.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/generateFabric.py b/generateFabric.py index 1a181ba..a92d61c 100755 --- a/generateFabric.py +++ b/generateFabric.py @@ -49,6 +49,10 @@ def processLoaderVersion(loaderVersion, it, loaderData, kind): version.libraries = [] version.libraries.extend(loaderData.libraries.common) version.libraries.extend(loaderData.libraries.client) + + if "legacy" in kind: + version.addTraits = ["noapplet"] + loaderLib = MultiMCLibrary(name=GradleSpecifier(it["maven"]), url="https://maven.fabricmc.net") version.libraries.append(loaderLib) loaderVersions[kind].append(version) From c7a23d810ba2177ff7abc80009e82f261cd6868a Mon Sep 17 00:00:00 2001 From: Cat Core Date: Sun, 8 May 2022 11:16:39 +0200 Subject: [PATCH 7/7] deduplicate some code --- updateFabric.py | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/updateFabric.py b/updateFabric.py index 6888949..196c7ab 100755 --- a/updateFabric.py +++ b/updateFabric.py @@ -62,27 +62,21 @@ def compute_jar_file(path, url): with open(path + ".json", 'w') as outfile: json.dump(data.to_json(), outfile, sort_keys=True, indent=4) -mkdirs("upstream/fabric/meta-v2") -mkdirs("upstream/fabric/loader-installer-json") -mkdirs("upstream/fabric/jars") - -mkdirs("upstream/legacy-fabric/meta-v2") -mkdirs("upstream/legacy-fabric/jars") +for kind in ["fabricmc", "legacy-fabric"]: + i = kind.replace("mc", "") + j = kind.replace("-", "") -# get the version list for each component we are interested in -for component in ["intermediary", "loader"]: - index = get_json_file("upstream/fabric/meta-v2/" + component + ".json", "https://meta.fabricmc.net/v2/versions/" + component) - for it in index: - jarMavenUrl = get_maven_url(it["maven"], "https://maven.fabricmc.net/", ".jar") - compute_jar_file("upstream/fabric/jars/" + it["maven"].replace(":", "."), jarMavenUrl) + mkdirs("upstream/" + i + "/meta-v2") + mkdirs("upstream/" + i + "/jars") -# get Legacy Fabric intermediary list -for component in ["intermediary", "loader"]: - index = get_json_file("upstream/legacy-fabric/meta-v2/" + component + ".json", "https://meta.legacyfabric.net/v2/versions/" + component) - for it in index: - jarMavenUrl = get_maven_url(it["maven"], "https://meta.legacyfabric.net/", ".jar") - compute_jar_file("upstream/legacy-fabric/jars/" + it["maven"].replace(":", "."), jarMavenUrl) + # get the version list for each component we are interested in + for component in ["intermediary", "loader"]: + index = get_json_file("upstream/" + i + "/meta-v2/" + component + ".json", "https://meta." + j + ".net/v2/versions/" + component) + for it in index: + jarMavenUrl = get_maven_url(it["maven"], "https://maven." + j + ".net/", ".jar") + compute_jar_file("upstream/" + i + "/jars/" + it["maven"].replace(":", "."), jarMavenUrl) +mkdirs("upstream/fabric/loader-installer-json") # for each loader, download installer JSON file from maven with open("upstream/fabric/meta-v2/loader.json", 'r', encoding='utf-8') as loaderVersionIndexFile: loaderVersionIndex = json.load(loaderVersionIndexFile)