Skip to content

Latest commit

 

History

History
101 lines (71 loc) · 4.05 KB

README_ZH.md

File metadata and controls

101 lines (71 loc) · 4.05 KB

brand-logo

像飞一样启动Minecraft。

NuGet latest version GitHub license GitHub stars Telegram

English / 简体中文

一览

  • 基于 .NET 6 开发,支持跨平台。
  • 从最古老到最新的 Minecraft,都可以启动。当然也可以启动它们的 Forge, OptiFine, Liteload 以及 Fabric。
  • 灵活轻快拓展性好。
  • 可以自定义 OAuth 的客户端id(client id)和重定向链接(redirect url)。
  • 支持BmclApi和Mcbbs源,对中国用户下载友好。
  • 注释(相对来说)比较全面。
  • 你还可以自己去发现更多好康的。
康康这个
  • MoudleLauncher 现在不会、以后也不会支持各类 Mod 加载器的自动安装。
  • 虽然实现一个内置下载器很简单,但是这会违背灵活性和可拓展性,所以没有这个库没有任何内置的下载引擎。

开始

这里只是简单的示例,很多基础知识不会详细地说明,如果你一头雾水,请去看 文档 来获得更详细的说明。

安装

  • 用 Nuget 安装:
    • IDE 的包管理页面
    • Nuget Package Manger: Install-Package ModuleLauncher.Re
    • .NET CLI: dotnet add package ModuleLauncher.Re
  • 或者把这个仓库下载下来,然后自己编译

启动

这里假设你已经有了一个 .minecraft 目录,以及不要觉得下面的代码很多,其实真正有效的代码不到10行。

// 你想要启动的版本
var version = "<version>";

// 用 .minecraft 的路径来初始化一个 MinecraftResolver 实例
var minecraftResolver = new MinecraftResolver(rootPath);

// 用 Minecraft id (version) 来获取一个 MinecraftEntry 实例
// MinecraftEntry 差不多是这个库里最重要的东西
var minecraft = minecraftResolver.GetMinecraft(version);

// 用方法链的方式启动 Minecraft
// 除了要启动的版本名称之外,启动 Minecraft 只需要两个值
// player: 离线玩家的用户名
// (注意这里是一个 string 对象被隐式转换成了 AuthenticateResult 对象)
// java: java 可执行文件的路径
var process = await minecraft.WithAuthentication("<player>")
    .WithJava(@"<java>")
    .LaunchAsync();

启动方法 LaunchAsync 返回的是一个 Process 实例,可以对它进行一些操作。

// 读 Minecraft 的启动输出信息
// 这里的 ReadOutputLine 和 IsNullOrEmpty 是 Manganese 这个库提供的拓展方法
while (!process.ReadOutputLine().IsNullOrEmpty())
{
    Console.WriteLine(process.ReadOutputLine());
}

贡献

贡献代码

  • 你可以 fork 这个仓库然后提交 Pull Request 到 new 分支。注意一定得是 new 分支。
  • 开一个 issue

修订文档

觉得文档不太行?

致谢