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

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

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

  1. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    ISO 8601
     
  2. Mr Hosting
  3. Larin

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

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

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

    Баллы:
    76
    Разобрался. Это
    Код (Text):
    1. Convert.ToDateTime().ToShortDateString()
    --- Сообщения объединены: 8 янв 2017, предыдущее сообщение: 8 янв 2017 ---
    Теперь проблема сортировку сделать
     
  5. Dereku

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

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

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

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

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

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

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

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

    Баллы:
    173
    Skype:
    alexandr0116
    Переведи в уникс тиме, достаточно будет.
    --- Сообщения объединены: 8 янв 2017 ---
    У него стандартный json с датами.
     
  9. Автор темы
    Oinvizion Craft

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

    Баллы:
    76
    Можно пожалуйста привести конкретный пример сортировки?
    --- Сообщения объединены: 9 янв 2017, предыдущее сообщение: 9 янв 2017 ---
    Сортировку массива дат я сделал:

    Код (Text):
    1. JArray versionlistarray = JArray.Parse(versionlist["versions"].ToString());
    2.  
    3.                 DateTime[] dtimes = new DateTime[versionlistarray.Count()];
    4.                 for (int i = 0; i < versionlistarray.Count(); i++)
    5.                 {
    6.                    
    7.  
    8.                     dtimes[i] = new DateTime(Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Year,
    9.                         Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Month,
    10.                         Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Day,
    11.                         Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Hour,
    12.                         Convert.ToDateTime(versionlistarray[i]["releaseTime"]).Minute,
    13.                         0);
    14.  
    15.  
    16.  
    17.                 }
    18.  
    19.  
    20.                 Array.Sort(dtimes);
    21.  
    22.                 string out = "";
    23.                 foreach (DateTime vrem in dtimes)
    24.                 {
    25.                     out = out + vrem.Year + "." + vrem.Month + "." + vrem.Day + "-" + vrem.Hour + ":" + vrem.Minute + Environment.NewLine;
    26.                 }
    27.                 MessageBox.Show(out);
     
  10. Larin

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

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

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

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

    [
    {
    "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"
    },
    ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    173
    Skype:
    alexandr0116
    урл в ковычках сделай.
    Код (Text):
    1. -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
     

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