FastQuit
О данном моде
Этот мод позволяет вернуться на экран заголовка раньше, пока ваш мир всё ещё сохраняется в фоновом режиме.
Не беспокойтесь, мод дождется завершения сохранения мира, когда это необходимо, никакие данные не будут потеряны!
Мир появится в списке миров, и вы даже сможете редактировать, удалять или создавать его заново, пока он всё ещё сохраняется. Это достигается за счет повторного использования информации из ещё сохраняющегося мира.
В текущем состоянии это должно быть безопасно, так как были приняты меры для обеспечения потокобезопасности. Если вы всё же столкнетесь с проблемой, худшее, что может произойти — действие завершится неудачей, и Minecraft покажет вам toast-уведомление, информирующее об этом.
Если это произойдет, пожалуйста, создайте issue с прикрепленным файлом .minecraft/logs/latest.log!
Настройка
Для настройки мода откройте экран конфигурации через ModMenu или перейдите в .minecraft/config/fastquit-config.txt.
В настоящее время доступны три настраиваемых параметра:
Показывать toast-уведомления:
Определяет, будет ли показываться toast при завершении сохранения мира.
Приоритет фонового потока:
Устанавливает приоритет потока сервера при сохранении миров в фоновом режиме. Это делается для улучшения производительности клиента во время сохранения, но увеличит общее время сохранения. Значение должно быть в диапазоне от 0 до 10; установка 0 отключит изменение приоритета потока.
Рендерить экран "Saving world":
При игре на большом расстоянии рендеринга выход из мира всё равно может занимать некоторое время из-за необходимости очистки клиентского хранилища чанков. Включение этой настройки приведет к отображению экрана "Saving world".
Показывать время сохранения
Определяет, отображается ли время, затраченное на сохранение мира, в toast-уведомлениях и списке миров. Значение должно быть от 0 до 2: 0 — никогда не показывать время, 1 — только в toast, 2 — также в списке миров. В ModMenu эти варианты соответствующим образом подписаны.
Как работает этот мод?
В своей основе мод довольно прост:
Обычно при выходе из мира в одиночной игре клиент ожидает, пока серверный поток завершит сохранение мира, прежде чем перейти на экран заголовка. Этот мод пропускает этот период ожидания и позволяет серверу продолжить сохранение в фоновом режиме.
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ это не всегда делает выход из мира мгновенным, так как клиенту всё ещё может потребоваться время для выгрузки отрендеренных чанков и т.д. Однако даже в этом случае вы заметите ускорение, поскольку клиентская выгрузка и серверное сохранение теперь выполняются одновременно, а не последовательно.
Конечно, на практике всё не так просто:
При работе с несколькими потоками возникают многие проблемы. Например, при переходе к списку миров Minecraft попытается прочитать данные уровня, но потерпит неудачу, потому что фоновое сохранение всё ещё блокирует файл мира.
Вместо этого мы теперь получаем доступ к информации через всё ещё работающий сервер. Аналогично, при попытке редактировать, удалить или создать мир заново необходимо использовать существующую сессию.
Для обеспечения потокобезопасности этих процессов требуется значительная синхронизация, чтобы гарантировать, что сохраняющий сервер и клиент не мешают друг другу.
Для некоторых действий, таких как повторное подключение к ещё сохраняющемуся миру или создание резервной копии, мы просто ждем полного завершения сохранения сервером. Мы также ждем завершения сохранения миров при выходе из игры, чтобы гарантировать отсутствие потери данных.
Проблемы?
Если вы столкнулись с какими-либо проблемами, пожалуйста, создайте issue в трекере проблем!
Убедитесь, что приложили важную информацию, такую как другие используемые моды, log- или crash-файлы и, если возможно, шаги для воспроизведения.
Перед загрузкой любых файлов убедитесь, что удалили личные данные! (Например, имя пользователя вашего компьютера в залогированных путях)