Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Совет Запуск Minecraft БЕЗ лаунчера!

3 раза читали и не увидел как кеш чистить? Чет не верю.
После удаления скаченной папки ничего не изменилось. Хотя, перед добавлением всех модов из сборки появился первый краш-рапорт с ошибкой инициализации.

Форж установился 1448, это видно на экране майна.
Что еще может быть не той версии, чтобы сборка отваливалась?


Ааа. Это я балда!
Забыл совсем сказать на сервер подпапки mods/*
Прошу прощения! Завелось!!!

Только на сервер не пускает(
Полагаю пути в AuthMe я вручную менять должен?
3 раза читали и не увидел как кеш чистить? Чет не верю.
snimok-ehkrana-ot-2016-10-11-15-17-09-png.43310


Не понимаю((
Почему-то после всех операций, клиент ломится к скрипту hasJoin не в указанную мною папку, а в папку другого ланчера.
Почему-то после всех операций, клиент ломится к скрипту hasJoin не в указанную мною папку, а в папку другого ланчера.
 

Вложения:

  • Снимок экрана от 2016-10-11 15:17:09.png
    Снимок экрана от 2016-10-11 15:17:09.png
    Размер файла
    5,2 КБ
    Просмотров
    256
Последнее редактирование:
После удаления скаченной папки ничего не изменилось. Хотя, перед добавлением всех модов из сборки появился первый краш-рапорт с ошибкой инициализации.

Форж установился 1448, это видно на экране майна.
Что еще может быть не той версии, чтобы сборка отваливалась?


Ааа. Это я балда!
Забыл совсем сказать на сервер подпапки mods/*
Прошу прощения! Завелось!!!

Только на сервер не пускает(
Полагаю пути в AuthMe я вручную менять должен?

snimok-ehkrana-ot-2016-10-11-15-17-09-png.43310


Не понимаю((
Почему-то после всех операций, клиент ломится к скрипту hasJoin не в указанную мною папку, а в папку другого ланчера.
Почему-то после всех операций, клиент ломится к скрипту hasJoin не в указанную мною папку, а в папку другого ланчера.
Перечитай инструкцию еще раз 50. Может допрет таки.
 
Перечитай инструкцию еще раз 50. Может допрет таки.
Нет, все правильно - совсем забыл, что сервер тоже нужно перепропатчить.
Большое спасибо за помощь, прошу прощения за мозго..поедание.
Все заработало. Осталось сам клиент излечить от шрифтов и прочего. Люди не оценили...
Но это уже я сделаю сам)
Как ты отправляешь сообщения, которые проваливаются сквозь землю?

Не оценили то, что английский и русский фрифры имеют разный размер. Меня это тоже выбило. Зачем так делать?
Шрифт цифр (видин только в AE-сети пока) красивый.
В общем, мы все дружно за ванильный проголосовали.
 
Нет, все правильно - совсем забыл, что сервер тоже нужно перепропатчить.
Большое спасибо за помощь, прошу прощения за мозго..поедание.
Все заработало. Осталось сам клиент излечить от шрифтов и прочего. Люди не оценили...
Но это уже я сделаю сам)
Как ты отправляешь сообщения, которые проваливаются сквозь землю?

Не оценили то, что английский и русский фрифры имеют разный размер. Меня это тоже выбило. Зачем так делать?
Шрифт цифр (видин только в AE-сети пока) красивый.
В общем, мы все дружно за ванильный проголосовали.
J2bJBRMS4PD5J2.jpg
Ок. Угадай с 3х раз, какие буквы "а" я написал русскими, а какие инглишом.
Лично я не вижу разницы в размере.
 

Вложения:

  • Снимок экрана от 2016-10-12 10:37:30.png
    Снимок экрана от 2016-10-12 10:37:30.png
    Размер файла
    318,2 КБ
    Просмотров
    249
UP. Простой запуск клиентов на шарпе. Подключаем к проекту Newtonsoft.Json и DotNetZip. Проверенно на клиентах скаченных mojang лаунчером.
Java:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using System.Diagnostics;
using Ionic.Zip;

class Runs {
       static string assetIndex = "";
       static string clientjar;
       static void Main(string[] args) {
       string clientdir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\.minecraft\";
        string client = "1.10.2";
        string user = "zenit";
        string uuid = "00000000000000000000000000000000";
        string session = "0";
        start(clientdir, client, user, uuid, session);
    }

    static void start(string clientdir, string client, string user, string uuid, string session) {
        string nfolder = clientdir + @"versions\" + client + @"\natives";
        Directory.CreateDirectory(nfolder);
        clientjar = client;
        JObject versions = json(clientdir, client);
        assetInd(versions);
        JArray libraries = (JArray)versions["libraries"];
        string assetsdir = "assets";
        string gameassets = assetsdir + @"\virtual\legacy";
        string url = @"-Djava.library.path=versions\" + client + @"\natives -cp ";
        url = libs(libraries, url, clientdir, client, client);
        url += @"versions\" + clientjar + @"\" + clientjar + ".jar ";
        url += (string)versions["mainClass"] + " ";
        url += versions["minecraftArguments"].ToString().
        Replace("${auth_player_name}", user).
        Replace("${version_name}", client).
        Replace("${game_directory}", ".").
        Replace("${assets_root}", assetsdir).
        Replace("${game_assets}", gameassets).
        Replace("${assets_index_name}", assetIndex).
        Replace("${auth_uuid}", uuid).
        Replace("${auth_access_token}", session).
        Replace("${user_type}", "legacy").
        Replace("${version_type}", "release").
        Replace("${user_properties}", "{}");
        ProcessStartInfo Info = new ProcessStartInfo("java");
        Info.Arguments = url;
        Info.WorkingDirectory = clientdir;
        Info.UseShellExecute = false;
        Info.RedirectStandardOutput = true;
        Info.RedirectStandardError = true;
        Process process = new Process();
        process.StartInfo = Info;
        Action<object, DataReceivedEventArgs> actionWrite = (sender, e) =>
        {
            Console.WriteLine(e.Data);
        };
        process.ErrorDataReceived += (sender, e) => actionWrite(sender, e);
        process.OutputDataReceived += (sender, e) => actionWrite(sender, e);
        process.Start();
        process.BeginOutputReadLine();
        process.BeginErrorReadLine();
        process.WaitForExit();
    }

    static string libs(JArray libraries, string url, string clientdir, string client, string n) {
        foreach (var librari in libraries) {
            string[] libdir = librari["name"].ToString().Split(':');
            string libsdir = @"libraries\"+libdir[0].Replace(".", @"\")+@"\"+libdir[1]+@"\"+libdir[2]+@"\"+libdir[1]+"-"+libdir[2];
            if (librari["natives"]==null) {
                url += libsdir+ ".jar;";
            } else {
                string natives = clientdir + libsdir + "-natives-windows.jar";
                string nfolder = clientdir + @"versions\" + n + @"\natives\";
                unzip(natives, nfolder);
            }
        }
        JObject versions = json(clientdir, client);
        string inheritsFrom = (string)versions["inheritsFrom"];
        if (versions["jar"] != null) {
            clientjar = (string)versions["jar"];
        }
        if (inheritsFrom !=null) {
            versions = json(clientdir, inheritsFrom);
            libraries = (JArray)versions["libraries"];
            return url += libs(libraries, url, clientdir, inheritsFrom, n);
        }
        assetInd((JObject)versions["assetIndex"]);
        return url;
    }

    static JObject json(string clientdir, string client) {
        string json = clientdir + @"versions\" + client + @"\" + client + ".json";
        return JObject.Parse(File.ReadAllText(json));
    }

    static string assetInd(JObject versions) {
        if (versions["assetIndex"] != null) {
            assetIndex = (string)versions["assetIndex"]["id"];
        }
        else if (versions["assets"] != null) {
            assetIndex = (string)versions["assets"];
        }
        return assetIndex;
    }

    static void unzip(string zipdfile, string zipfolder) {
        try {
            using (ZipFile zip = ZipFile.Read(zipdfile)) {
                foreach (ZipEntry ef in zip) {
                    zip.ExtractAll(zipfolder, ExtractExistingFileAction.OverwriteSilently);
                }
            }
        }
        catch {}
    }
}
 
Последнее редактирование:
Ну тогда сам виноват.
Внезапно ланчер стал циклически обновляться.
Качает нового себя и просит обновиться еще раз... два... три...
Ланчер время от времени изредка требует его обновить. Нажимаешь jar - перезпуск и снова.
Обновление не выкладывал, он обновляется...

Отключил релиз в java-коде - "ошибка подключения".

Блин, что за *****?
 
При запуске Батника у меня жалобы на первую строку, я скачал файл по ссылке, проверил на вирусы, мне говорит вирусня. Я доверяю антивирусу, поэтому лаунчер для меня
 
При запуске Батника у меня жалобы на первую строку, я скачал файл по ссылке, проверил на вирусы, мне говорит вирусня. Я доверяю антивирусу, поэтому лаунчер для меня
Не удачная шутка.
 
В древние имена я просто вскрывал лаунчер, смотрел там передаваемые параметры и запускал так же :)
Здравствуйте. Не могли бы Вы подсказать куда мне копать, чтобы тоже научиться "вскрывать лаунчер"? Хочу запустить майнкрафт одного из проектов с модами и зайти на сервер, чтобы афкшить, но чтобы не было графического окна майнкрафта...
 

Поделиться этой страницей

Назад
Верх