1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

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

  1. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    [offtop]Подписался на топик, лучше, чем кино.[/offtop]
     
  2. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Разобрался. Это
    Код:
    Convert.ToDateTime().ToShortDateString()

    Теперь проблема сортировку сделать
     
  3. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    https://msdn.microsoft.com/ru-ru/library/b0zbh7b6(v=vs.110).aspx

    А если делать сортировку версий (на чем я тоже горя хапнул немного), то тебе придётся сплитить string по точкам и сверять числа. А может быть в шарпе есть уже готовые решения, хз.
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Это лишнее, даты достаточно.
     
  5. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Если работать с массивом json клиентов - да. А если есть только массив со значениями версий - то такое.
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Переведи в уникс тиме, достаточно будет.
    У него стандартный json с датами.
     
  7. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Можно пожалуйста привести конкретный пример сортировки?
    Сортировку массива дат я сделал:

    Код:
    JArray versionlistarray = JArray.Parse(versionlist["versions"].ToString());
    
                    DateTime[] dtimes = new DateTime[versionlistarray.Count()];
                    for (int i = 0; i < versionlistarray.Count(); i++)
                    {
                       
    
                        dtimes[i] = new DateTime(Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Year,
                            Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Month,
                            Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Day,
                            Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Hour,
                            Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Minute,
                            0);
    
    
    
                    }
    
    
                    Array.Sort(dtimes);
    
                    string out = "";
                    foreach (DateTime vrem in dtimes)
                    {
                        out = out + vrem.Year + "." + vrem.Month + "." + vrem.Day + "-" + vrem.Hour + ":" + vrem.Minute + Environment.NewLine;
                    }
                    MessageBox.Show(out);
     
  8. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Зачем ты даты сортируешь? Тебе версии сортировать надо.
     
  9. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Я вот нечего лучше придумать не смог, как сделать отдельный массив дат, его отсортировать. а потом в основном - найти, какая версия соответствует этой дате. Ведь лаунчер должен жить не только на официальных билдах, но и на версиях, которые пользователь устанавливает сам!
    Но есть небольшая проблема (вру, большая): Т.к. версий много, то под одной датой может стоят очень много версий! И надо. чтобы лаунчер выписал все эти версии, вот и маюсь!
    Т.е. у меня есть массив дат и версий:

    [
    {
    "id": " rd-132328",
    "releaseTime": "2009-05-13T21:28:00+00:00"
    },
    {
    "id": " Forge_1.9",
    "releaseTime": "2016-02-29T13:49:54+00:00"
    },
    {
    "id": " Forge_1.7.2",
    "releaseTime": "2013-10-25T13:00:00+00:00"
    },
    {
    "id": " Forge 1.7.10",
    "releaseTime": "2014-05-14T17:29:23+00:00"
    }
    ...
    {
    "id": "b1.7",
    "releaseTime": "2011-06-29T22:00:00+00:00"
    },
    {
    "id": "b1.6.6",
    "releaseTime": "2011-05-30T22:00:00+00:00"
    },
    {
    "id": "b1.6.5",
    "releaseTime": "2011-05-27T22:00:00+00:00"
    },
    {
    "id": "b1.6.4",
    "releaseTime": "2011-05-25T22:00:04+00:00"
    },
    {
    "id": "b1.6.3",
    "releaseTime": "2011-05-25T22:00:03+00:00"
    },
    ...

    И есть массив отсортированных дат в том же формате. И мне надо, чтобы лаунчер выписал все версии, которые соответствуют этой дате.
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Да и так нормально будет. Ты же не будешь сам себе вредить и менять дату на всех версиях.
     
  11. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Так как сделать сортировку версий-то? Меня гугл даже не понимает
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну, можешь сделать реплейс по регулярке и убрать все буквы и точки, дописать 0-ли там где число короче. И сортировать потом по числам.
    Но ты должен учитывать, что в снапшотах не пишется номер версий. Ну и бетоверсии как то различать. Я хз что там имеется кроме bномер.
     
  13. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Да я же написал!!!!!!! Как сделать подбор! Как найти ВСЕ версии, которые соответствуют этой дате!?
     
  14. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Оно и так рядом будет.
     
    Последнее редактирование: 10 янв 2017
  15. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    О ГОСПОДИ!!!!!!!

    JObject jo = array.Children<JObject>().FirstOrDefault(o => o["text"]!=null&& o["text"].ToString()=="Two");

    ЭТО ищет ОДИН элемент, а мне надо ВСЕ
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Короче юзай дату, это самый лучший вариант. Ибо ты еще не раз наступишь на грабли с этими именами. Там может и не быть циферок с версией. А assets подскажет приблизительную версию, да и только после 1.6.
     
  17. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    ТЫ МОЖЕШЬ НАПИСАТЬ, КАК НАЙТИ СООТВЕТСТВИЕ ИМЁН К ДАТЕ???????????
    Всё, я уже опытным путём сам догадался, получилось конечно топорно, но зато всё как надо, и версии, которые имеются он помечает
    А как можно запустить версию, где в названии есть пробелы?
     
  18. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Добавь в класс с версией поле date, добавь все версии в список, напиши свой компаратор для этого списка, чтобы он даты сравнивал, затем просто Arrays.sort(list) и всё. Зачем ты такие костыли делаешь?
     
  19. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    урл в ковычках сделай.
    Код:
    -Djava.library.path="versions\Dark Light Client 1.9\natives" -cp "libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar";"libraries\net\java\dev\jna\jna\3.4.0\jna-3.4.0.jar";"libraries\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar";"libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar";"libraries\net\sf\jopt-simple\jopt-simple\4.6\jopt-simple-4.6.jar";"libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar";"libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar";"libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar";"libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar";"libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar";"libraries\io\netty\netty-all\4.0.23.Final\netty-all-4.0.23.Final.jar";"libraries\com\google\guava\guava\17.0\guava-17.0.jar";"libraries\org\apache\commons\commons-lang3\3.3.2\commons-lang3-3.3.2.jar";"libraries\commons-io\commons-io\2.4\commons-io-2.4.jar";"libraries\commons-codec\commons-codec\1.9\commons-codec-1.9.jar";"libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar";"libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar";"libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar";"libraries\com\mojang\authlib\1.5.22\authlib-1.5.22.jar";"libraries\com\mojang\realms\1.8.7\realms-1.8.7.jar";"libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar";"libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar";"libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar";"libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar";"libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar";"libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar";"libraries\org\lwjgl\lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar";"libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar";"libraries\org\lwjgl\lwjgl\lwjgl\2.9.2-nightly-20140822\lwjgl-2.9.2-nightly-20140822.jar";"libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.2-nightly-20140822\lwjgl_util-2.9.2-nightly-20140822.jar";"versions\Dark Light Client 1.9\Dark Light Client 1.9.jar" net.minecraft.client.main.Main --username zenit --version "Dark Light Client 1.9" --gameDir . --assetsDir assets --assetIndex 1.9 --uuid 00000000000000000000000000000000 --accessToken 0 --userType legacy --versionType release
     
  20. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Большое спасибо!
    А можно ли как-то получить список последних версий Forge для определенных версий?
    Как можно сделать логирование в файл независимо от лаунчера (лаунчер закрыт - логи пишутся)?
    p.s. сам майн ничего никуда не сохраняет
    Так можно ли как-то логирование сделать?
     

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