33from enum import StrEnum
44from typing import Optional
55
6+ from requests import request
7+
68
79class IntermediaryType (StrEnum ):
810 LegacyFabric = "net.fabricmc.intermediary.json"
@@ -27,7 +29,7 @@ def __init__(self, minecraft_version: str, lwjgl_version: str, intermediary_type
2729 self .minecraft_version_additions = self .fix_version (version )
2830
2931 def process (self , subject : str ) -> str :
30- subject = subject .replace ("${loader_version}" , LOADER_VERSION )
32+ subject = subject .replace ("${loader_version}" , loader_version )
3133 subject = subject .replace ("${minecraft_version}" , self .minecraft_version + self .minecraft_version_additions )
3234 subject = subject .replace ("${lwjgl_version}" , self .lwjgl_version )
3335 subject = subject .replace ("${lwjgl_name}" , "LWJGL 3" if self .lwjgl_version .startswith ("3" ) else "LWJGL 2" )
@@ -40,7 +42,7 @@ def prepare_skeleton(self):
4042 self .process_file (f"patches/{ self .intermediary_type } " , out = "patches/net.fabricmc.intermediary.json" )
4143
4244 def create_zip (self ):
43- with zipfile .ZipFile (f"out/{ self .minecraft_version } +loader.{ LOADER_VERSION } .zip" , "w" ) as z :
45+ with zipfile .ZipFile (f"out/{ self .minecraft_version } +loader.{ loader_version } .zip" , "w" ) as z :
4446 z .write ("temp/mmc-pack.json" , "mmc-pack.json" )
4547 z .write ("temp/instance.cfg" , "instance.cfg" )
4648 z .write ("temp/patches/net.fabricmc.intermediary.json" , "patches/net.fabricmc.intermediary.json" )
@@ -61,12 +63,14 @@ def process_file(self, *files: str, out: Optional[str] = None):
6163 t .write (self .process (f .read ()))
6264
6365 @staticmethod
64- def fix_version (version : str ) -> str :
66+ def fix_version (candidate : str ) -> str :
67+ if candidate .count ("." ) < 2 :
68+ return ""
6569 # accounts for the ornithe naming convention
6670 addition = ""
67- if version == "1.0" :
71+ if candidate == "1.0" :
6872 addition += ".0"
69- if int (version .split ("." )[1 ]) < 3 :
73+ if int (candidate .split ("." )[1 ]) < 3 :
7074 addition += "-client"
7175 return addition
7276
@@ -76,6 +80,7 @@ def fix_version(version: str) -> str:
7680 ("1.12.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
7781 ("1.12" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabricV2 ),
7882 ("1.11.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
83+ ("1.10.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
7984 ("1.9.4" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
8085 ("1.8.9" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
8186 ("1.8" , "2.9.1" , IntermediaryType .LegacyFabric ),
@@ -84,11 +89,21 @@ def fix_version(version: str) -> str:
8489 ("1.7.4" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
8590 ("1.7.2" , "2.9.0" , IntermediaryType .LegacyFabric ),
8691 ("1.6.4" , "2.9.0" , IntermediaryType .LegacyFabricNoApplet ),
87- ("1.3.2" , "2.9.0" , IntermediaryType .LegacyFabricNoAppletOldArgs ),
88- ("1.0" , "2.9.0" , IntermediaryType .Ornithe )
92+ ("1.5.2" , "2.9.0" , IntermediaryType .LegacyFabricNoAppletOldArgs ),
93+ ("1.4.2" , "2.9.0" , IntermediaryType .LegacyFabricNoAppletOldArgs ),
94+ ("1.3.1" , "2.9.0" , IntermediaryType .LegacyFabricNoAppletOldArgs ),
95+ ("15w14a" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
96+ ("1.RV-Pre1" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabricV2 )
97+ # ("1.2.5", "2.9.0", IntermediaryType.Ornithe),
98+ # ("1.1", "2.9.0", IntermediaryType.Ornithe),
99+ # ("1.0", "2.9.0", IntermediaryType.Ornithe)
89100]
90101
91- LOADER_VERSION = "0.15.0"
102+ loader_version = "0.15.3"
103+ try :
104+ loader_version = request ("GET" , "https://meta.fabricmc.net/v2/versions/loader" ).json ()[0 ].get ("version" )
105+ except ConnectionError :
106+ pass
92107mkdirs ("out" )
93108
94109for version , lwjgl , intermediary in versions :
0 commit comments