mirror of
https://github.com/yawaflua/Minecraft_server_creating-BETA-.git
synced 2025-12-10 12:29:26 +02:00
238 lines
10 KiB
Python
238 lines
10 KiB
Python
import os, shutil, datetime, psutil, time
|
|
from tkinter import messagebox
|
|
import urllib.request as urlreq
|
|
from platform import architecture
|
|
|
|
def time_user_def():
|
|
date = datetime.date.today()
|
|
clock = datetime.datetime.today()
|
|
time_user = 'Date today: '+ str(date)+ ', time now '+str( clock.strftime('%H.%M.%S'))
|
|
return time_user
|
|
# take time, date and directory
|
|
print(str(time_user_def()))
|
|
print('Starting to create a server!')
|
|
# User time
|
|
def internet_button():
|
|
print('Internet checking!')
|
|
try:
|
|
urlreq.urlopen("http://github.com")
|
|
print('Internet connected!')
|
|
return True
|
|
except IOError:
|
|
print("Internet is broken!")
|
|
messagebox.showerror(title='Internet', message='Internet don`t connected, function download core, java, python and backup don`t working.')
|
|
return False
|
|
internet = internet_button()
|
|
def create_command():
|
|
check_file = os.path.isdir('C:/minecraft')
|
|
if check_file == False:
|
|
os.mkdir("C:/minecraft")
|
|
os.chdir('C:\minecraft')
|
|
else:
|
|
os.chdir('C:/minecraft')
|
|
print('EULA text create...')
|
|
# downloading server files in folder
|
|
eula = open('eula.txt', 'w+')
|
|
eula_text = '''#Mojang EULA(https://account.mojang.com/documents/minecraft_eula).
|
|
# Time is not aviable
|
|
# Made by https://github.com/yaflay
|
|
|
|
eula=true
|
|
'''
|
|
eula.write(str(eula_text))
|
|
eula.close()
|
|
print('EULA text has been created!')
|
|
print('Creating .bat file')
|
|
bat = open('mine.bat', 'w+')
|
|
bat_text = '''
|
|
java -Xmx1024M -Xms1024M -jar server.jar nogui
|
|
'''
|
|
bat.write(str(bat_text))
|
|
bat.close()
|
|
# crate bat file and downloading jar core
|
|
print('Created .bat file!')
|
|
# creating EULA text, and write in eula.txt
|
|
# this is 4rd checkbox
|
|
messagebox.showinfo('EULA', 'EULA and folders create! Press OK for leave')
|
|
|
|
def starting_server_button():
|
|
os.chdir('C:/minecraft')
|
|
print('Downloading core...')
|
|
url = 'https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar'
|
|
urlreq.urlretrieve(url, 'C:/minecraft/server.jar')
|
|
print('Core downloaded!')
|
|
messagebox.showinfo('bat file created', '.bat file and core created Press OK for leave')
|
|
|
|
# first checkbox command
|
|
def server_properties_button():
|
|
if internet_button():
|
|
os.chdir('C:/minecraft')
|
|
url_server_properties = 'https://raw.githubusercontent.com/YaFlay/Minecraft_server_creating/main/server_properties.py'
|
|
urlreq.urlretrieve(url_server_properties, 'C:/minecraft/server_properties.py')
|
|
os.system('python3 C:/minecraft/server_properties.py')
|
|
print('Creating server.properties')
|
|
messagebox.showinfo('server.properties created', 'Minecraft server.properties created Press OK for leave')
|
|
os.remove('C:/minecraft/server_properties.py')
|
|
return True
|
|
else: messagebox.showerror(title='Internet', message='Internet don`t connected')
|
|
# second checkbox command
|
|
def close_command_button():
|
|
os.remove(str(__file__))
|
|
os.remove('index.py')
|
|
os.remove('windows.py')
|
|
messagebox.showinfo('file deleted', 'minecraft.exe closed and deleted! Press OK for leave')
|
|
# deleting main file
|
|
|
|
|
|
def start():
|
|
os.chdir('C:/minecraft')
|
|
os.system('start mine.bat')
|
|
messagebox.showinfo('Server_start', 'Server started!! Press OK for leave')
|
|
# starting server
|
|
|
|
def folder():
|
|
os.startfile('C:/minecraft')
|
|
# start folder
|
|
|
|
def java_windows():
|
|
if internet_button():
|
|
if architecture() == '32bit':
|
|
java='https://bit.ly/java32python'
|
|
urlreq.urlretrieve(java, 'C:/minecraft/jre-8u311-windows-i586-iftw.exe')
|
|
print('Core downloaded')
|
|
print('Openning...')
|
|
os.chdir('C:/minecraft/')
|
|
os.startfile(r'C:/minecraft/jre-8u311-windows-i586-iftw.exe')
|
|
def process_name_32():
|
|
for proce in psutil.process_iter():
|
|
name = proce.name()
|
|
if name == 'jre-8u311-windows-i586-iftw.exe':
|
|
return True
|
|
while process_name_32():
|
|
time.sleep(5)
|
|
print('Java downloaded')
|
|
if os.path.isfile('C:/minecraft/jre-8u311-windows-i586-iftw.exe'):
|
|
os.remove('jre-8u311-windows-i586-iftw.exe')
|
|
print('Java installer deleted')
|
|
pass
|
|
messagebox.showinfo('Java_32', 'Java has been downloaded! Press ok for leave')
|
|
elif architecture() == '64bit':
|
|
java_64='https://bit.ly/java64python'
|
|
urlreq.urlretrieve(java_64, 'C:/minecraft/jre-8u311-windows-x64.exe')
|
|
print('Core downloaded')
|
|
print('Openning...')
|
|
os.chdir('C:/minecraft/')
|
|
os.startfile(r'C:/minecraft/jre-8u311-windows-x64.exe')
|
|
def process_name_64():
|
|
for proce in psutil.process_iter():
|
|
name = proce.name()
|
|
if name == 'jre-8u311-windows-x64.exe':
|
|
return True
|
|
while process_name_64():
|
|
time.sleep(5)
|
|
print('Java downloaded')
|
|
if os.path.isfile('C:/minecraft/jre-8u311-windows-x64.exe'):
|
|
os.remove('jre-8u311-windows-x64.exe')
|
|
print('Java installer deleted')
|
|
pass
|
|
pass
|
|
messagebox.showinfo('Java_64','Java has been downloaded! Press ok for leave')
|
|
else:
|
|
messagebox.showerror(title='Internet', message='Internet don`t connected')
|
|
|
|
# for downloading java 8u311 for windows
|
|
|
|
def delete_directory():
|
|
if os.path.isdir('C:/minecraft'):
|
|
os.chdir('C:/minecraft')
|
|
if os.path.isfile('eula.txt'):
|
|
os.remove('eula.txt')
|
|
print('EULA deleted')
|
|
# deleting eula
|
|
if os.path.isfile('mine.bat'):
|
|
os.remove('mine.bat')
|
|
print('mine.bat deleted')
|
|
# deleting .bat file
|
|
if os.path.isfile('server.jar'):
|
|
os.remove('server.jar')
|
|
print('server.jar deleted')
|
|
# deleting core
|
|
if os.path.isfile('server.properties'):
|
|
os.remove('server.properties')
|
|
print('server.properties deleted')
|
|
# deleting server.properties
|
|
if os.path.isfile('banned-ips.json'):
|
|
os.remove('banned-ips.json')
|
|
print('banned-ips.json deleted')
|
|
# deleting banned-ips.json
|
|
if os.path.isfile('banned-players.json'):
|
|
os.remove('banned-players.json')
|
|
print('banned-players.json deleted')
|
|
# deleting banned-players.json
|
|
if os.path.isfile('ops.json'):
|
|
os.remove('ops.json')
|
|
print('ops.json deleted')
|
|
# deleting ops.json
|
|
if os.path.isfile('usercache.json'):
|
|
os.remove('usercache.json')
|
|
print('usercashe.json deleted')
|
|
# deleting ops.json
|
|
if os.path.isfile('whitelist.json'):
|
|
os.remove('whitelist.json')
|
|
print('whitelist deleted')
|
|
# deleting whitelist.json
|
|
# deleting all files in C:/minecraft
|
|
directory_file = os.listdir()
|
|
print(directory_file)
|
|
if directory_file == ['logs', 'world', 'backup']:
|
|
os.chdir('C:/')
|
|
shutil.rmtree('C:/minecraft')
|
|
else:
|
|
os.chdir('C:/')
|
|
shutil.rmtree('C:/minecraft')
|
|
# delete directory with files
|
|
else:
|
|
print('Folder already deleted')
|
|
|
|
def backup_button():
|
|
if internet_button():
|
|
if os.path.isdir('C:/minecraft/backup/'):
|
|
os.chdir('C:/minecraft/backup')
|
|
else:
|
|
os.mkdir('C:/minecraft/backup')
|
|
os.chdir('C:/minecraft/backup')
|
|
# create folder
|
|
|
|
url_backup_text='https://raw.githubusercontent.com/YaFlay/Minecraft_server_creating/main/backup.py'
|
|
if os.path.isfile('C:/minecraft/backup/backup.py'):
|
|
os.remove('C:/minecraft/backup/backup.py')
|
|
urlreq.urlretrieve(url_backup_text, 'C:/minecraft/backup/backup.py')
|
|
os.chdir('C:/minecraft/backup/')
|
|
os.popen('python3 C:/minecraft/backup/backup.py')
|
|
# backuping minecraft files using python code from my github
|
|
else: messagebox.showerror(title='Internet', message='Internet don`t connected')
|
|
def python_install():
|
|
if internet_button():
|
|
url = 'https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe'
|
|
urlreq.urlretrieve(url, 'C:/minecraft/python-3.10.0-amd64.exe')
|
|
os.chdir('C:/minecraft/')
|
|
os.startfile(r'C:/minecraft/python-3.10.0-amd64.exe')
|
|
for process_python in psutil.process_iter():
|
|
name_python = process_python.name()
|
|
if name_python == 'python-3.10.0-amd64.exe':
|
|
print('Wait...')
|
|
time.sleep(30)
|
|
print('And 10 sec more')
|
|
time.sleep(10)
|
|
named_64 = process_python.name()
|
|
if not named_64 == 'python-3.10.0-amd64.exe':
|
|
process_python.kill()
|
|
print('Process has been eliminated!')
|
|
pass
|
|
pass
|
|
os.remove('python-3.10.0-amd64.exe')
|
|
messagebox.showinfo('Python','Python has been downloaded! Press ok for leave')
|
|
else: messagebox.showerror(title='Internet', message='Internet don`t connected')
|
|
# download python
|
|
# take def for checkboxes and buttons
|