Skip to content

Установщик Quilt ​

TIP

Обратите внимание, что ProjBobcat реализует только автоматизированный процесс установки Quilt. Вам все равно нужно самостоятельно реализовать процессы поиска, загрузки и сохранения установочных пакетов Quilt.

WARNING

Установщик Quilt в настоящее время находится на экспериментальной стадии, и связанные с ним API и процесс установки могут претерпеть значительные изменения.

Полезные ресурсы ​

Проверка совместимости ​

Перед началом установки Quilt вам необходимо проверить через Quilt Meta API, поддерживается ли версия Minecraft, которую вы собираетесь изменить.

Сначала вам нужно отправить запрос HTTP GET на https://meta.quiltmc.org/v3/versions/game.

Вы увидите ответ, подобный следующему:

json
[
  {
    "version": "1.19.3",
    "stable": true
  },
  {
    "version": "1.19.3-rc3",
    "stable": false
  },
  {...},
  {...}
]

Здесь вам нужно проверить, есть ли версия игры, которую вы собираетесь установить, в официальном списке поддержки Quilt. Вам нужно сравнить версию игры с полем version в объекте JSON. Если вашей игры нет в списке поддержки, установка не может быть продолжена.

Получение модели загрузчика Quilt ​

Поскольку установщик Quilt в ProjBobcat требует, чтобы вы предоставили информацию о загрузке от Quilt при инициализации установщика. Поэтому здесь мы кратко опишем, как получить эту информацию в соответствии с указанной версией Minecraft.

INFO

В этом примере мы будем использовать Minecraft 1.19.2, чтобы показать вам, как его получить.

Сначала вам нужно отправить запрос HTTP GET на https://meta.quiltmc.org/v3/versions/loader.

Вы увидите ответ, подобный следующему:

json
[
  {
    "separator": ".",
    "build": 25,
    "maven": "org.quiltmc:quilt-loader:0.18.1-beta.25",
    "version": "0.18.1-beta.25"
  },
  {...},
  {...}
]

Quilt Meta API вернет массив JSON, и каждый элемент в массиве — это артефакт загрузчика, который нам нужен.

Преобразование ответа JSON в тип ProjBobcat ​

Если вы используете JSON.NET (Newtonsoft.JSON) в своем проекте. Вы можете использовать код, подобный приведенному ниже, для преобразования ответа сервера, который вы получили, в соответствующий тип ProjBobcat:

c#
// Запрос данных из Quilt Meta API (пример, не реальный код)
...
var responseJson = await res.Content.ReadAsStringAsync();

// Преобразование ответа JSON в тип ProjBobcat
var artifacts = JsonConvert.DeserializeObject<List<QuiltLoaderModel>>(responseJson); 

// Получение версии, которую хочет установить пользователь (пример, не реальный код)
var userSelect = vm.SelectedArtifactIndex;

// Получение одного артефакта загрузчика
var selectedArtifact = artifacts[userSelect]; 

Здесь selectedArtifact — это QuiltLoaderModel, необходимый установщику Fabric.

Инициализация установщика ​

Инициализировать установщик Quilt очень просто. Вам нужно использовать selectedArtifact, полученный на предыдущем шаге, для инициализации установщика:

c#
var quiltInstaller = new QuiltInstaller
{
    InheritsFrom = "[MC_VERSION_OR_GAME_ID]",
    RootPath = "[GAME_ROOT_PATH]",
    CustomId = "[CUSTOM_INSTALL_GAME_ID]",
    LoaderArtifact = selectedArtifact
};

В приведенном выше блоке кода замените эти параметры в соответствии с вашей реальной ситуацией:

ЭлементОписание
[GAME_ROOT_PATH]Корневой каталог игры, обычно путь к папке .minecraft
[CUSTOM_INSTALL_GAME_ID]Необязательно, пользовательское имя игры, которую вы собираетесь установить
[MC_VERSION_OR_GAME_ID]Версия оригинальной игры Minecraft, от которой наследуется Forge, обычно версия игры. Например: 1.19.2

Начало установки ​

После завершения инициализации установщика вам нужно только вызвать метод установки установщика Fabric для завершения установки.

В асинхронном контексте используйте InstallTaskAsync для завершения установки:

c#
await quiltInstaller.InstallTaskAsync();

В синхронном контексте используйте Install для завершения установки:

c#
quiltInstaller.Install();

Отчет о ходе установки ​

В некоторых случаях установка с помощью установщика Quilt может занять несколько минут. Поэтому вам может потребоваться сообщать пользователю о текущем ходе установки в режиме реального времени. Для этого установщик Quilt предоставляет событие StageChangedEventDelegate, чтобы помочь вам реализовать отчет о задачах. Вам просто нужно зарегистрировать следующее событие перед началом установки:

c#
quiltInstaller.StageChangedEventDelegate += (_,  args) => {
    ReportProgress(args.Progress,  args.CurrentStage);
};

Где args.Progress указывает текущий процент выполнения установщика. args.CurrentStage — это текстовое описание текущего этапа установщика.

使用 MIT 协议发行, 喜欢我们的工作的话就给我们点一个 star ⭐ 吧!