3
3
from enum import StrEnum
4
4
from typing import Optional
5
5
6
+ from requests import request
7
+
6
8
7
9
class IntermediaryType (StrEnum ):
8
10
LegacyFabric = "net.fabricmc.intermediary.json"
@@ -27,7 +29,7 @@ def __init__(self, minecraft_version: str, lwjgl_version: str, intermediary_type
27
29
self .minecraft_version_additions = self .fix_version (version )
28
30
29
31
def process (self , subject : str ) -> str :
30
- subject = subject .replace ("${loader_version}" , LOADER_VERSION )
32
+ subject = subject .replace ("${loader_version}" , loader_version )
31
33
subject = subject .replace ("${minecraft_version}" , self .minecraft_version + self .minecraft_version_additions )
32
34
subject = subject .replace ("${lwjgl_version}" , self .lwjgl_version )
33
35
subject = subject .replace ("${lwjgl_name}" , "LWJGL 3" if self .lwjgl_version .startswith ("3" ) else "LWJGL 2" )
@@ -40,7 +42,7 @@ def prepare_skeleton(self):
40
42
self .process_file (f"patches/{ self .intermediary_type } " , out = "patches/net.fabricmc.intermediary.json" )
41
43
42
44
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 :
44
46
z .write ("temp/mmc-pack.json" , "mmc-pack.json" )
45
47
z .write ("temp/instance.cfg" , "instance.cfg" )
46
48
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):
61
63
t .write (self .process (f .read ()))
62
64
63
65
@staticmethod
64
- def fix_version (version : str ) -> str :
66
+ def fix_version (candidate : str ) -> str :
67
+ if candidate .count ("." ) < 2 :
68
+ return ""
65
69
# accounts for the ornithe naming convention
66
70
addition = ""
67
- if version == "1.0" :
71
+ if candidate == "1.0" :
68
72
addition += ".0"
69
- if int (version .split ("." )[1 ]) < 3 :
73
+ if int (candidate .split ("." )[1 ]) < 3 :
70
74
addition += "-client"
71
75
return addition
72
76
@@ -76,6 +80,7 @@ def fix_version(version: str) -> str:
76
80
("1.12.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
77
81
("1.12" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabricV2 ),
78
82
("1.11.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
83
+ ("1.10.2" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
79
84
("1.9.4" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
80
85
("1.8.9" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
81
86
("1.8" , "2.9.1" , IntermediaryType .LegacyFabric ),
@@ -84,11 +89,21 @@ def fix_version(version: str) -> str:
84
89
("1.7.4" , "2.9.4-nightly-20150209" , IntermediaryType .LegacyFabric ),
85
90
("1.7.2" , "2.9.0" , IntermediaryType .LegacyFabric ),
86
91
("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)
89
100
]
90
101
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
92
107
mkdirs ("out" )
93
108
94
109
for version , lwjgl , intermediary in versions :
0 commit comments