CmlLib
한국어 (v4)
한국어 (v4)
  • 🧊CmlLib Projects
  • [AD] 커스텀 런처 주문제작
  • 🚀CmlLib.Core
    • 홈
    • 시작하기
      • 런처
      • 게임 경로 설정
      • 버전
      • 실행 옵션 설정
      • 이벤트 처리
    • 로그인과 세션
      • 마이크로소프트 엑스박스 계정
      • 오프라인 계정
    • 고급 기능
      • MinecraftLauncherParameters
      • Rules
      • FileExtractor
      • GameInstaller
      • Java
    • 모드 로더 인스톨러
      • Forge Installer
      • Fabric Installer
      • Quilt Installer
      • LiteLoader Installer
    • 유틸리티
      • Minecraft Changelogs
    • 자료
      • 자주 묻는 질문
      • 알려진 문제
      • 예시 런처
      • 라이센스
  • 🔓Auth.Microsoft
    • 홈
    • CmlLib.Core.Auth.Microsoft
      • JELoginHandler
      • JELoginHandlerBuilder
      • JEAuthenticator
      • Authentication with MSAL
    • XboxAuthNet.Game
      • OAuth
      • XboxAuth
      • XboxAuthException
      • AccountManager
      • Accounts
    • XboxAuthNet.Game.Msal
      • ClientID
      • MsalClientHelper
      • OAuth
    • CmlLib.Core.Bedrock.Auth
    • 자료
  • 🌐MojangAPI
    • 홈
    • Mojang API
    • SecurityQuestion
  • ⚒️Installer.Forge
    • 홈
    • 지원되는 버전
    • 시작하기
    • MForge
    • ForgeVersionLoader
Powered by GitBook
On this page
  • 기본 사용법
  • 코드설명
  • 모든 메서드
Edit on GitHub
  1. CmlLib.Core
  2. 시작하기

런처

CmlLib.Core 의 메인 클래스

기본 사용법

.NET Framework 에서는 빠른 다운로드 속도를 위해 다음 코드를 추가하세요. .NET Core 에서는 필요하지 않습니다.

System.Net.ServicePointManager.DefaultConnectionLimit = 256;
// 런처 초기화
var path = new MinecraftPath();
var launcher = new MinecraftLauncher(path);

// 이벤트 헨들러 추가
launcher.FileProgressChanged += (sender, args) =>
{
    Console.WriteLine($"Name: {args.Name}");
    Console.WriteLine($"Type: {args.EventType}");
    Console.WriteLine($"Total: {args.TotalTasks}");
    Console.WriteLine($"Progressed: {args.ProgressedTasks}");
};
launcher.ByteProgressChanged += (sender, args) =>
{
    Console.WriteLine($"{args.ProgressedBytes} bytes / {args.TotalBytes} bytes");
};

// 모든 버전 가져오기
var versions = await launcher.GetAllVersionsAsync();
foreach (var v in versions)
{
    Console.WriteLine(v.GetVersionType());
    Console.WriteLine(v.Name);
}

// 게임 설치 및 실행
await launcher.InstallAsync("1.20.6");
var process = await launcher.BuildProcessAsync("1.20.6", new MLaunchOption
{
    Session = MSession.CreateOfflineSession("Gamer123"),
    MaximumRamMb = 4096
});
process.Start();

코드설명

var path = new MinecraftPath();
var launcher = new MinecraftLauncher(path);

마인크래프트 디렉터리 구조를 만들고 런처를 초기화합니다. 여기서 마인크래프트 경로와 디렉터리 구조를 바꿀 수 있습니다. 게임 경로 설정, MinecraftLauncherParameters 참고

launcher.FileProgressChanged += (sender, args) =>
{
    Console.WriteLine($"Name: {args.Name}");
    Console.WriteLine($"Type: {args.EventType}");
    Console.WriteLine($"Total: {args.TotalTasks}");
    Console.WriteLine($"Progressed: {args.ProgressedTasks}");
};
launcher.ByteProgressChanged += (sender, args) =>
{
    Console.WriteLine($"{args.ProgressedBytes} bytes / {args.TotalBytes} bytes");
};

이벤트 헨들러를 추가합니다. 설치 진행률을 콘솔에 출력합니다. 이벤트 처리 참고

var versions = await launcher.GetAllVersionsAsync();
foreach (var v in versions)
{
    Console.WriteLine(v.Name);
}

모든 버전을 불러오고 버전 이름을 출력합니다. 버전 참고

await launcher.InstallAsync("1.20.4");
var process = await launcher.BuildProcessAsync("1.20.4", new MLaunchOption
{
    Session = MSession.CreateOfflineSession("Gamer123"),
    MaximumRamMb = 4096
});
process.Start();

실행 옵션을 설정하고, 게임 파일을 검사하고, 게임 파일을 다운로드하고, 게임을 실행해 게임의 Process 인스턴스를 반환합니다. 실행 옵션 설정 에서 더 많은 실행 옵션을 확인하세요.

모든 메서드

버전 실행에 필요한 모든 파일 목록 가져오기

// 버전 이름으로
IEnumerable<GameFile> files = await launcher.ExtractFiles("1.20.4", cancellationToken);
// IVersion 으로
IVersion version = await launcher.GetVersionAsync("1.20.4", cancellationToken);
IEnumerable<GameFile> files = await launcher.ExtractFiles(version, cancellationToken);

파일 검사하고 다운로드가 필요한 파일이 있으면 다운로드

// 설치 진행률을 launcher.FileProgressChanged, launcher.ByteProgressChanged 으로 보고
await launcher.InstallAsync("1.20.4", cancellationToken); // 버전 이름으로 설치
await launcher.InstallAsync(version, cancellationToken); // IVersion 으로 설치

// 설치 진행률을 fileProgress, byteProgress 으로 보고
await launcher.InstallAsync("1.20.4", fileProgress, byteProgress, cancellationToken); // 버전 이름으로 설치
await launcher.InstallAsync(version, fileProgress, byteProgress, cancellationToken); // IVersion 으로 설치

게임 프로세스 만들기

// 버전 이름으로
Process process = await launcher.BuildProcessAsync("1.20.4", new MLaunchOption(), cancellationTokene);
// IVersion 으로 
IVersion version = await launcher.GetVersionAsync("1.20.4", cancellationToken);
Process process = launcher.BuildProcess(version, new MLaunchOption());

버전 실행에 필요한 자바 경로 가져오기

IVersion version = await launcher.GetVersionAsync("1.20.4", cancellationToken);
string? javaPath = await launcher.GetJavaPath(version);

설치된 첫번째 자바 경로 가져오기

string? javaPath = await launcher.GetDefaultJavaPath();
Previous시작하기Next게임 경로 설정

Last updated 3 months ago

🚀