Skip to content

Commit

Permalink
v2.5.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Skrepysh committed May 5, 2023
1 parent 96d9a56 commit 3acf743
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 67 deletions.
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
Простой проект, который поможет вам переключаться между модпаками в майнкрафте. Для этого в папке программы создайте папку mods и в нее закиньте все ваши папки с модами для разных версий.<br />
Язык программы - РУССКИЙ🇷🇺<br />
Инструкция:<br />
1.Создайте папку программы<br />
2.Скачайте релиз<br />
3.Распакуйте его в папку<br />
4.В папку mods закиньте все ваши модпаки<br />
5.Откройте paths.py и следуйте инструкции в нем. (первая строка файла-путь к Майнкрафту,вторая-к папке самой программы)<br />
6.ПРОФИТ<br />
1.Скачайте установщий<br />
2.Усановите программу<br />
3.Заапустите программу. Она скажет, что вам делать:)<br />
4.ПРОФИТ<br />
5 changes: 5 additions & 0 deletions config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[paths]
; write path to minecraft folder below (%appdata%/.minecraft if not filled)
minecraft =
; do not use parameter below, if do not know, what are you doing
program =
32 changes: 21 additions & 11 deletions exceptor.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,41 @@
import logging
import os
from tkinter import messagebox
from filerpy import pySelector
from filerpy import version_define
import time
from filerpy import ZeroSelector, version_define, config
from preparator import error
from preparator import preparator
from worker import worker, verpicker
from tkinter import messagebox as msg

programdir = pySelector.prog_preparator()
minedir = pySelector.mine_preparator()
programdir = config("prog")
minedir = config("mine")


def run(version):
progver = version_define(version)
while True:
if preparator("init") == "stopnow":
break
else:
pass
try:
if preparator("init") == "stopnow":
break
else:
pass
os.chdir(f"{programdir}/mods")
vers = [e for e in os.listdir() if os.path.isdir(e)]
worker(verpicker(progver, vers))
break
except IndexError:
print("неверное значение\nперезапуск")
error()
except PermissionError:
msg.showerror(title="Ошибка доступа", message="Произошло повреждение файлов программы."
"\nНеобходимо произвести запуск от имени администратора!")
exit()
except OverflowError:
print("многацифер\nперезапуск")
error()
except ZeroSelector:
print("неверное значение\nперезапуск")
error()
except ValueError:
print("что ты несешь\nперезапуск")
error()
Expand All @@ -39,7 +47,9 @@ def run(version):
else:
os.system("cls")
continue
except Exception:
except Exception as err:
print("неизвестная ошибка")
messagebox.showerror(title="Ошибка", message="Неизвестная ошибка")
print("Сообщите разработчику следующий код ошибки:")
logging.error(err, exc_info=True)
time.sleep(7)
break
37 changes: 19 additions & 18 deletions filerpy.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from paths import minedir, programdir
import configparser


def version_define(version):
Expand All @@ -11,25 +11,26 @@ def version_define(version):
return version


class prep:
def __init__(self, minedirectory, programdirectory):
self.minedir = minedirectory
self.programdir = programdirectory

def mine_preparator(self):
if self.minedir == "" or not os.path.exists(self.minedir):
self.minedir = "%appdata%/.minecraft"
return self.minedir
def config(type):
config = configparser.ConfigParser()
config.read("config.ini")
minedir = config["paths"]["minecraft"]
programdir = config["paths"]["program"]
if type == "mine":
if minedir == "" or not os.path.exists(minedir):
minedir = "%appdata%/.minecraft"
return minedir
else:
minedir.replace('\\', '/')
return self.minedir

def prog_preparator(self):
if self.programdir == "" or not os.path.exists(self.programdir):
self.programdir = os.getcwd()
return self.programdir
return minedir
if type == "prog":
if programdir == "" or not os.path.exists(programdir):
programdir = os.getcwd()
return programdir
else:
return self.programdir
programdir.replace('\\', '/')
return programdir


pySelector = prep(minedir, programdir)
class ZeroSelector(Exception):
pass
2 changes: 1 addition & 1 deletion main.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from exceptor import run


program_version = 2.4
program_version = "2.5.1"


run(program_version)
Expand Down
14 changes: 9 additions & 5 deletions preparator.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import os
import time
from filerpy import pySelector
from filerpy import config
from tkinter import messagebox

programdir = pySelector.prog_preparator()
minedir = pySelector.mine_preparator()
programdir = config("prog")
minedir = config("mine")


def error():
Expand All @@ -29,8 +29,10 @@ def preparator(type_of_work):
print("Папка создана, повторите попытку")
error()
except FileNotFoundError:
os.system("cls")
messagebox.showerror(title="Ошибка",
message="Не удалось создать папку mods в корне игры!\nПроверьте paths.py")
message="Не удалось создать папку mods в корне игры!\nПроверьте config.ini")
os.system(f"notepad {programdir}/config.ini")
return "stopnow"
if not os.path.exists(f"{programdir}/mods"):
print("Отсутствует хранилище модпаков:-(")
Expand Down Expand Up @@ -60,8 +62,10 @@ def preparator(type_of_work):
print("Папка создана, повторите попытку")
error()
except FileNotFoundError:
os.system("cls")
messagebox.showerror(title="Ошибка",
message="Не удалось создать папку mods в корне игры!\nПроверьте paths.py")
message="Не удалось создать папку mods в корне игры!\nПроверьте config.ini")
os.system(f"notepad {programdir}/config.ini")
return "stopnow"
if not os.path.exists(f"{programdir}/mods"):
print("Отсутствует хранилище модпаков:-(")
Expand Down
43 changes: 17 additions & 26 deletions worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,17 @@
import shutil
import time
from pathlib import Path
from filerpy import pySelector
programdir = pySelector.prog_preparator()
minedir = pySelector.mine_preparator()
from filerpy import ZeroSelector
from filerpy import config
from sys import exit
programdir = config("prog")
minedir = config("mine")


def finish(type):
if type == "error":
print("Использовать число 0 нельзя!")
print("окно закроется через 3 секунды")
time.sleep(3)
while True:
break
if type == "normal":
print("окно закроется через 3 секунды")
time.sleep(3)
while True:
break
def finish():
print("завершение работы...")
time.sleep(1)
exit()


def verpicker(progver, vers):
Expand All @@ -41,27 +35,24 @@ def verpicker(progver, vers):
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("Бэкап восстановлен")
return "restok"
return "restored"
elif selector == "q" or selector == "quit":
return "stop_soft"
return "quit"
else:
selector = int(selector)
if selector == 0:
return "stop"
raise ZeroSelector
else:
a = vers.pop(selector - 1)
print("Выбрана версия " + a)
return a


def worker(version):
if version == "restok":
finish("normal")
elif version == "stop":
finish("error")
exit()
elif version == "stop_soft":
finish("normal")
if version == "restored":
finish()
if version == "quit":
finish()
else:
print("работаю..")
os.chdir(minedir)
Expand All @@ -74,4 +65,4 @@ def worker(version):
p = Path(f"{minedir}/pySelector/")
p.rename("mods")
print("готово")
finish("normal")
finish()

0 comments on commit 3acf743

Please sign in to comment.