From ed683d787c70bd48999fdbf6c51d2bc2f1bbde6c Mon Sep 17 00:00:00 2001 From: Dima YaFlay <93622229+YaFlay@users.noreply.github.com> Date: Sun, 2 Jan 2022 05:01:58 +0300 Subject: [PATCH] 1.0.0 Fixing some bugs and optimizing main code --- commands.py | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++++ windows.py | 57 +++++++++++++ 2 files changed, 296 insertions(+) create mode 100644 commands.py create mode 100644 windows.py diff --git a/commands.py b/commands.py new file mode 100644 index 0000000..d4ddcd3 --- /dev/null +++ b/commands.py @@ -0,0 +1,239 @@ +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 ok(): + window.destroy() + # close window button + +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 diff --git a/windows.py b/windows.py new file mode 100644 index 0000000..b7760cf --- /dev/null +++ b/windows.py @@ -0,0 +1,57 @@ +from minecraft_server_installer import * +from tkinter import Tk, BooleanVar, Button, Checkbutton +from commands import * + +def windows(): + + window=Tk() + window.title('Minecraft server') + window.geometry('500x300') #500/\, 250> + # creating window + create_server = BooleanVar() + create_server.set(True) + create_server=Checkbutton(window, text='1)Create server EULA, .bat files and folder', var=create_server, command=create_command) + create_server.grid(column=1, row=1) + # 4rd checkbox + start_server = BooleanVar() + start_server.set(True) + start_server = Checkbutton(window, text='2)Downloading core', var=start_server, command=starting_server_button) + start_server.grid(column=1, row=2) + # first checkbox + server_properties = BooleanVar() + server_properties.set(True) + server_properties = Checkbutton(window, text='3) Create server.properties', var=server_properties, command=server_properties_button) + server_properties.grid(column=1, row=3) + # second checkbox + close_command = BooleanVar() + close_command.set(True) + close_command = Checkbutton(window, text='4) Delete installer', var=close_command, command=close_command_button) + close_command.grid(column=1, row=4) + # replace minecraft.py command + open_folder = BooleanVar() + open_folder.set(True) + open_folder = Checkbutton(window, text='Open minecraft server folder', var=close_command, command=folder) + open_folder.grid(column=1, row=5) + # third checkbox + button = Button(window, text='OK', command=ok) + button.grid(column=1, row=7) + # close program button + starting_button = Button(window, text='Start server and open server.properties!', command=start) + starting_button.grid(column=1, row=6) + # starting server button + delete_button=Button(window, text='Delete folder and files', command=delete_directory) + delete_button.grid(column=1, row=10) + # delete folder button + + java_32=Button(window, text='Downloading Java', command=java_windows) + java_32.grid(column=1, row=11) + # java for x32 + backup=Button(window, text='Backup minecraft-server files', command=backup_button) + backup.grid(column=1, row=12) + # Backup button + python_download=Button(window, text='Downloading Python with official site', command=python_install) + python_download.grid(column=0, row=12) + # downloading python + window.mainloop() + # create window and button for start and create server +# creating def for index.py \ No newline at end of file