Перейти до змісту

Версії

Приклад: Виведення всіх версій

Метод GetAllVersionsAsync повертає всі ванільні та локально встановлені версії Minecraft.

var launcher = new MinecraftLauncher();
VersionMetadataCollection versions = await launcher.GetAllVersionsAsync();
foreach (IVersionMetadata version in versions)
{
    Console.WriteLine("Name: " + version.Name);
    Console.WriteLine("Type: " + version.GetVersionType());
    Console.WriteLine("ReleaseTime: " + version.ReleaseTime);
}

Приклад: Отримання конкретної версії

Метод GetVersionAsync завантажує та розбирає (парсить) json-файл версії.

var launcher = new MinecraftLauncher();
IVersion version = await launcher.GetVersionAsync("1.20.4");
// version.Id
// version.Jar
// version.Libraries
// тощо...

Приклад: Модифікація версії

Тип IVersion розроблений як незмінний (immutable). За допомогою .ToMutableVersion() ви можете перетворити будь-яку версію на змінювану (mutable), щоб редагувати її дані.

У версії 1.16.5 кнопка «Мережева гра» (Multiplayer) вимкнена під час запуску гри з офлайн-сесією. Це можна виправити за допомогою модифікованої бібліотеки authlib. (#85)

var launcher = new MinecraftLauncher();
MinecraftVersion version = (await launcher.GetVersionAsync("1.16.5")).ToMutableVersion();

// видалення існуючої authlib
version.LibraryList.RemoveAt(version.LibraryList.FindIndex(lib => lib.Name == "com.mojang:authlib:2.1.28"));

// додавання модифікованої authlib
// завантажте файл authlib-2.1.28-workaround.jar та розмістіть його у <game_directory>/libraries/com/mojang/authlib/2.1.28/authlib-2.1.28-workaround.jar
version.LibraryList.Add(new MLibrary("com.mojang:authlib:2.1.28")
{
    Artifact = new CmlLib.Core.Files.MFileMetadata
    {
        Path = "com/mojang/authlib/2.1.28/authlib-2.1.28-workaround.jar",
        Sha1 = "", // (необов'язково) контрольна сума SHA1 бібліотеки
        Url = "" // (необов'язково) URL-адреса для завантаження бібліотеки, якщо файл відсутній або контрольна сума не збігається
    }
});

await launcher.InstallAsync(version);
var process = launcher.BuildProcess(version, new MLaunchOption
{
    Session = MSession.CreateOfflineSession("tester123")
});
process.Start(); 

Довідник API