Хостинг серверов 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
    Спасибо. И ещё, откуда качать legacy.json?
     
  2. Хостинг MineCraft
    <
  3. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Не смотрел даже никогда.
     
  4. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    О! Ща в консольку залезу к тлаунчеру![DOUBLEPOST=1478284399,1478284339][/DOUBLEPOST]Там не сказано[DOUBLEPOST=1478284719][/DOUBLEPOST]Если найдёшь откуда legacy.json качается напиши пж[DOUBLEPOST=1478284911][/DOUBLEPOST]О нашёл!!!!

    https://s3.amazonaws.com/Minecraft.Download/indexes/legacy.json

    Вот тут если что все ссылки:
    http://wiki.vg/Game_files[DOUBLEPOST=1478288627][/DOUBLEPOST]А как natives которые в папки версии лежат скачать?[DOUBLEPOST=1478293910][/DOUBLEPOST]Слушай, очень надо узнать, как получить список версий и их JSON-нников?
    А также откуда качать dll нэйтивсов в папке версии[DOUBLEPOST=1478296863][/DOUBLEPOST]Всё с нативсами я разобрался,


    (Если кому-то надо будет)
    Это качается от сюда: http://s3.amazonaws.com/MinecraftDownload/windows_natives.jar.lzma
    [DOUBLEPOST=1478296974][/DOUBLEPOST]Их просто вытащить из этого джарника и всё?[DOUBLEPOST=1478299551][/DOUBLEPOST]Слушай, что это такое вылазит у меня при запуске с новыми нэйтивсами:
    Code:
    2016-11-04 16:44:58 [INFO] [STDERR] java.lang.reflect.InvocationTargetException
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at java.lang.reflect.Method.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.relaunchClient(FMLRelauncher.java:123)
    2016-11-04 16:44:58 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.handleClientRelaunch(FMLRelauncher.java:38)
    2016-11-04 16:44:58 [INFO] [STDERR]     at net.minecraft.client.Minecraft.main(Minecraft.java:2237)
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at java.lang.reflect.Method.invoke(Unknown Source)
    2016-11-04 16:44:58 [INFO] [STDERR]     at net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
    2016-11-04 16:44:58 [INFO] [STDERR]     at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
    2016-11-04 16:44:58 [INFO] [STDERR] Caused by: java.lang.UnsatisfiedLinkError: org.lwjgl.DefaultSysImplementation.getPointerSize()I
    2016-11-04 16:44:58 [INFO] [STDERR]     at org.lwjgl.DefaultSysImplementation.getPointerSize(Native Method)
    2016-11-04 16:44:58 [INFO] [STDERR]     at org.lwjgl.Sys.<clinit>(Sys.java:113)
    2016-11-04 16:44:58 [INFO] [STDERR]     at net.minecraft.client.Minecraft.func_71386_F(Minecraft.java:2576)
    2016-11-04 16:44:58 [INFO] [STDERR]     at net.minecraft.client.Minecraft.fmlReentry(Minecraft.java:2247)
    2016-11-04 16:44:58 [INFO] [STDERR]     ... 13 more
    [DOUBLEPOST=1478358601][/DOUBLEPOST]Перепробовал кучу методов, не знаешь, какую версию lwjgl майнкрафт юзает?[DOUBLEPOST=1478360204][/DOUBLEPOST]Я заметил, что в каждой версии майна, своя версия lwjgl[DOUBLEPOST=1478574536][/DOUBLEPOST]Возникла проблема при загрузки библиотек.
    По какой причине не качаются многие библиотеки, типа этой:

    https://libraries.minecraft.net/org...1-nightly-20130708-debug3-natives-windows.jar (эту ссылку выдаёт мой лаунчер и не может скачать)

    Вот что в JSON-нике:
    Code:
    {
          "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3",
          "rules": [
            {
              "action": "allow",
              "os": {
                "name": "osx",
                "version": "^10\\.5\\.\\d$"
              }
            }
          ],
          "natives": {
            "linux": "natives-linux",
            "osx": "natives-osx",
            "windows": "natives-windows"
          },
          "extract": {
            "exclude": [
              "META-INF/"
            ]
          }
        },
    Вроде всё правильно, но оно не качается. Почему?
     
  5. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Ответ тут

    1. "action": "allow",
    2. "os": {
    3. "name": "osx",
    4. "version": "^10\\.5\\.\\d$"
    5. }
      только для osx.
     
  6. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Т.е. Где в Rules OS Name стоит OSX эту библиотеку просто тупо пропускать?[DOUBLEPOST=1479019438,1479015720][/DOUBLEPOST][DOUBLEPOST=1479022166][/DOUBLEPOST]Всё! Пришлось помаяться со считыванием значения, вот как сделал:

    В самом начале идёт цикл, который и раньше запускал проверку, загрузку и распаковку либов:
    Code:
    for (int i = 0; i < jobject["libraries"].Count(); i++)
    {
    А потом такое:
    Code:
    try
                    {
                        rules = (JValue)jobject["libraries"][i]["rules"][0]["os"]["name"];
                        2rules = Convert.ToString(rules);
                    }
                    catch
                    {
                        2rules = "";
                    }
    И затем:
    Code:
    if (2rules != "")
                    {
                        goto end; //Пропускает этот либ
                    }
    P.S
    Мож коряво, но зато работает![DOUBLEPOST=1479022375][/DOUBLEPOST]Да, и такой вопросик, может ли name быть windows ?
     
    Last edited: Nov 13, 2016
  7. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Там где в рулес нету форточки = да, пропускаем.[DOUBLEPOST=1479047972][/DOUBLEPOST]P.s можно так foreach (var librari in libraries) {}
     
  8. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Удобнее первым вариантом, так как цикл этот как бы главный, т.е. именно он проверяет и скачивает либы, распаковывает их, распаковывает natives и т.д. Но вообще к едино решению можно придти разными путями.

    Ах да, и всё висит пара вопросов, от куда качать JSON-нники версий?
    И откуда получать список самих версий?[DOUBLEPOST=1479050685,1479050382][/DOUBLEPOST][DOUBLEPOST=1479050853][/DOUBLEPOST]Вот:
    http://s3.amazonaws.com/Minecraft.Download/versions/versions.json
    Это?[DOUBLEPOST=1479051162][/DOUBLEPOST]"This URL is being phased out! Please update your scripts to check https://launchermeta.mojang.com/mc/game/version_manifest.json instead. Thanks <3 --Dinnerbone"

    И что юзать тогда?[DOUBLEPOST=1479056968][/DOUBLEPOST]Слушай, не знаешь как в MS визуалке запретить ввод своего текста в ComboBox?[DOUBLEPOST=1479057591][/DOUBLEPOST]И ещё, как сопоставить значение выбранной версии ComboBox с url из джоснника?
     
  9. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Ну видимо это новый json.[DOUBLEPOST=1479058271,1479057923][/DOUBLEPOST]
    Тут я не понял про что ты.[DOUBLEPOST=1479058330][/DOUBLEPOST]
    Если про это, то foreach (var librari in jobject["libraries"]) {}
     
  10. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Это я так.. Ты вот на это лучше ответь:

     
  11. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Не знаю.[DOUBLEPOST=1479058496,1479058408][/DOUBLEPOST]Ты наверное сделал комбобокс поля для ввода.
     
  12. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Хорошо, а если так:
    У нас есть массив считанных версий где каждой версии (id) соответствует url джсонника
    И есть string со значением id.
    Как открыть из массива значение url?
     
  13. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    хз о чем ты. Или ты сляпой ).

    Code:
    {
    "id":"1.11-pre1",
    "type":"snapshot","time":"2016-11-08T13:44:29+00:00",
    "releaseTime":"2016-11-08T13:42:50+00:00",
    "url":"https://launchermeta.mojang.com/mc/game/7dfcb37dd7f2c354b6cb10896f791df6a32151dc/1.11-pre1.json"
    }
     
  14. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    А про ComboBox нарыл.
    Надо в DropDownStyle установить DropDownList[DOUBLEPOST=1479058792,1479058724][/DOUBLEPOST]Это ты меня не понял! Как из массива вытащить значение url, которое соответствует id (например 1.10.2), выбранное из ComboBox
     
  15. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Разве бокс не указывает на индекс объекта?
     
  16. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Слушай, ты вообще не понимаешь что я спрашиваю про соответствие значения url из массива, значению id из ComboBox?
     
  17. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Я не понимаю твоей проблемы. У тебя массив объектов версий. Ты надуваешь комбобокс
    foreach(чтототам массив) {
    чтототам get(id), добавить в бокс.
    }
    При выборе бокса он указывает на индекс массива.
    Массив get(наш индекс) get(урл).
     
  18. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Ну смотри короче!

    У нас есть ComboBox, содержащий id версий из JSON-а
    Пользователь выбирает в ComboBox версию, например (1.10.2)
    И лаунчер считывает то, что он выбрал:
    string versia = versionlistbox.SelectedItem // переменная versia равна 1.10.2
    И мне необходимо из JSON-а вытащить url, который соответствует выбранной версии
     
  19. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    selectedIndex = comboBox.SelectedIndex.
    Массив версий get(selectedIndex) get("url").
    Проблем?
     
  20. Автор темы
    Oinvizion Craft

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

    Trophy Points:
    76
    Слушай, как versionlist["versions"] Переделать в массив?
     
  21. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
    Оно уже, массив json.
     

Share This Page