Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Обсудим Лепим пиратский лаунчер

Тема в разделе "Управление сервером Bukkit", создана пользователем Oinvizion Craft, 27 сен 2016.

  1. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Так, ну загрузку всех запакованных файлов я сделал норм, но Forge 1.5.2 всё равно не грузится, причём с той же ошибкой. Теперь проблема "ненайденности файла" точно решена, но что ещё может вызывать java.lang.ClassNotFoundException: net.minecraftforge.legacy._1_5_2.LibraryFixerTweaker ???[DOUBLEPOST=1475962980,1475962823][/DOUBLEPOST]И ещё один вопрос, для чего нужно это:
    Код:
    "rules": [
            {
              "action": "allow"
            },
            {
              "action": "disallow",
              "os": {
                "name": "osx",
                "version": "^10\\.5\\.\\d$"
              }
            }
          ]
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Другого не дано, все то же отсутствие джарника в класспатче, или физически в папке.
    Можешь не заморачиватся над rules, твой лаунчер все равно онли форточка.
     
  4. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Файл есть, это точно! И при запуске, и если его снести, он скачает именно этот, именно нужный файл!
    Короче, вот финальная команда запуска Forge 1.5.2, при выполнении которой выдаёт ту самую ошибку:

    Код:
    -XX:HeapDumpPath=ThisTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx7000M -Djava.library.path=C:\Users\PAVEL\AppData\Roaming\minecraft\versions\Forge_1.5.2\natives -cp C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/minecraftforge/minecraftforge/7.8.1.738/minecraftforge-7.8.1.738.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/scala-lang/scala-library/2.10.0-custom/scala-library-2.10.0-custom.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/sourceforge/argo/argo/3.2-small/argo-3.2-small.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\com/google/guava/guava/14.0-rc3/guava-14.0-rc3.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/minecraftforge_temp/legacy/legacyfixer/1.0/legacyfixer-1.0.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/minecraft/launchwrapper/1.5/launchwrapper-1.5.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/ow2/asm/asm-all/4.1/asm-all-4.1.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl/2.9.0/lwjgl-2.9.0.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl_util/2.9.0/lwjgl_util-2.9.0.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl-platform/2.9.0/lwjgl-platform-2.9.0.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl/2.9.1-nightly-20130708-debug3/lwjgl-2.9.1-nightly-20130708-debug3.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl_util/2.9.1-nightly-20130708-debug3/lwjgl_util-2.9.1-nightly-20130708-debug3.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\org/lwjgl/lwjgl/lwjgl-platform/2.9.1-nightly-20130708-debug3/lwjgl-platform-2.9.1-nightly-20130708-debug3.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\libraries\net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5.jar;C:\Users\PAVEL\AppData\Roaming\minecraft\versions\Forge_1.5.2\Forge_1.5.2.jar net.minecraft.launchwrapper.Launch Test null --gameDir C:\Users\PAVEL\AppData\Roaming\minecraft\ --assetsDir C:\Users\PAVEL\AppData\Roaming\minecraft\asssets\ --tweakClass net.minecraftforge.legacy._1_5_2.LibraryFixerTweaker --width 1670 --height 980
    Эта команда запуска правильная? И если да, то что ещё может вызывать ошибку, не смотря на то, что файл существует, ТОЧНО существует![DOUBLEPOST=1476063738,1476063572][/DOUBLEPOST]
    Я где-то видео метод конвертации шарповского кода под др операционки. Уж не знаю, возможно ли это, но кто знает!
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Значит ты его не правильно распаковал. Это lzma2 архив, не zip.
     
  6. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    [​IMG]
    Он у меня точно такой-же как из TLauncher, я даже делал так: Убирал свою загрузку и юзал только Tlauncher-овские файлы, и всё таже ошибка! Никто не смог решить проблему, ни на стаковерфлоу, ни на др. форумах по майну, я вопрос уже много где задавал, и всё тоже
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    И не помогут, ибо не знают что там у тебя и как. Если я делаю правильно, то у меня и запускается с 1 попытки.
    Вот сам посмотри на мой тестовый запуск.

    Код:
    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.5.2-Forge7.8.1.738";
            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;
            Process.Start(Info);
        }
    
        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);
            }
    
            if (versions["assetIndex"] != null){
                assetIndex = (string)versions["assetIndex"]["id"];
            }
            else if (versions["assets"] != null) {
                assetIndex = (string)versions["assets"];
            }
            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 {}
        }
    }
    Скачивал клиенты моджанг лаунчером, инсталил фордж инсталяшкой.
     
  8. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Фуух.. Наконец-то у нас инет обратно подключили. Короче, проблема реально, в том, что он не может нормально распаковать архив! Скажи, .xz - это разве не SevenZip - формат? Библиотека севен зипа распаковывает не открывающийся .tar Как распаковать данный архив?
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    lzma2 я уже писал ранее. Подбирай либы с поддержкой lzma2.
     
  10. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Я это знаю! Мне на стаковерфлоу написали, что его можно открыть севен зипом.[DOUBLEPOST=1477230023,1477080170][/DOUBLEPOST]Ну а ты можешь дать название хоть одной нормальной библиотеки?
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я же говорил, что не пишу на шарпе.
     
  12. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Я уже облазил просто всё, что можно. На многих форумах мне пишут что lzma можно распаковать SevenZip - ом.
    Спасибо тебе за помощь.
    Но получается, что в шарпе распаковать этот архив невозможно просто!
     
  13. Mr.appleXZ

    Mr.appleXZ Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    mrAppleXZ
    Ну-с, пиши либу сам.
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Писать там ничего не нужно, нужна обертка над 7z.dll и все. Например SevenZipExtractor.
     
  15. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Не удаётся добавить ссылку на "C:\Users\Имя_пользователя\Desktop\7z.dll". Убедитесь, что файл доступен, и является допустимой сборкой или компонентом COM[DOUBLEPOST=1478185938,1478185897][/DOUBLEPOST]Что тут не так?[DOUBLEPOST=1478188208][/DOUBLEPOST]Всё! Я понял в чём дело! Это Unpack200 неправильно распаковывает![DOUBLEPOST=1478188251][/DOUBLEPOST]
    Слушай, ты можешь не парится писать тут. От тебя всё равно толк - нулевой![DOUBLEPOST=1478188693][/DOUBLEPOST]На выходе у тлаунчера получается джарник весом 7 кб, а у меня через Unpack200 5 кб[DOUBLEPOST=1478189651][/DOUBLEPOST]Короче, у меня получился такой алгоритм:
    Сначала закачивается файл legacyfixer-1.0.jar.pack.xz,
    Затем он при помощи 7zr распаковывается в legacyfixer-1.0.jar.pack,
    И этот файл при помощи Unpack200 преобразуется в legacyfixer-1.0.jar

    Что тут не так?
     
  16. Santa

    Santa Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Santa64
    Чувак, что ты хочешь сделать?
    Свой пиратский лаунчер? Толку от него?
     
  17. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    А это уже не твои проблемы[DOUBLEPOST=1478192427,1478192392][/DOUBLEPOST]
    Хочу, и делаю. Я хочу создать идеальный лаунчер.
     
  18. Santa

    Santa Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Santa64
    хааххахах. идеальный лаунчер?
    хаха. Ладно если бы для своего проекта, но еще одну пиратку зачем?
     
  19. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Слушай, не твоё это дело! Хочу и делаю!
     
  20. Santa

    Santa Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Santa64
    Делай-делай. Просто ты будешь очень долго делать раз задаешь такие тупые вопросы.
    Всё на изи гуглиться. Небось ты еще не разбирался с потоками и ООП
     
  21. Автор темы
    Oinvizion Craft

    Oinvizion Craft Активный участник Пользователь

    Баллы:
    76
    Не хочешь помогать, вали с темы, не надо мне тут тебя такого![DOUBLEPOST=1478269637,1478193887][/DOUBLEPOST]Тут либо загрузка неправильная либо ещё что-то! Я распаковываю файл севен зипом через lzma2 нормально. Проверял на самодельных архивах. И даже джарники пробовал pack200 запаковывать, а потом прогонять по своему алгоритму, всё норм, а вот с либами майна нет!
     

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