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. 시작하기

버전

예시: 모든 버전 출력

GetAllVersionsAsync 메서드는 모든 바닐라 버전과 설치된 모든 버전을 반환합니다.

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

예시: 특정 버전 가져오기

GetVersionAsync 메서드는 버전을 로드, 파싱합니다.

var launcher = new MinecraftLauncher();
var version = await launcher.GetVersionAsync("1.20.4");
// version.Id
// version.Jar
// version.Libraries
// etc...

예시: 버전 수정하기

IVersion 은 immutable 타입으로 설계되었지만 .ToMutableVersion 메서드를 호출하면 mutable 타입으로 변환할 수 있습니다.

var launcher = new MinecraftLauncher();
var 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 = "", // (optional) 파일의SHA1 체크섬
        Url = "" // (optional) 파일이 존재하지 않거나 체크섬이 일치하지 않을 때 다운로드할 파일의 URL
    }
});

await launcher.InstallAsync(version);
var process = launcher.BuildProcess(version, new MLaunchOption
{
    Session = MSession.CreateOfflineSession("tester123")
});
process.Start(); 
Previous게임 경로 설정Next실행 옵션 설정

Last updated 3 months ago

1.16.5 버전에서 offline session 으로 게임을 실행한 경우 멀티플레이 버튼이 비활성화됩니다. 이 문제는 수정된 authlib 라이브러리를 사용하여 해결할 수 있습니다. ()

🚀
#85