Skip to content

Commit 300bc85

Browse files
authored
Update main.py
1 parent 23967c4 commit 300bc85

File tree

1 file changed

+102
-40
lines changed

1 file changed

+102
-40
lines changed

main.py

Lines changed: 102 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
from colorama import init, Fore, Style
1+
from os import system, listdir, path, remove
2+
from colorama import init, Fore, Style
23
from urllib.request import urlopen
34
from shutil import copyfileobj
45
from subprocess import call
@@ -8,56 +9,75 @@
89
from json import loads
910
from art import tprint
1011

11-
from os.path import basename
12-
from os import system
1312

1413
ram = 4
1514

15+
forgev = {
16+
"versions": {
17+
'1.20.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.1.0/forge-1.20.1-47.1.0-installer.jar',
18+
'1.20': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.20-46.0.14/forge-1.20-46.0.14-installer.jar',
19+
'1.19.4': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.4-45.1.0/forge-1.19.4-45.1.0-installer.jar',
20+
'1.19.3': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.3-44.1.0/forge-1.19.3-44.1.0-installer.jar',
21+
'1.19.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.2-43.2.0/forge-1.19.2-43.2.0-installer.jar',
22+
'1.19.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.19.1-42.0.9/forge-1.19.1-42.0.9-installer.jar',
23+
'1.19': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.19-41.1.0/forge-1.19-41.1.0-installer.jar',
24+
'1.18.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.2.0/forge-1.18.2-40.2.0-installer.jar',
25+
'1.18.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.1-39.1.0/forge-1.18.1-39.1.0-installer.jar',
26+
'1.18': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.18-38.0.17/forge-1.18-38.0.17-installer.jar',
27+
'1.17.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.17.1-37.1.1/forge-1.17.1-37.1.1-installer.jar',
28+
'1.16.5': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.5-36.2.34/forge-1.16.5-36.2.34-installer.jar',
29+
'1.16.4': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.4-35.1.4/forge-1.16.4-35.1.4-installer.jar',
30+
'1.16.3': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.3-34.1.0/forge-1.16.3-34.1.0-installer.jar',
31+
'1.16.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.2-33.0.61/forge-1.16.2-33.0.61-installer.jar',
32+
'1.16.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.1-32.0.108/forge-1.16.1-32.0.108-installer.jar',
33+
'1.15.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.15.2-31.2.57/forge-1.15.2-31.2.57-installer.jar',
34+
'1.15.1': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.15.1-30.0.51/forge-1.15.1-30.0.51-installer.jar',
35+
'1.15': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.15-29.0.4/forge-1.15-29.0.4-installer.jar',
36+
'1.14.4': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.14.4-28.2.26/forge-1.14.4-28.2.26-installer.jar',
37+
'1.14.3': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.14.3-27.0.60/forge-1.14.3-27.0.60-installer.jar',
38+
'1.14.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.14.2-36.0.63/forge-1.14.2-36.0.63-installer.jar',
39+
'1.13.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.13.2-25.0.223/forge-1.13.2-25.0.223-installer.jar',
40+
'1.12.2': 'https://maven.minecraftforge.net/net/minecraftforge/forge/1.12.2-14.23.5.2859/forge-1.12.2-14.23.5.2859-installer.jar'
41+
}
42+
}
43+
1644
paperv = {
17-
"latest": "1.20.1",
18-
"versions": {
19-
"1.20.1": "https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/172/downloads/paper-1.20.1-172.jar",
20-
"1.20": "https://api.papermc.io/v2/projects/paper/versions/1.20/builds/17/downloads/paper-1.20-17.jar",
21-
"1.19.4": "https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/550/downloads/paper-1.19.4-550.jar",
22-
"1.19.3": "https://api.papermc.io/v2/projects/paper/versions/1.19.3/builds/448/downloads/paper-1.19.3-448.jar",
23-
"1.19.2": "https://api.papermc.io/v2/projects/paper/versions/1.19.2/builds/307/downloads/paper-1.19.2-307.jar",
24-
"1.19.1": "https://api.papermc.io/v2/projects/paper/versions/1.19.1/builds/111/downloads/paper-1.19.1-111.jar",
25-
"1.19": "https://api.papermc.io/v2/projects/paper/versions/1.19/builds/81/downloads/paper-1.19-81.jar",
26-
"1.18.2": "https://api.papermc.io/v2/projects/paper/versions/1.18.2/builds/388/downloads/paper-1.18.2-388.jar",
27-
"1.18.1": "https://api.papermc.io/v2/projects/paper/versions/1.18.1/builds/216/downloads/paper-1.18.1-216.jar",
28-
"1.18": "https://api.papermc.io/v2/projects/paper/versions/1.18/builds/66/downloads/paper-1.18-66.jar",
29-
"1.17.1": "https://api.papermc.io/v2/projects/paper/versions/1.17.1/builds/411/downloads/paper-1.17.1-411.jar",
30-
"1.17": "https://api.papermc.io/v2/projects/paper/versions/1.17/builds/79/downloads/paper-1.17-79.jar",
31-
"1.16.5": "https://api.papermc.io/v2/projects/paper/versions/1.16.5/builds/794/downloads/paper-1.16.5-794.jar",
32-
"1.16.4": "https://api.papermc.io/v2/projects/paper/versions/1.16.4/builds/416/downloads/paper-1.16.4-416.jar",
33-
"1.16.3": "https://api.papermc.io/v2/projects/paper/versions/1.16.3/builds/253/downloads/paper-1.16.3-253.jar",
34-
"1.16.2": "https://api.papermc.io/v2/projects/paper/versions/1.16.2/builds/189/downloads/paper-1.16.2-189.jar",
35-
"1.16.1": "https://api.papermc.io/v2/projects/paper/versions/1.16.1/builds/138/downloads/paper-1.16.1-138.jar",
36-
"1.15.2": "https://api.papermc.io/v2/projects/paper/versions/1.15.2/builds/393/downloads/paper-1.15.2-393.jar",
37-
"1.14.4": "https://api.papermc.io/v2/projects/paper/versions/1.14.4/builds/245/downloads/paper-1.14.4-245.jar",
38-
"1.13.2": "https://api.papermc.io/v2/projects/paper/versions/1.13.2/builds/657/downloads/paper-1.13.2-657.jar",
39-
"1.12.2": "https://api.papermc.io/v2/projects/paper/versions/1.12.2/builds/1620/downloads/paper-1.12.2-1620.jar",
40-
"1.11.2": "https://api.papermc.io/v2/projects/paper/versions/1.11.2/builds/1106/downloads/paper-1.11.2-1106.jar",
41-
"1.10.2": "https://api.papermc.io/v2/projects/paper/versions/1.10.2/builds/918/downloads/paper-1.10.2-918.jar",
42-
"1.9.4": "https://api.papermc.io/v2/projects/paper/versions/1.9.4/builds/775/downloads/paper-1.9.4-775.jar",
43-
"1.8.8": "https://api.papermc.io/v2/projects/paper/versions/1.8.8/builds/445/downloads/paper-1.8.8-445.jar"
44-
}
45+
"versions": {
46+
"1.20.1": "https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/172/downloads/paper-1.20.1-172.jar",
47+
"1.20": "https://api.papermc.io/v2/projects/paper/versions/1.20/builds/17/downloads/paper-1.20-17.jar",
48+
"1.19.4": "https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/550/downloads/paper-1.19.4-550.jar",
49+
"1.19.3": "https://api.papermc.io/v2/projects/paper/versions/1.19.3/builds/448/downloads/paper-1.19.3-448.jar",
50+
"1.19.2": "https://api.papermc.io/v2/projects/paper/versions/1.19.2/builds/307/downloads/paper-1.19.2-307.jar",
51+
"1.19.1": "https://api.papermc.io/v2/projects/paper/versions/1.19.1/builds/111/downloads/paper-1.19.1-111.jar",
52+
"1.19": "https://api.papermc.io/v2/projects/paper/versions/1.19/builds/81/downloads/paper-1.19-81.jar",
53+
"1.18.2": "https://api.papermc.io/v2/projects/paper/versions/1.18.2/builds/388/downloads/paper-1.18.2-388.jar",
54+
"1.18.1": "https://api.papermc.io/v2/projects/paper/versions/1.18.1/builds/216/downloads/paper-1.18.1-216.jar",
55+
"1.18": "https://api.papermc.io/v2/projects/paper/versions/1.18/builds/66/downloads/paper-1.18-66.jar",
56+
"1.17.1": "https://api.papermc.io/v2/projects/paper/versions/1.17.1/builds/411/downloads/paper-1.17.1-411.jar",
57+
"1.17": "https://api.papermc.io/v2/projects/paper/versions/1.17/builds/79/downloads/paper-1.17-79.jar",
58+
"1.16.5": "https://api.papermc.io/v2/projects/paper/versions/1.16.5/builds/794/downloads/paper-1.16.5-794.jar",
59+
"1.16.4": "https://api.papermc.io/v2/projects/paper/versions/1.16.4/builds/416/downloads/paper-1.16.4-416.jar",
60+
"1.16.3": "https://api.papermc.io/v2/projects/paper/versions/1.16.3/builds/253/downloads/paper-1.16.3-253.jar",
61+
"1.16.2": "https://api.papermc.io/v2/projects/paper/versions/1.16.2/builds/189/downloads/paper-1.16.2-189.jar",
62+
"1.16.1": "https://api.papermc.io/v2/projects/paper/versions/1.16.1/builds/138/downloads/paper-1.16.1-138.jar",
63+
"1.15.2": "https://api.papermc.io/v2/projects/paper/versions/1.15.2/builds/393/downloads/paper-1.15.2-393.jar",
64+
"1.14.4": "https://api.papermc.io/v2/projects/paper/versions/1.14.4/builds/245/downloads/paper-1.14.4-245.jar",
65+
"1.13.2": "https://api.papermc.io/v2/projects/paper/versions/1.13.2/builds/657/downloads/paper-1.13.2-657.jar",
66+
"1.12.2": "https://api.papermc.io/v2/projects/paper/versions/1.12.2/builds/1620/downloads/paper-1.12.2-1620.jar",
67+
}
4568
}
4669

4770
init()
4871

4972

5073
def setupServer():
5174
print(f"{Fore.CYAN}Running server setup...{Style.RESET_ALL}")
52-
call([r"run.bat"])
75+
call("run.bat")
5376
with open("eula.txt","w") as f:
5477
f.write("eula=true")
55-
i = input(f"{Fore.CYAN}Run server? (y/n) {Style.RESET_ALL}")
56-
if i.lower() == "y":
57-
system("run.bat")
58-
else:
59-
i = input(f"{Fore.CYAN}Start server by running file run.bat, you can now delete main.py and setup.py\nEnter to continue... {Style.RESET_ALL}")
60-
exit()
78+
input(f"{Fore.CYAN}Start server by running file run.bat, you can now delete main.py and setup.py\nEnter to remove main.py and exit setup... {Style.RESET_ALL}")
79+
remove("main.py")
80+
exit()
6181

6282
def setup():
6383
system("cls")
@@ -90,6 +110,7 @@ def setup():
90110
91111
{Fore.CYAN}[0] {Fore.GREEN}Vanilla
92112
{Fore.CYAN}[1] {Fore.GREEN}Plugins(PaperMC)
113+
{Fore.CYAN}[2] {Fore.GREEN}Modded(Forge)
93114
{Style.RESET_ALL}
94115
""")
95116
try:
@@ -109,6 +130,9 @@ def setup():
109130
case 1:
110131
paper()
111132
break
133+
case 2:
134+
forge()
135+
break
112136
case _:
113137
print(f"{Fore.RED}Invalid server type{Style.RESET_ALL}")
114138

@@ -124,7 +148,7 @@ def download(url):
124148
print(Style.RESET_ALL)
125149

126150
with open("run.bat","w") as f:
127-
text = f"java -Xmx{ram}G -jar server.jar -nogui"
151+
text = f"java -Xmx{ram}G -jar server.jar nogui"
128152
f.writelines(text)
129153

130154
i = input(f"{Fore.CYAN}Run automatic server setup? (y/n) {Style.RESET_ALL}")
@@ -135,6 +159,44 @@ def download(url):
135159
i = input(f"{Fore.CYAN}Start your server by running run.bat\nYou can now delete the files main.py and setup.py, Press Enter to exit...\n{Style.RESET_ALL}")
136160
exit()
137161

162+
def forge():
163+
system("cls")
164+
print(Fore.CYAN)
165+
tprint("Version")
166+
sleep(.1)
167+
print(Style.RESET_ALL)
168+
count = -1
169+
vers = []
170+
for line in forgev["versions"]:
171+
vers.append(line)
172+
count+=1
173+
print(f"{Fore.CYAN}[{count}] {Fore.BLUE}{line}")
174+
175+
i = input(f"{Fore.GREEN}\nChoose a version number. Example: version=0 for [0] 1.20.1\n{Fore.CYAN}version{Style.RESET_ALL}=")
176+
ver = vers[int(i)]
177+
data = get(forgev["versions"][ver],allow_redirects=True)
178+
with open(f"{ver}.jar","wb") as f:
179+
f.write(data.content)
180+
181+
call(f"java -jar {ver}.jar --installServer")
182+
print(not path.exists("run.bat"))
183+
if not path.isfile("run.bat"):
184+
dir = listdir()
185+
list = ["minecraft"]
186+
final = [nm for ps in list for nm in dir if ps in nm]
187+
188+
with open("run.bat","w") as f:
189+
f.write(f"java -jar {final[0]} -Xmx{ram}G nogui")
190+
sleep(.5)
191+
lines = []
192+
for line in open("run.bat", "r"):
193+
if not "pause" in line.lower():
194+
lines.append(line)
195+
with open("run.bat", "w") as f:
196+
f.writelines(lines)
197+
198+
sleep(.5)
199+
setupServer()
138200

139201
def paper():
140202
system("cls")
@@ -184,4 +246,4 @@ def vanilla():
184246
download(download_link)
185247

186248
if __name__ == "__main__":
187-
setup()
249+
setup()

0 commit comments

Comments
 (0)