Новичок
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
using System.Diagnostics;
using System.IO.Compression;
using System.Net;
namespace frozenclient_loader
{
internal class Program
{
private const string FrozenPath = @"C:\FrozenClient";
private const string ClientZipUrl = ""; // ссылка на скачивание zip файла
private const string JarFileUrl = ""; // ссылка на скачивание jar файла
private const string asciiArt = @"
_____ ____ _ _ _
| __ __ ______ _ __ / | () _ _ | |_
| |_ | '__/ _ |_ / _ | '_ \| | | | |/ _ | '_ \| __|
| || | | () / | | | | | || | | _| | | | |_
|| || \/\|| ||\|||\|| ||\|
";
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
Console.WriteLine(asciiArt);
Console.Title = "frozen client лоудер";
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Введите ваше игровое имя и объем выделенной памяти (в МБ)");
Console.ResetColor();
string username;
string memory;
if (args.Length < 2)
{
Console.Write("Игровое имя: ");
username = Console.ReadLine();
Console.Write("Память (МБ): ");
memory = Console.ReadLine();
}
else
{
username = args[0];
memory = args[1];
}
if (!IsValidMemorySize(memory))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка: Некорректный объем памяти. Пожалуйста, введите число в мегабайтах.");
Console.WriteLine("[>] Лоудер закроется через 15 секунд...");
Console.ResetColor();
Thread.Sleep(15000);
return;
}
Console.Clear();
Console.WriteLine(asciiArt);
Console.WriteLine("[>] Проверка клиента...");
if (!Directory.Exists(FrozenPath))
{
Console.WriteLine("[>] Создание каталога для клиента...");
Directory.CreateDirectory(FrozenPath);
}
bool librariesFolderExists = Directory.Exists(Path.Combine(FrozenPath, "libraries"));
if (!librariesFolderExists)
{
Console.WriteLine("[>] Клиент не найдена. Запуск загрузки клиента...");
string zipPath = Path.Combine(FrozenPath, "frozenclient.zip");
if (!DownloadFile(ClientZipUrl, zipPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при скачивании клиента.");
Console.ResetColor();
return;
}
Console.WriteLine("[>] Распаковка клиента...");
if (!ExtractZipFile(zipPath, FrozenPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при распаковке клиента.");
Console.ResetColor();
return;
}
File.Delete(zipPath);
}
string jarPath = Path.Combine(FrozenPath, "client.jar");
if (!File.Exists(jarPath))
{
Console.WriteLine("[>] JAR файл не найден. Запуск загрузки...");
if (!DownloadFile(JarFileUrl, jarPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при скачивании JAR файла.");
Console.ResetColor();
return;
}
}
else
{
Console.WriteLine("[V] JAR файл найден.");
}
string javaPath = Path.Combine(FrozenPath, "jdk-17", "bin", "java.exe");
if (!File.Exists(javaPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"[X] Ошибка: Файл {javaPath} не найден.");
Console.ResetColor();
return;
}
string librariesPath = Path.Combine(FrozenPath, "libraries");
string[] libraryJars = Directory.GetFiles(librariesPath, "*.jar");
string nativesPath = Path.Combine(FrozenPath, "natives");
if (!Directory.Exists(nativesPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"[X] Ошибка: Папка {nativesPath} не найдена.");
Console.ResetColor();
return;
}
string classpath = $"{jarPath};{string.Join(";", libraryJars)}";
startInfo.FileName = javaPath;
startInfo.Arguments = $"-Xmx{memory}M -Djava.library.path=\"{nativesPath}\" -cp \"{classpath}\" net.minecraft.client.main.Main --version 1.16 --username {username} --accessToken 0 --assetsDir \"{Path.Combine(FrozenPath, "assets")}\" --assetIndex 1.16 --userProperties {{}}";
startInfo.WorkingDirectory = FrozenPath;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardError = false;
startInfo.RedirectStandardOutput = false;
try
{
Process process = Process.Start(startInfo);
if (process != null)
{
Console.WriteLine("[V] Frozen Client успешно запущен.");
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка: Не удалось запустить процесс.");
Console.ResetColor();
}
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при запуске Frozen Client: " + ex.Message);
Console.WriteLine("[>] Лоудер закроется через 15 секунд...");
Console.ResetColor();
Thread.Sleep(15000);
}
Environment.Exit(0);
}
static bool IsValidMemorySize(string memory)
{
if (int.TryParse(memory, out int result))
{
return result > 0;
}
return false;
}
static bool DownloadFile(string url, string destinationPath)
{
try
{
using (WebClient client = new WebClient())
{
client.DownloadProgressChanged += (sender, e) =>
{
Console.Write($"\r[V] Загрузка: {e.ProgressPercentage}% ({e.BytesReceived / 1024} KB из {e.TotalBytesToReceive / 1024} KB)");
};
client.DownloadFileCompleted += (sender, e) =>
{
Console.WriteLine("\n[V] Загрузка завершена.");
};
client.DownloadFileAsync(new Uri(url), destinationPath);
while (client.IsBusy)
{
Thread.Sleep(100);
}
return true;
}
}
catch (Exception ex)
{
Console.WriteLine();
Console.WriteLine($"[X] Ошибка при скачивании файла: {ex.Message}");
return false;
}
}
static bool ExtractZipFile(string zipPath, string extractPath)
{
try
{
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string entryPath = Path.Combine(extractPath, entry.FullName);
string directoryPath = Path.GetDirectoryName(entryPath);
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
if (string.IsNullOrEmpty(entry.Name))
{
continue;
}
entry.ExtractToFile(entryPath, overwrite: true);
}
}
return true;
}
catch (Exception ex)
{
Console.WriteLine($"[X] Ошибка при распаковке файла: {ex.Message}");
return false;
}
}
}
}
using System.IO.Compression;
using System.Net;
namespace frozenclient_loader
{
internal class Program
{
private const string FrozenPath = @"C:\FrozenClient";
private const string ClientZipUrl = ""; // ссылка на скачивание zip файла
private const string JarFileUrl = ""; // ссылка на скачивание jar файла
private const string asciiArt = @"
_____ ____ _ _ _
| __ __ ______ _ __ / | () _ _ | |_
| |_ | '__/ _ |_ / _ | '_ \| | | | |/ _ | '_ \| __|
| || | | () / | | | | | || | | _| | | | |_
|| || \/\|| ||\|||\|| ||\|
";
static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
Console.WriteLine(asciiArt);
Console.Title = "frozen client лоудер";
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Введите ваше игровое имя и объем выделенной памяти (в МБ)");
Console.ResetColor();
string username;
string memory;
if (args.Length < 2)
{
Console.Write("Игровое имя: ");
username = Console.ReadLine();
Console.Write("Память (МБ): ");
memory = Console.ReadLine();
}
else
{
username = args[0];
memory = args[1];
}
if (!IsValidMemorySize(memory))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка: Некорректный объем памяти. Пожалуйста, введите число в мегабайтах.");
Console.WriteLine("[>] Лоудер закроется через 15 секунд...");
Console.ResetColor();
Thread.Sleep(15000);
return;
}
Console.Clear();
Console.WriteLine(asciiArt);
Console.WriteLine("[>] Проверка клиента...");
if (!Directory.Exists(FrozenPath))
{
Console.WriteLine("[>] Создание каталога для клиента...");
Directory.CreateDirectory(FrozenPath);
}
bool librariesFolderExists = Directory.Exists(Path.Combine(FrozenPath, "libraries"));
if (!librariesFolderExists)
{
Console.WriteLine("[>] Клиент не найдена. Запуск загрузки клиента...");
string zipPath = Path.Combine(FrozenPath, "frozenclient.zip");
if (!DownloadFile(ClientZipUrl, zipPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при скачивании клиента.");
Console.ResetColor();
return;
}
Console.WriteLine("[>] Распаковка клиента...");
if (!ExtractZipFile(zipPath, FrozenPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при распаковке клиента.");
Console.ResetColor();
return;
}
File.Delete(zipPath);
}
string jarPath = Path.Combine(FrozenPath, "client.jar");
if (!File.Exists(jarPath))
{
Console.WriteLine("[>] JAR файл не найден. Запуск загрузки...");
if (!DownloadFile(JarFileUrl, jarPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при скачивании JAR файла.");
Console.ResetColor();
return;
}
}
else
{
Console.WriteLine("[V] JAR файл найден.");
}
string javaPath = Path.Combine(FrozenPath, "jdk-17", "bin", "java.exe");
if (!File.Exists(javaPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"[X] Ошибка: Файл {javaPath} не найден.");
Console.ResetColor();
return;
}
string librariesPath = Path.Combine(FrozenPath, "libraries");
string[] libraryJars = Directory.GetFiles(librariesPath, "*.jar");
string nativesPath = Path.Combine(FrozenPath, "natives");
if (!Directory.Exists(nativesPath))
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"[X] Ошибка: Папка {nativesPath} не найдена.");
Console.ResetColor();
return;
}
string classpath = $"{jarPath};{string.Join(";", libraryJars)}";
startInfo.FileName = javaPath;
startInfo.Arguments = $"-Xmx{memory}M -Djava.library.path=\"{nativesPath}\" -cp \"{classpath}\" net.minecraft.client.main.Main --version 1.16 --username {username} --accessToken 0 --assetsDir \"{Path.Combine(FrozenPath, "assets")}\" --assetIndex 1.16 --userProperties {{}}";
startInfo.WorkingDirectory = FrozenPath;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardError = false;
startInfo.RedirectStandardOutput = false;
try
{
Process process = Process.Start(startInfo);
if (process != null)
{
Console.WriteLine("[V] Frozen Client успешно запущен.");
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка: Не удалось запустить процесс.");
Console.ResetColor();
}
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("[X] Ошибка при запуске Frozen Client: " + ex.Message);
Console.WriteLine("[>] Лоудер закроется через 15 секунд...");
Console.ResetColor();
Thread.Sleep(15000);
}
Environment.Exit(0);
}
static bool IsValidMemorySize(string memory)
{
if (int.TryParse(memory, out int result))
{
return result > 0;
}
return false;
}
static bool DownloadFile(string url, string destinationPath)
{
try
{
using (WebClient client = new WebClient())
{
client.DownloadProgressChanged += (sender, e) =>
{
Console.Write($"\r[V] Загрузка: {e.ProgressPercentage}% ({e.BytesReceived / 1024} KB из {e.TotalBytesToReceive / 1024} KB)");
};
client.DownloadFileCompleted += (sender, e) =>
{
Console.WriteLine("\n[V] Загрузка завершена.");
};
client.DownloadFileAsync(new Uri(url), destinationPath);
while (client.IsBusy)
{
Thread.Sleep(100);
}
return true;
}
}
catch (Exception ex)
{
Console.WriteLine();
Console.WriteLine($"[X] Ошибка при скачивании файла: {ex.Message}");
return false;
}
}
static bool ExtractZipFile(string zipPath, string extractPath)
{
try
{
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string entryPath = Path.Combine(extractPath, entry.FullName);
string directoryPath = Path.GetDirectoryName(entryPath);
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
if (string.IsNullOrEmpty(entry.Name))
{
continue;
}
entry.ExtractToFile(entryPath, overwrite: true);
}
}
return true;
}
catch (Exception ex)
{
Console.WriteLine($"[X] Ошибка при распаковке файла: {ex.Message}");
return false;
}
}
}
}