Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Optifine.Installer

Minecraft OptiFine Installer.

Nuget Badge GitHub license

Features

  • Fetch available OptiFine versions from the official source.
  • Display version details including Forge compatibility, preview status, and upload date.
  • Install Nearly All OptiFine Versions

Install

Install the Optifine.Installer Nuget package

Sample Code With CmlLib.Core

using CmlLib.Core;
using CmlLib.Core.Auth;
using CmlLib.Core.ProcessBuilder;
using Optifine.Installer;
using System;
using System.Linq;
using System.Net.Http;

var loader = new OptifineInstaller(new HttpClient());
var versions = await loader.GetOptifineVersionsAsync();

Console.WriteLine($"{"Version",-40} {"Forge Ver",-10} {"Preview",-8} {"Uploaded",-12}");
Console.WriteLine(new string('-', 61));

foreach (var v in versions)
{
    Console.WriteLine($"{v.Version,-40} {v.ForgeVersion,-10} {(v.IsPreviewVersion ? "Yes" : "No"),-8} {v.UploadedDate:yyyy-MM-dd}");
}
Console.WriteLine(new string('-', 61));

Console.Write("Version: ");
var version = Console.ReadLine();

Console.WriteLine("selected version: " + version);

var selectedVersion = versions.FirstOrDefault(x => x.Version == version);

if (selectedVersion is null)
{
    Console.WriteLine("version not found");
    return;
}
var minecraftPath = new MinecraftPath();
var launcher = new MinecraftLauncher(minecraftPath);

await launcher.InstallAsync(selectedVersion.MinecraftVersion);
Console.WriteLine($"done installing vanilla version: {selectedVersion.MinecraftVersion}");

var versionName = await loader.InstallOptifineAsync(minecraftPath.BasePath, selectedVersion);
Console.WriteLine($"done installing optifine: {versionName}");

var process = await launcher.InstallAndBuildProcessAsync(versionName, new MLaunchOption
{
    Session = MSession.CreateOfflineSession("test123"),
    MaximumRamMb = 2048
});
process.Start();
await process.WaitForExitAsync();

Supported OptiFine Versions

Confirmed Working Versions

  • OptiFine_1.21.4_HD_U_J4_pre2
  • OptiFine_1.21.3_HD_U_J2
  • OptiFine_1.21.1_HD_U_J1
  • OptiFine_1.21_HD_U_J1_pre9
  • OptiFine_1.20.6_HD_U_J1_pre18
  • OptiFine_1.20.4_HD_U_I8_pre4
  • OptiFine_1.20.2_HD_U_I7_pre1
  • OptiFine_1.20.1_HD_U_I6
  • OptiFine_1.20_HD_U_I5_pre5
  • OptiFine_1.19.4_HD_U_I4
  • OptiFine_1.19.3_HD_U_I3
  • OptiFine_1.19.2_HD_U_I2
  • OptiFine_1.19.1_HD_U_H9
  • OptiFine_1.19_HD_U_H9
  • OptiFine_1.18.2_HD_U_H9
  • OptiFine_1.18.1_HD_U_H6
  • OptiFine_1.18_HD_U_H3
  • OptiFine_1.17.1_HD_U_H2_pre1
  • OptiFine_1.17_HD_U_G9_pre26
  • OptiFine_1.16.5_HD_U_G8
  • OptiFine_1.16.4_HD_U_G7
  • OptiFine_1.16.3_HD_U_G5
  • OptiFine_1.14.4_HD_U_G5
  • OptiFine_1.14.3_HD_U_F2
  • OptiFine_1.12.2_HD_U_G6_pre1
  • OptiFine_1.8.9_HD_U_M6_pre2
  • OptiFine_1.8.9_HD_U_M5
  • OptiFine_1.8.8_HD_U_I7
  • OptiFine_1.7.2_HD_U_E3

Known Non-Working Versions

  • (None identified yet.)

About

A C# library to install Minecraft OptiFine automatically.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages