如果你需要中文的介绍信息,请打开README_CN.md
An OpenSource Minecraft Launcher for .Net Developers
Shared Code Between KMCCC.Basic & KMCCC.Pro
- Basic Launch Model (LauncherCore, LaunchOptions, ...)
- Authentication Model (Yggdrasil, Offline, ...)
- Java & System Information Finder
- Zip Module using .Net Internal API ( MS.Internal.IO.Zip.* )
- Basic VersionLocator (JVersion)
- A set of useful extensions
- A launch reporter that can be disabled
- Custom authentication server
Basic Version of KMCCC
- Everything in kMCCC.Shared
- No more
Professional Version of KMCCC
- Everything in KMCCC.Shared
- Mojang API
- [WIP] Game File Download & Fix & Check (Including Version, Library, Native&Assets)
- [WIP] More useful extensions for LaunchHandle
- [WIP] More useful libraries that a launch might need.
We plan to delay some parameter settings, (such as versionLocator) and make more features available in KMCCC.Pro
LauncherCorecore=LauncherCore.Create(newLauncherCoreCreationOption(javaPath:Config.Instance.JavaPath,// by default it will be the first version findedgameRootPath:null,// by defualt it will be ./.minecraft/versionLocator:theVersion Locator // by default it will be new JVersionLocator()));varversions=core.GetVersions();varversion=core.GetVersion("1.8");unlaunchable Version will be ignored
varresult=core.Launch(newLaunchOptions{Version=App.LauncherCore.GetVersion(server.VersionId)Authenticator=newOfflineAuthenticator("Steve"),// offline//Authenticator = new YggdrasilLogin("*@*.*", "***", true), // onlineMaxMemory=Config.Instance.MaxMemory,// optionalMinMemory=Config.Instance.MaxMemory,// optionalMode=LaunchMode.MCLauncher,// optionalServer=newServerInfo{Address="mc.hypixel.net"},//optionalSize=newWindowSize{Height=768,Width=1280}//optional},(Action<MinecraftLaunchArguments>)(x =>{}));// optional ( modify arguments before launchingReporter.SetClientName("Your launcher's name");// set nameReporter.SetReportLevel(ReportLevel.Full);// full report//Reporter.SetReportLevel(ReportLevel.Basic); // basic report//Reporter.SetReportLevel(ReportLevel.Min); // simplified report//Reporter.SetReportLevel(ReportLevel.None); // turn off