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

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

Discussion in 'Управление сервером Bukkit' started by Oinvizion Craft, Sep 27, 2016.

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

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

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

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

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

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

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

    Code:
    -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 Администратор

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

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

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

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

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

    Code:
    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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

Share This Page