Skip to content

Добавить запуск игры в Windows-клиенте: обновление сессии Minecraft, аргументы, проверка Java и процесс игры - #14

Merged
Liis17 merged 20 commits into
mainfrom
t3/577a595a
Oct 23, 2026

Conversation

@Liis17

@Liis17 Liis17 commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Реализован онлайн-запуск Minecraft в Windows-клиенте через обновление сессии с refresh-grant и сохранением ротированного токена
  • Добавлена подготовка аргументов запуска: правила OS/arch/features, замена -Xmx/-XX:MaxHeapSize единым лимитом, отклонение пользовательских флагов, зарезервированных лаунчером (--username, --gameDir и др.)
  • Добавлена проверка Java: проба -XshowSettings:properties -version с таймаутом 10 с, проверка major version и os.arch против закреплённой архитектуры сборки
  • Реализован процесс игры, который продолжает работать после закрытия Hako: CreateProcessW без shell, CREATE_NO_WINDOW, рабочий каталог minecraft/, stdout/stderr в minecraft/logs/hako-launch.log
  • Добавлена запись .hako-running.json с PID и временем старта для восстановления сессий; восстановление сверяет PID и время создания процесса
  • Реализована кодировка аргументов Java через JavaAnsiEncoding: строгая WideCharToMultiByte(WC_NO_BEST_FIT_CHARS) в системную кодовую страницу, замена непредставимых путей на 8.3-имя (GetShortPathNameW), без best-fit-замен
  • Добавлен MinecraftSessionCoordinator для управления сессией Minecraft: refresh-токен обновляется при необходимости, параллельные вызовы ждут одну операцию, отменённые результаты не восстанавливают удалённую сессию

Testing

  • Сборка Windows-проекта проходит без ошибок
  • 265 тестов прошли, 3 теста корзины пропущены (интеграционные, требуют реальной файловой системы)
  • Повторные 5 прогонов тестов запуска стабильны
  • В Release-публикации с trimming новых предупреждений в коде Hako нет
  • Помощник времени игры (--playtime-helper) в опубликованном exe завершается сам с кодом 2
  • Проверка кириллического пути профиля при системной кодировке 1251 на реальной Java 11: аргументы запуска читаются корректно
  • Замену пути коротким именем 8.3 проверяли с подменой, не на настоящем диске
  • Отмена входа в Microsoft не вызывает ложной «сетевой ошибки»

Liis17 added 20 commits October 22, 2026 03:51
…, выбор архитектуры с x64 на ARM64, установщик
…ие, повтор и восстановление после перезапуска
- Создание Vanilla-сборок, фоновая очередь установки, профиль сборки и запуск онлайн/offline
- Настройки игры (Java, память, окно, offline-mode), иконки сборок, локализация
- Тесты для defaults, иконок, store, координатора и ресурсов
…la-сборки, профиль, запуск и настройки игры
@Liis17
Liis17 merged commit ad3e7d3 into main Oct 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant