Skip to content

Commit 53053b1

Browse files
committed
mcsr changes
1 parent bc0855e commit 53053b1

5 files changed

+83
-79
lines changed

generate.py

+42-65
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
#!/usr/bin/env python3
21
import os
32
import zipfile
3+
from enum import StrEnum
44

5-
loader: str = "0.14.21"
6-
legacy_fixes: str = "legacy-fixes-1.0.1.jar"
7-
lwjgl3: str = "3.1.6"
8-
lwjgl2: str = "2.9.4-nightly-20150209"
9-
lwjgl2_patch: str = "2.9.4+legacyfabric.5"
5+
loader: str = "0.14.22"
6+
7+
8+
class IntermediaryType(StrEnum):
9+
LegacyFabric = "net.fabricmc.intermediary.json"
10+
LegacyFabricNoApplet = "net.fabricmc.intermediary.pre-1.7.json"
11+
LegacyFabricV2 = "net.fabricmc.intermediary.v2.json"
12+
Ornithe = "net.fabricmc.intermediary.ornithe.json"
1013

1114

1215
def mkdir_if_not_exists(path: str):
@@ -15,18 +18,18 @@ def mkdir_if_not_exists(path: str):
1518

1619

1720
class Generator:
18-
def __init__(self, loader_version: str, minecraft_version: str, lwjgl_version: str, lwjgl_patch: str, path: str = "temp"):
21+
def __init__(self, loader_version: str, minecraft_version: str, lwjgl_version: str,
22+
intermediary_type: IntermediaryType, path: str = "temp"):
1923
self.lwjgl_version: str = lwjgl_version
2024
self.minecraft_version: str = minecraft_version
2125
self.loader_version: str = loader_version
22-
self.lwjgl_patch: str = lwjgl_patch
26+
self.intermediary_type: IntermediaryType = intermediary_type
2327
self.path: str = path
2428

2529
def process(self, subject: str) -> str:
2630
subject = subject.replace("${loader_version}", self.loader_version)
2731
subject = subject.replace("${minecraft_version}", self.minecraft_version)
2832
subject = subject.replace("${lwjgl_version}", self.lwjgl_version)
29-
subject = subject.replace("${lwjgl_patch}", self.lwjgl_patch)
3033
subject = subject.replace("${lwjgl_name}",
3134
"LWJGL 3" if self.lwjgl_version.startswith(
3235
"3") else "LWJGL 2")
@@ -46,84 +49,58 @@ def prepare_skeleton(self):
4649
with open("temp/instance.cfg", "w") as t:
4750
t.write(self.process(f.read()))
4851

49-
mkdir_if_not_exists("temp/patches")
52+
# ornithe naming convention
53+
if self.minecraft_version == "1.0":
54+
self.minecraft_version += ".0"
55+
if int(self.minecraft_version.split(".")[1]) < 3:
56+
self.minecraft_version += "-client"
5057

51-
if not self.lwjgl_version.startswith("3"):
52-
with open("skel/patches/org.lwjgl.lwjgl.json", "r") as f:
53-
with open("temp/patches/org.lwjgl.lwjgl.json", "w") as t:
54-
t.write(self.process(f.read()))
55-
56-
if self.minecraft_version == "1.6.4" or "1.5.2" or "1.4.7" or "1.3.2":
57-
with open("skel/patches/net.fabricmc.intermediary.pre-1.7.json", "r") as f:
58-
with open("temp/patches/net.fabricmc.intermediary.json", "w") as t:
59-
t.write(self.process(f.read()))
60-
else:
61-
with open("skel/patches/net.fabricmc.intermediary.json", "r") as f:
62-
with open("temp/patches/net.fabricmc.intermediary.json", "w") as t:
63-
t.write(self.process(f.read()))
64-
65-
with open("skel/legacyfabric.png", "rb") as f:
66-
with open("temp/legacyfabric.png", "wb") as t:
67-
t.write(f.read())
68-
69-
if self.minecraft_version == "1.8.9" or self.minecraft_version == "1.7.10" or self.minecraft_version == "1.6.4" or self.minecraft_version == "1.5.2" or self.minecraft_version == "1.4.7" or self.minecraft_version == "1.3.2":
70-
mkdir_if_not_exists("temp/.minecraft")
71-
mkdir_if_not_exists("temp/.minecraft/mods")
72-
with open(f"skel/.minecraft/mods/{legacy_fixes}", "rb") as f:
73-
with open(f"temp/.minecraft/mods/{legacy_fixes}", "wb") as t:
74-
t.write(f.read())
58+
mkdir_if_not_exists("temp/patches")
59+
with open(f"skel/patches/{self.intermediary_type}", "r") as f:
60+
with open("temp/patches/net.fabricmc.intermediary.json", "w") as t:
61+
t.write(self.process(f.read()))
7562

7663
def create_zip(self):
77-
with zipfile.ZipFile(f"out/legacyfabric-{self.minecraft_version}+loader.{self.loader_version}.zip", "w") as z:
64+
with zipfile.ZipFile(
65+
f"out/{self.minecraft_version}+loader.{self.loader_version}+lwjgl.{self.lwjgl_version}.zip", "w") as z:
7866
z.write("temp/mmc-pack.json", "mmc-pack.json")
7967
z.write("temp/instance.cfg", "instance.cfg")
8068
z.write("temp/patches/net.fabricmc.intermediary.json",
8169
"patches/net.fabricmc.intermediary.json")
82-
z.write("temp/legacyfabric.png", "legacyfabric.png")
83-
84-
if not self.lwjgl_version.startswith("3"):
85-
z.write("temp/patches/org.lwjgl.lwjgl.json",
86-
"patches/org.lwjgl.json")
87-
88-
if self.minecraft_version == "1.8.9" or self.minecraft_version == "1.7.10" or self.minecraft_version == "1.6.4" or self.minecraft_version == "1.5.2" or self.minecraft_version == "1.4.7" or self.minecraft_version == "1.3.2":
89-
z.write(f"temp/.minecraft/mods/{legacy_fixes}", f".minecraft/mods/{legacy_fixes}")
70+
z.write("skel/legacyfabric.png", "legacyfabric.png")
9071

9172
self.cleanup()
9273

9374
def cleanup(self):
9475
for root, dirs, files in os.walk(self.path, topdown=False):
9576
for file in files:
9677
os.remove(os.path.join(root, file))
97-
for dir in dirs:
98-
os.rmdir(os.path.join(root, dir))
78+
for directory in dirs:
79+
os.rmdir(os.path.join(root, directory))
9980

10081
os.rmdir(self.path)
10182

10283

10384
versions = [
104-
("1.13.2", 3),
105-
("1.12.2", 2),
106-
("1.11.2", 2),
107-
("1.10.2", 2),
108-
("1.9.4", 2),
109-
("1.8.9", 2),
110-
("1.7.10", 2),
111-
("1.6.4", 2),
112-
("1.5.2", 2),
113-
("1.4.7", 2),
114-
("1.3.2", 2),
85+
("1.13.2", "3.1.6", IntermediaryType.LegacyFabric),
86+
("1.12.2", "2.9.4-nightly-20150209", IntermediaryType.LegacyFabric),
87+
("1.12", "2.9.4-nightly-20150209", IntermediaryType.LegacyFabricV2),
88+
("1.11.2", "2.9.4-nightly-20150209", IntermediaryType.LegacyFabric),
89+
("1.9.4", "2.9.4-nightly-20150209", IntermediaryType.LegacyFabric),
90+
("1.8.9", "2.9.4-nightly-20150209", IntermediaryType.LegacyFabric),
91+
("1.8", "2.9.1", IntermediaryType.LegacyFabric),
92+
("1.7.10", "2.9.1", IntermediaryType.LegacyFabric),
93+
("1.7.4", "2.9.1-nightly-20131017", IntermediaryType.LegacyFabric),
94+
("1.7.2", "2.9.0", IntermediaryType.LegacyFabric),
95+
("1.6.4", "2.9.0", IntermediaryType.LegacyFabric),
96+
("1.3.2", "2.9.0", IntermediaryType.LegacyFabric),
97+
("1.0", "2.9.0", IntermediaryType.Ornithe)
11598
]
11699

117100
print(f"target loader: {loader}")
118101
mkdir_if_not_exists("out")
119-
for version, lwjgl in versions:
120-
lwjgl_version = lwjgl3 if lwjgl == 3 else lwjgl2
121-
lwjgl_patch = lwjgl3 if lwjgl == 3 else lwjgl2_patch
122-
print(f"generating {version} with LWJGL {lwjgl_patch}...")
123-
g = Generator(loader, version, lwjgl_version, lwjgl_patch)
102+
for version, lwjgl, intermediary in versions:
103+
print(f"generating {version} with LWJGL {lwjgl}...")
104+
g = Generator(loader, version, lwjgl, intermediary)
124105
g.prepare_skeleton()
125106
g.create_zip()
126-
127-
# g = Generator(loader, "1.13.2", lwjgl3)
128-
# g.prepare_skeleton()
129-
# g.create_zip()

readme.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# multimc-instance-creator
2-
generates MultiMC instances for legacyfabric given a loader version
1+
## legacy fabric instance generator
32

4-
## thanks
5-
[Grayray75](https://github.com/Grayray75) and their original [instances](https://github.com/Grayray75/LegacyFabric-MultiMC)
3+
A generator for MultiMC-like instances for legacy fabric with vanilla launcher lwjgl versions (for windows) (source: https://cdn.discordapp.com/attachments/1129825537112682568/1131028229877141535/libraries.csv).
4+
5+
Fork of [Legacy-Fabric/multimc-instance-creator](https://github.com/Legacy-Fabric/multimc-instance-creator)
+10-10
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
2-
"formatVersion": 1,
3-
"+libraries": [
4-
{
5-
"name": "net.legacyfabric:intermediary:${minecraft_version}",
6-
"url": "https://maven.legacyfabric.net/"
7-
}
8-
],
9-
"name": "Intermediary Mappings",
10-
"uid": "net.fabricmc.intermediary",
11-
"version": "${minecraft_version}"
2+
"formatVersion": 1,
3+
"+libraries": [
4+
{
5+
"name": "net.legacyfabric:intermediary:${minecraft_version}",
6+
"url": "https://maven.legacyfabric.net/"
7+
}
8+
],
9+
"name": "Intermediary Mappings",
10+
"uid": "net.fabricmc.intermediary",
11+
"version": "${minecraft_version}"
1212
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"formatVersion": 1,
3+
"+libraries": [
4+
{
5+
"name": "net.ornithemc:calamus-intermediary:${minecraft_version}",
6+
"url": "https://maven.ornithemc.net/releases"
7+
}
8+
],
9+
"+traits": [
10+
"noapplet"
11+
],
12+
"name": "Intermediary Mappings",
13+
"uid": "net.fabricmc.intermediary",
14+
"version": "${minecraft_version}"
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"formatVersion": 1,
3+
"+libraries": [
4+
{
5+
"name": "net.legacyfabric.v2:intermediary:${minecraft_version}",
6+
"url": "https://maven.legacyfabric.net/"
7+
}
8+
],
9+
"name": "Intermediary Mappings",
10+
"uid": "net.fabricmc.intermediary",
11+
"version": "${minecraft_version}"
12+
}

0 commit comments

Comments
 (0)