• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Как запустить Лоадер на пайтоне?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Май 2025
Сообщения
83
Реакции
1
Как запустить Лоадер на пайтоне? Через cmd с помощью cd,python,start не получается
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
код скинь лоадера а ваще какой нахуй лоадер на питоне пиздуй консоль клипай на сишарпе
 
z
код скинь лоадера а ваще какой нахуй лоадер на питоне пиздуй консоль клипай на сишарпе
#GUI лоадер by D3sley


import flet as ft
import threading
import os
import time
import webbrowser
import requests
from zipfile import ZipFile
import subprocess
import json

CLIENT_DIR = "C:\\RolestClient\\RolestClient"
CLIENT_ZIP_URL = "ссылка на файлы клиента"
CLIENT_ZIP_PATH = "C:\\RolestClient\\RolestClient.zip"
CONFIG_PATH = "config.json"

# тут ссылка на фото лого чита
IMAGE_URL = "
Пожалуйста, авторизуйтесь для просмотра ссылки.
"

class MinecraftLauncher:
def __init__(self):
self.page = None
self.THEME_COLOR = "#1a237e"
self.BACKGROUND_COLOR = ft.colors.INDIGO_500
self.RECTANGLE_COLOR = ft.colors.INDIGO_400
self.can_launch = True
self.config = self.load_config()
self.memory_gb = self.config.get("memory_gb", "4")
self.version = "1.16"
self.VERCLIENT = "Rolest Client realise"
self.apply_theme(self.config.get("theme", "blue"))

# Контейнеры интерфейса
self.menu_container = None
self.image_container = None
self.settings_modal = None
self.blur_overlay = None

def load_config(self):
if os.path.exists(CONFIG_PATH):
try:
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
return json.load(f)
except Exception:
pass
return {
"memory_gb": "4",
"theme": "blue" # Дефолтная тема
}

def save_config(self):
try:
with open(CONFIG_PATH, "w", encoding="utf-8") as f:
json.dump(self.config, f, ensure_ascii=False, indent=4)
except Exception as e:
print(f"Ошибка сохранения конфигурации: {e}")

def apply_theme(self, theme_name):
if theme_name == "purple":
self.BACKGROUND_COLOR = ft.colors.DEEP_PURPLE_500
self.RECTANGLE_COLOR = ft.colors.DEEP_PURPLE_400
self.THEME_COLOR = "#673ab7"
else:
self.BACKGROUND_COLOR = ft.colors.INDIGO_500
self.RECTANGLE_COLOR = ft.colors.INDIGO_400
self.THEME_COLOR = "#1a237e"

def main(self, page: ft.Page):
self.page = page
self.page.title = "Rolest Client launcher"
self.page.window_full_screen = False
self.page.padding = 0
self.page.bgcolor = self.BACKGROUND_COLOR
self.page.vertical_alignment = ft.MainAxisAlignment.CENTER
self.page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
self.page.window_resizable = True


self.menu_container = self.create_menu_container()
self.image_container = self.create_image_container()


self.blur_overlay = ft.Container(
expand=True,
bgcolor=ft.colors.TRANSPARENT,
visible=False,
alignment=ft.alignment.center,
content=None,
)

root_row = ft.Row(
controls=[
self.menu_container,
self.image_container,
self.blur_overlay,
],
expand=True,
spacing=20,
alignment=ft.MainAxisAlignment.START,
vertical_alignment=ft.CrossAxisAlignment.STRETCH,
)

self.page.add(root_row)
self.page.update()

def create_menu_container(self):
width=400
margin = 20

container = ft.Container(
width=width,
expand=False,
bgcolor=self.RECTANGLE_COLOR,
border_radius=20,
padding=20,
margin=ft.margin.only(left=margin, top=margin, bottom=margin),
content=self.build_menu_content(),
animate=ft.Animation(400, ft.AnimationCurve.EASE_IN_OUT),
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
)
return container

def build_menu_content(self):
welcome_text = ft.Text("Rolest CLient", size=32, color="white", weight="bold")

self.btn_play = ft.ElevatedButton(
"🎮 Играть",
on_click=self.on_play_click,
width=350,
height=50,
bgcolor=self.THEME_COLOR,
color="white"
)
self.btn_settings = ft.ElevatedButton(
"⚙️ Настройки",
on_click=self.open_settings_modal,
width=350,
height=50,
bgcolor=self.THEME_COLOR,
color="white"
)
btn_exit = ft.ElevatedButton(
"🚪 Выход",
on_click=self.exit_application,
width=350,
height=50,
bgcolor=ft.colors.RED_700,
color="white"
)
btn_telegram = ft.ElevatedButton(
"Перейти в Telegram канал",
on_click=lambda e: webbrowser.open("
Пожалуйста, авторизуйтесь для просмотра ссылки.
"),
width=350,
bgcolor="#0088cc",
color="white"
)

version_info = ft.Text(f"Версия клиента: {self.VERCLIENT}", size=16, color="white", italic=True)

self.status_label = ft.Text("", size=16, color="white")

menu_col = ft.Column(
[
welcome_text,
self.btn_play,
self.btn_settings,
btn_exit,
btn_telegram,
version_info,
self.status_label
],
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
spacing=15,
scroll=ft.ScrollMode.AUTO,
expand=True,
)
return menu_col

def create_image_container(self):
margin = 20
container = ft.Container(
expand=True,
bgcolor=self.RECTANGLE_COLOR,
border_radius=20,
padding=10,
margin=ft.margin.only(right=margin, top=margin, bottom=margin),
content=None,
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
)


image = ft.Image(
src=IMAGE_URL,
fit=ft.ImageFit.CONTAIN,
expand=True,
)
container.content = image
return container

def exit_application(self, e):
ft.app.stop()

def on_play_click(self, e):
if not self.can_launch:
self.status_label.value = "Пожалуйста, подождите 30 секунд перед повторным запуском."
self.page.update()
threading.Thread(target=self.clear_status_after_delay, args=(5,), daemon=True).start()
return

self.can_launch = False
self.status_label.value = "Загрузка клиента: 0%"
self.page.update()

def progress_callback(progress):
self.status_label.value = f"Загрузка клиента: {progress}%"
self.page.update()

def status_callback(status):
self.status_label.value = status
self.page.update()

threading.Thread(target=self.start, args=(progress_callback, status_callback), daemon=True).start()

def start(self, progress_callback, status_callback):
if not os.path.isdir(CLIENT_DIR):
status_callback("Статус: Загрузка и извлечение необходимых файлов...")
self.download_and_extract(CLIENT_ZIP_URL, CLIENT_ZIP_PATH, progress_callback)
status_callback("Статус: клиент успешно загружен.")
else:
status_callback("Статус клиента: загружен.")

try:
memory = int(self.memory_gb)
status_callback("Запуск клиента...")

launch_command = [
"C:\\RolestClient\\RolestClient\\jre-21.0.2\\bin\\java.exe",
f"-Xmx{memory}G",
"-Djava.library.path=C:\\RolestClient\\RolestClient\\natives",
"-cp",
"C:\\RolestClient\\client\\libraries\\*;C:\\RolestClient\\RolestClient\\Rol.jar",
"net.minecraft.client.main.Main",
"--username",
"RolestClient",
"--width",
"854",
"--height",
"480",
"--version",
self.version,
"--gameDir",
"C:\\RolestClient\\game",
"--assetsDir",
"C:\\RolestClient\\RolestClient\\assets",
"--assetIndex",
self.version,
"--accessToken",
"0"
]

self.execute_command(launch_command, status_callback)

except ValueError:
status_callback("Введённое значение не является целым числом. Пожалуйста, попробуйте снова.")
self.can_launch = True
except Exception as e:
status_callback(f"[!] Ошибка: {e}")
self.can_launch = True

def execute_command(self, command_list, status_callback):
try:
status_callback("Клиент запускается...")
threading.Thread(target=self.clear_status_after_delay, args=(11,), daemon=True).start()
status_callback("Клиент запускается...")
process = subprocess.Popen(command_list)
process.wait()
status_callback("Клиент завершил работу.")
threading.Thread(target=self.clear_status_after_delay, args=(2,), daemon=True).start()
except Exception as e:
status_callback(f"Ошибка запуска клиента: {e}")
finally:
threading.Thread(target=self.reset_launch_flag, daemon=True).start()

def reset_launch_flag(self):
time.sleep(30)
self.can_launch = True

def clear_status_after_delay(self, delay):
time.sleep(delay)
self.status_label.value = ""
self.page.update()

def download_and_extract(self, url, dest_path, progress_callback):
response = requests.get(url, stream=True)
total_size = int(response.headers.get('content-length', 0))
downloaded = 0
with open(dest_path, 'wb') as file:
for data in response.iter_content(chunk_size=1024):
file.write(data)
downloaded += len(data)
if total_size > 0:
progress = int(downloaded / total_size * 100)
progress_callback(progress)
with ZipFile(dest_path, 'r') as zip_ref:
zip_ref.extractall(CLIENT_DIR)
progress_callback(100)
threading.Thread(target=self.clear_status_after_delay, args=(7,), daemon=True).start()



def open_settings_modal(self, e=None):

self.blur_overlay.visible = True
self.blur_overlay.bgcolor = ft.colors.with_opacity(0.5, ft.colors.BLACK)
self.blur_overlay.update()


self.settings_modal = ft.Container(
width=400,
height=460, # увеличена высота
bgcolor=self.RECTANGLE_COLOR, # Установите цвет фона равным фону меню
border_radius=20,
padding=20,
content=self.build_settings_content(),
alignment=ft.alignment.center,
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
animate=ft.Animation(300, ft.AnimationCurve.EASE_IN_OUT),
)


self.blur_overlay.content = ft.Stack(
controls=[
self.settings_modal
],
alignment=ft.alignment.center
)
self.page.update()

def close_settings_modal(self, e=None):
self.blur_overlay.visible = False
self.blur_overlay.content = None
self.page.update()

def build_settings_content(self):
theme_text = ft.Text("Выбор темы", size=28, color="white", weight="bold")

btn_blue_theme = ft.ElevatedButton(
"Синяя тема",
on_click=self.set_blue_theme,
width=300,
bgcolor=self.get_theme_button_color("blue"),
color="white"
)
btn_purple_theme = ft.ElevatedButton(
"Фиолетовая тема",
on_click=self.set_purple_theme,
width=300,
bgcolor=self.get_theme_button_color("purple"),
color="white"
)

ram_header = ft.Text(
"Выделение RAM",
size=24,
color="white",
weight="bold",
text_align=ft.TextAlign.CENTER,
expand=True,
)
ram_header_container = ft.Container(
content=ram_header,
padding=ft.padding.only(top=20, bottom=5),
alignment=ft.alignment.center,
width=300,
)

self.memory_input = ft.TextField(
label="Выделение оперативной памяти (ГБ)",
value=self.memory_gb,
width=300,
text_align=ft.TextAlign.CENTER,
border_color=self.THEME_COLOR,
color="white",
bgcolor=ft.colors.BLACK12,
autofocus=True,
on_change=self.on_memory_change
)

btn_close = ft.ElevatedButton(
"Закрыть",
on_click=self.close_settings_modal,
width=300,
bgcolor=ft.colors.RED_700,
color="white"
)

settings_col = ft.Column(
[
theme_text,
btn_blue_theme,
btn_purple_theme,
ram_header_container,
self.memory_input,
btn_close,
],
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
spacing=20
)
return settings_col

def get_theme_button_color(self, theme_name):
if theme_name == "purple":
return "#673ab7"
else:
return "#1a237e"

def set_blue_theme(self, e):
self.apply_theme("blue")
self.config["theme"] = "blue"
self.save_config()
self.update_theme()

def set_purple_theme(self, e):
self.apply_theme("purple")
self.config["theme"] = "purple"
self.save_config()
self.update_theme()

def update_theme(self):
self.menu_container.bgcolor = self.RECTANGLE_COLOR
self.image_container.bgcolor = self.RECTANGLE_COLOR
self.btn_play.bgcolor = self.THEME_COLOR
self.btn_settings.bgcolor = self.THEME_COLOR

if self.settings_modal and self.settings_modal.content:
controls = self.settings_modal.content.controls
if len(controls) >= 3:
controls[1].bgcolor = self.get_theme_button_color("blue")
controls[2].bgcolor = self.get_theme_button_color("purple")

if self.settings_modal:
self.settings_modal.bgcolor = self.RECTANGLE_COLOR
self.page.bgcolor = self.BACKGROUND_COLOR
self.page.update()

def on_memory_change(self, e):
self.memory_gb = e.control.value.strip()
self.config["memory_gb"] = self.memory_gb
self.save_config()

if __name__ == "__main__":
launcher = MinecraftLauncher()
ft.app(target=launcher.main, assets_dir=".")
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
z

#GUI лоадер by D3sley


import flet as ft
import threading
import os
import time
import webbrowser
import requests
from zipfile import ZipFile
import subprocess
import json

CLIENT_DIR = "C:\\RolestClient\\RolestClient"
CLIENT_ZIP_URL = "ссылка на файлы клиента"
CLIENT_ZIP_PATH = "C:\\RolestClient\\RolestClient.zip"
CONFIG_PATH = "config.json"

# тут ссылка на фото лого чита
IMAGE_URL = "
Пожалуйста, авторизуйтесь для просмотра ссылки.
"

class MinecraftLauncher:
def __init__(self):
self.page = None
self.THEME_COLOR = "#1a237e"
self.BACKGROUND_COLOR = ft.colors.INDIGO_500
self.RECTANGLE_COLOR = ft.colors.INDIGO_400
self.can_launch = True
self.config = self.load_config()
self.memory_gb = self.config.get("memory_gb", "4")
self.version = "1.16"
self.VERCLIENT = "Rolest Client realise"
self.apply_theme(self.config.get("theme", "blue"))

# Контейнеры интерфейса
self.menu_container = None
self.image_container = None
self.settings_modal = None
self.blur_overlay = None

def load_config(self):
if os.path.exists(CONFIG_PATH):
try:
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
return json.load(f)
except Exception:
pass
return {
"memory_gb": "4",
"theme": "blue" # Дефолтная тема
}

def save_config(self):
try:
with open(CONFIG_PATH, "w", encoding="utf-8") as f:
json.dump(self.config, f, ensure_ascii=False, indent=4)
except Exception as e:
print(f"Ошибка сохранения конфигурации: {e}")

def apply_theme(self, theme_name):
if theme_name == "purple":
self.BACKGROUND_COLOR = ft.colors.DEEP_PURPLE_500
self.RECTANGLE_COLOR = ft.colors.DEEP_PURPLE_400
self.THEME_COLOR = "#673ab7"
else:
self.BACKGROUND_COLOR = ft.colors.INDIGO_500
self.RECTANGLE_COLOR = ft.colors.INDIGO_400
self.THEME_COLOR = "#1a237e"

def main(self, page: ft.Page):
self.page = page
self.page.title = "Rolest Client launcher"
self.page.window_full_screen = False
self.page.padding = 0
self.page.bgcolor = self.BACKGROUND_COLOR
self.page.vertical_alignment = ft.MainAxisAlignment.CENTER
self.page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
self.page.window_resizable = True


self.menu_container = self.create_menu_container()
self.image_container = self.create_image_container()


self.blur_overlay = ft.Container(
expand=True,
bgcolor=ft.colors.TRANSPARENT,
visible=False,
alignment=ft.alignment.center,
content=None,
)

root_row = ft.Row(
controls=[
self.menu_container,
self.image_container,
self.blur_overlay,
],
expand=True,
spacing=20,
alignment=ft.MainAxisAlignment.START,
vertical_alignment=ft.CrossAxisAlignment.STRETCH,
)

self.page.add(root_row)
self.page.update()

def create_menu_container(self):
width=400
margin = 20

container = ft.Container(
width=width,
expand=False,
bgcolor=self.RECTANGLE_COLOR,
border_radius=20,
padding=20,
margin=ft.margin.only(left=margin, top=margin, bottom=margin),
content=self.build_menu_content(),
animate=ft.Animation(400, ft.AnimationCurve.EASE_IN_OUT),
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
)
return container

def build_menu_content(self):
welcome_text = ft.Text("Rolest CLient", size=32, color="white", weight="bold")

self.btn_play = ft.ElevatedButton(
"🎮 Играть",
on_click=self.on_play_click,
width=350,
height=50,
bgcolor=self.THEME_COLOR,
color="white"
)
self.btn_settings = ft.ElevatedButton(
"⚙ Настройки",
on_click=self.open_settings_modal,
width=350,
height=50,
bgcolor=self.THEME_COLOR,
color="white"
)
btn_exit = ft.ElevatedButton(
"🚪 Выход",
on_click=self.exit_application,
width=350,
height=50,
bgcolor=ft.colors.RED_700,
color="white"
)
btn_telegram = ft.ElevatedButton(
"Перейти в Telegram канал",
on_click=lambda e: webbrowser.open("
Пожалуйста, авторизуйтесь для просмотра ссылки.
"),
width=350,
bgcolor="#0088cc",
color="white"
)

version_info = ft.Text(f"Версия клиента: {self.VERCLIENT}", size=16, color="white", italic=True)

self.status_label = ft.Text("", size=16, color="white")

menu_col = ft.Column(
[
welcome_text,
self.btn_play,
self.btn_settings,
btn_exit,
btn_telegram,
version_info,
self.status_label
],
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
spacing=15,
scroll=ft.ScrollMode.AUTO,
expand=True,
)
return menu_col

def create_image_container(self):
margin = 20
container = ft.Container(
expand=True,
bgcolor=self.RECTANGLE_COLOR,
border_radius=20,
padding=10,
margin=ft.margin.only(right=margin, top=margin, bottom=margin),
content=None,
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
)


image = ft.Image(
src=IMAGE_URL,
fit=ft.ImageFit.CONTAIN,
expand=True,
)
container.content = image
return container

def exit_application(self, e):
ft.app.stop()

def on_play_click(self, e):
if not self.can_launch:
self.status_label.value = "Пожалуйста, подождите 30 секунд перед повторным запуском."
self.page.update()
threading.Thread(target=self.clear_status_after_delay, args=(5,), daemon=True).start()
return

self.can_launch = False
self.status_label.value = "Загрузка клиента: 0%"
self.page.update()

def progress_callback(progress):
self.status_label.value = f"Загрузка клиента: {progress}%"
self.page.update()

def status_callback(status):
self.status_label.value = status
self.page.update()

threading.Thread(target=self.start, args=(progress_callback, status_callback), daemon=True).start()

def start(self, progress_callback, status_callback):
if not os.path.isdir(CLIENT_DIR):
status_callback("Статус: Загрузка и извлечение необходимых файлов...")
self.download_and_extract(CLIENT_ZIP_URL, CLIENT_ZIP_PATH, progress_callback)
status_callback("Статус: клиент успешно загружен.")
else:
status_callback("Статус клиента: загружен.")

try:
memory = int(self.memory_gb)
status_callback("Запуск клиента...")

launch_command = [
"C:\\RolestClient\\RolestClient\\jre-21.0.2\\bin\\java.exe",
f"-Xmx{memory}G",
"-Djava.library.path=C:\\RolestClient\\RolestClient\\natives",
"-cp",
"C:\\RolestClient\\client\\libraries\\*;C:\\RolestClient\\RolestClient\\Rol.jar",
"net.minecraft.client.main.Main",
"--username",
"RolestClient",
"--width",
"854",
"--height",
"480",
"--version",
self.version,
"--gameDir",
"C:\\RolestClient\\game",
"--assetsDir",
"C:\\RolestClient\\RolestClient\\assets",
"--assetIndex",
self.version,
"--accessToken",
"0"
]

self.execute_command(launch_command, status_callback)

except ValueError:
status_callback("Введённое значение не является целым числом. Пожалуйста, попробуйте снова.")
self.can_launch = True
except Exception as e:
status_callback(f"[!] Ошибка: {e}")
self.can_launch = True

def execute_command(self, command_list, status_callback):
try:
status_callback("Клиент запускается...")
threading.Thread(target=self.clear_status_after_delay, args=(11,), daemon=True).start()
status_callback("Клиент запускается...")
process = subprocess.Popen(command_list)
process.wait()
status_callback("Клиент завершил работу.")
threading.Thread(target=self.clear_status_after_delay, args=(2,), daemon=True).start()
except Exception as e:
status_callback(f"Ошибка запуска клиента: {e}")
finally:
threading.Thread(target=self.reset_launch_flag, daemon=True).start()

def reset_launch_flag(self):
time.sleep(30)
self.can_launch = True

def clear_status_after_delay(self, delay):
time.sleep(delay)
self.status_label.value = ""
self.page.update()

def download_and_extract(self, url, dest_path, progress_callback):
response = requests.get(url, stream=True)
total_size = int(response.headers.get('content-length', 0))
downloaded = 0
with open(dest_path, 'wb') as file:
for data in response.iter_content(chunk_size=1024):
file.write(data)
downloaded += len(data)
if total_size > 0:
progress = int(downloaded / total_size * 100)
progress_callback(progress)
with ZipFile(dest_path, 'r') as zip_ref:
zip_ref.extractall(CLIENT_DIR)
progress_callback(100)
threading.Thread(target=self.clear_status_after_delay, args=(7,), daemon=True).start()



def open_settings_modal(self, e=None):

self.blur_overlay.visible = True
self.blur_overlay.bgcolor = ft.colors.with_opacity(0.5, ft.colors.BLACK)
self.blur_overlay.update()


self.settings_modal = ft.Container(
width=400,
height=460, # увеличена высота
bgcolor=self.RECTANGLE_COLOR, # Установите цвет фона равным фону меню
border_radius=20,
padding=20,
content=self.build_settings_content(),
alignment=ft.alignment.center,
clip_behavior=ft.ClipBehavior.ANTI_ALIAS,
animate=ft.Animation(300, ft.AnimationCurve.EASE_IN_OUT),
)


self.blur_overlay.content = ft.Stack(
controls=[
self.settings_modal
],
alignment=ft.alignment.center
)
self.page.update()

def close_settings_modal(self, e=None):
self.blur_overlay.visible = False
self.blur_overlay.content = None
self.page.update()

def build_settings_content(self):
theme_text = ft.Text("Выбор темы", size=28, color="white", weight="bold")

btn_blue_theme = ft.ElevatedButton(
"Синяя тема",
on_click=self.set_blue_theme,
width=300,
bgcolor=self.get_theme_button_color("blue"),
color="white"
)
btn_purple_theme = ft.ElevatedButton(
"Фиолетовая тема",
on_click=self.set_purple_theme,
width=300,
bgcolor=self.get_theme_button_color("purple"),
color="white"
)

ram_header = ft.Text(
"Выделение RAM",
size=24,
color="white",
weight="bold",
text_align=ft.TextAlign.CENTER,
expand=True,
)
ram_header_container = ft.Container(
content=ram_header,
padding=ft.padding.only(top=20, bottom=5),
alignment=ft.alignment.center,
width=300,
)

self.memory_input = ft.TextField(
label="Выделение оперативной памяти (ГБ)",
value=self.memory_gb,
width=300,
text_align=ft.TextAlign.CENTER,
border_color=self.THEME_COLOR,
color="white",
bgcolor=ft.colors.BLACK12,
autofocus=True,
on_change=self.on_memory_change
)

btn_close = ft.ElevatedButton(
"Закрыть",
on_click=self.close_settings_modal,
width=300,
bgcolor=ft.colors.RED_700,
color="white"
)

settings_col = ft.Column(
[
theme_text,
btn_blue_theme,
btn_purple_theme,
ram_header_container,
self.memory_input,
btn_close,
],
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
spacing=20
)
return settings_col

def get_theme_button_color(self, theme_name):
if theme_name == "purple":
return "#673ab7"
else:
return "#1a237e"

def set_blue_theme(self, e):
self.apply_theme("blue")
self.config["theme"] = "blue"
self.save_config()
self.update_theme()

def set_purple_theme(self, e):
self.apply_theme("purple")
self.config["theme"] = "purple"
self.save_config()
self.update_theme()

def update_theme(self):
self.menu_container.bgcolor = self.RECTANGLE_COLOR
self.image_container.bgcolor = self.RECTANGLE_COLOR
self.btn_play.bgcolor = self.THEME_COLOR
self.btn_settings.bgcolor = self.THEME_COLOR

if self.settings_modal and self.settings_modal.content:
controls = self.settings_modal.content.controls
if len(controls) >= 3:
controls[1].bgcolor = self.get_theme_button_color("blue")
controls[2].bgcolor = self.get_theme_button_color("purple")

if self.settings_modal:
self.settings_modal.bgcolor = self.RECTANGLE_COLOR
self.page.bgcolor = self.BACKGROUND_COLOR
self.page.update()

def on_memory_change(self, e):
self.memory_gb = e.control.value.strip()
self.config["memory_gb"] = self.memory_gb
self.save_config()

if __name__ == "__main__":
launcher = MinecraftLauncher()
ft.app(target=launcher.main, assets_dir=".")
pip install requests
 
1749858933364.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
всё равно крашает
1749859236169.png
и при python Loader.py не работает
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу