mirror of
https://github.com/unmojang/meta.git
synced 2025-09-24 03:31:03 -04:00
Support modernized installers made for old Forge versions
This commit is contained in:
parent
9c74f5b571
commit
78574131fa
@ -87,6 +87,58 @@ def versionFromProfile(profile, version):
|
|||||||
result.order = 5
|
result.order = 5
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def versionFromModernizedInstaller(installerVersion : MojangVersionFile, version: ForgeVersion2):
|
||||||
|
eprint("Generating Modernized Forge %s." % version.longVersion)
|
||||||
|
result = MultiMCVersionFile({"name":"Forge", "version":version.rawVersion, "uid":"net.minecraftforge" })
|
||||||
|
mcversion = version.mcversion
|
||||||
|
result.requires = [DependencyEntry(uid='net.minecraft', equals=mcversion)]
|
||||||
|
result.mainClass = installerVersion.mainClass
|
||||||
|
args = installerVersion.minecraftArguments
|
||||||
|
tweakers = []
|
||||||
|
expression = re.compile("--tweakClass ([a-zA-Z0-9\\.]+)")
|
||||||
|
match = expression.search(args)
|
||||||
|
while match != None:
|
||||||
|
tweakers.append(match.group(1));
|
||||||
|
args = args[:match.start()] + args[match.end():]
|
||||||
|
match = expression.search(args);
|
||||||
|
if len(tweakers) > 0:
|
||||||
|
args = args.strip()
|
||||||
|
result.addTweakers = tweakers;
|
||||||
|
# result.minecraftArguments = args
|
||||||
|
result.releaseTime = installerVersion.releaseTime
|
||||||
|
libs = []
|
||||||
|
mcFilter = loadMcVersionFilter(mcversion)
|
||||||
|
for upstreamLib in installerVersion.libraries:
|
||||||
|
mmcLib = MultiMCLibrary(upstreamLib.to_json())
|
||||||
|
if mmcLib.name.isLwjgl():
|
||||||
|
continue
|
||||||
|
if shouldIgnoreArtifact(mcFilter, mmcLib.name):
|
||||||
|
continue
|
||||||
|
if mmcLib.name.group == "net.minecraftforge":
|
||||||
|
if mmcLib.name.artifact == "forge":
|
||||||
|
fixedName = mmcLib.name
|
||||||
|
fixedName.classifier = "universal"
|
||||||
|
mmcLib.downloads.artifact.path = fixedName.getPath()
|
||||||
|
mmcLib.downloads.artifact.url = "https://files.minecraftforge.net/maven/%s" % fixedName.getPath()
|
||||||
|
mmcLib.name = fixedName
|
||||||
|
libs.append(mmcLib)
|
||||||
|
continue
|
||||||
|
elif mmcLib.name.artifact == "minecraftforge":
|
||||||
|
fixedName = mmcLib.name
|
||||||
|
fixedName.artifact = "forge"
|
||||||
|
fixedName.classifier = "universal"
|
||||||
|
fixedName.version = "%s-%s" % (mcversion, fixedName.version)
|
||||||
|
mmcLib.downloads.artifact.path = fixedName.getPath()
|
||||||
|
mmcLib.downloads.artifact.url = "https://files.minecraftforge.net/maven/%s" % fixedName.getPath()
|
||||||
|
mmcLib.name = fixedName
|
||||||
|
libs.append(mmcLib)
|
||||||
|
continue
|
||||||
|
libs.append(mmcLib)
|
||||||
|
|
||||||
|
result.libraries = libs
|
||||||
|
result.order = 5
|
||||||
|
return result
|
||||||
|
|
||||||
def versionFromLegacy(version, legacyinfo : ForgeLegacyInfo):
|
def versionFromLegacy(version, legacyinfo : ForgeLegacyInfo):
|
||||||
result = MultiMCVersionFile({"name":"Forge", "version":version.rawVersion, "uid":"net.minecraftforge" })
|
result = MultiMCVersionFile({"name":"Forge", "version":version.rawVersion, "uid":"net.minecraftforge" })
|
||||||
mcversion = version.mcversion_sane
|
mcversion = version.mcversion_sane
|
||||||
@ -189,6 +241,43 @@ legacyinfolist = None
|
|||||||
with open(tsPath, 'r', encoding='utf-8') as tsFile:
|
with open(tsPath, 'r', encoding='utf-8') as tsFile:
|
||||||
legacyinfolist = ForgeLegacyInfoList(json.load(tsFile))
|
legacyinfolist = ForgeLegacyInfoList(json.load(tsFile))
|
||||||
|
|
||||||
|
legacyVersions = [
|
||||||
|
"1.1",
|
||||||
|
"1.2.3",
|
||||||
|
"1.2.4",
|
||||||
|
"1.2.5",
|
||||||
|
"1.3.2",
|
||||||
|
"1.4.1",
|
||||||
|
"1.4.2",
|
||||||
|
"1.4.3",
|
||||||
|
"1.4.4",
|
||||||
|
"1.4.5",
|
||||||
|
"1.4.6",
|
||||||
|
"1.4.7",
|
||||||
|
"1.5",
|
||||||
|
"1.5.1",
|
||||||
|
"1.5.2",
|
||||||
|
"1.6.1",
|
||||||
|
"1.6.2",
|
||||||
|
"1.6.3",
|
||||||
|
"1.6.4",
|
||||||
|
"1.7.10",
|
||||||
|
"1.7.10-pre4",
|
||||||
|
"1.7.2",
|
||||||
|
"1.8",
|
||||||
|
"1.8.8",
|
||||||
|
"1.8.9",
|
||||||
|
"1.9",
|
||||||
|
"1.9.4",
|
||||||
|
"1.10",
|
||||||
|
"1.10.2",
|
||||||
|
"1.11",
|
||||||
|
"1.11.2",
|
||||||
|
"1.12",
|
||||||
|
"1.12.1",
|
||||||
|
"1.12.2",
|
||||||
|
]
|
||||||
|
|
||||||
for id, entry in remoteVersionlist.versions.items():
|
for id, entry in remoteVersionlist.versions.items():
|
||||||
if entry.mcversion == None:
|
if entry.mcversion == None:
|
||||||
eprint ("Skipping %s with invalid MC version" % id)
|
eprint ("Skipping %s with invalid MC version" % id)
|
||||||
@ -216,9 +305,12 @@ for id, entry in remoteVersionlist.versions.items():
|
|||||||
if os.path.isfile(installerVersionFilepath):
|
if os.path.isfile(installerVersionFilepath):
|
||||||
with open(installerVersionFilepath, 'r', encoding='utf-8') as installerVersionFile:
|
with open(installerVersionFilepath, 'r', encoding='utf-8') as installerVersionFile:
|
||||||
installerVersion = MojangVersionFile(json.load(installerVersionFile))
|
installerVersion = MojangVersionFile(json.load(installerVersionFile))
|
||||||
with open(profileFilepath, 'r', encoding='utf-8') as profileFile:
|
if entry.mcversion in legacyVersions:
|
||||||
installerProfile = ForgeInstallerProfileV2(json.load(profileFile))
|
outVersion = versionFromModernizedInstaller(installerVersion, version)
|
||||||
outVersion = versionFromBuildSystemInstaller(installerVersion, installerProfile, version)
|
else:
|
||||||
|
with open(profileFilepath, 'r', encoding='utf-8') as profileFile:
|
||||||
|
installerProfile = ForgeInstallerProfileV2(json.load(profileFile))
|
||||||
|
outVersion = versionFromBuildSystemInstaller(installerVersion, installerProfile, version)
|
||||||
else:
|
else:
|
||||||
if version.usesInstaller():
|
if version.usesInstaller():
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user