Исходный код лаунчера майнкрафт
Csharp Minecraft Launcher Library
USE CmlLib.Core
This library will not be developed anymore.
Only for Windows (use pml if you want crossplatform)
This library doesn't support crossplatform. Only Windows
if you want Cross-Platform Minecraft Launcher Library,
use this python library.
pml github
- Online / Offline Login
- Download game files in mojang file server
- Launch All Versions (tested up to 1.14)
- Launch Forge, Optifine or custom versions
- Download minecraft java runtime in mojang file server
- Launch with options (direct server connecting, screen resolution)
- Support cross-platform (use pml if you want crossplatform)
If you want to learn more features of this library such as to download java runtime or launch with more detailed options, go to wiki
Sample Launcher (CmlLibSample)
Download CmlLibSample.zip file, unzip file and execute CmlLibSample.exe
- download source codes
- Build CmlLib project. if an error occurs, restore nuget package of CmlLib project. (Package name : Newtonsoft.Json, DotNetZip)
Required dll : Newtonsoft.Json.dll, DotNetZip.dll, CmlLib.dll
Build CmlLibSample (Sample launcher)
- Add reference above, 'Newtonsoft.Json.dll, DotNetZip.dll, CmlLib.dll'.
- Build CmlLibSample project.
Enter the source code in the order shown below.
1. Prepare
Install Nuget Package 'CustomMinecraftLauncher'
or download dll files in Release tab (CmlLib.dll, Newtonsoft.Json.dll, DotNetZip.dll) and add reference
write this on the top of your source code:
2. Minecraft Initialize
You should write this code before work.
It set Game Directory that is used to download game files, load profiles, save login session, Launch, etc.
You can't use relative path.
3. Login
The 'session' is login result. note : you can't use old login using username instead of mojang email.
or you can use offline session :
4. Get Profile Infos
Profile contain various data which launcher need. All Game Versions has its own profile, even old alpha version and forge. You can find it at (GameDirectory)₩versions₩(any-version)₩(version-name).json. MProfileInfo is metadata of profile, containing Name, Profile Path(Url), Type(Release, Snapshot, Old), ReleaseTime. and this code get profile info :
It will return all metadata from mojang web server and your game directory.
but you can choose source :
5. Choose ProfileInfo and Parse
In order to use profile data, you should parse profile.
This simple code will search version from metadatas, and return parsed profile data.
6. Check & Download Game Files
and the handler methods of ChangeFile and ChangeProgress event is :
DownloadAll() method check the existence of game file, and download game file from mojang server if file is not exist or not valid(compare hash).
Особенности и возможности лаунчера:
Использование сокет-сервера.
Шифрование всей информации, взаимодействующей с сокет-сервером
Защита сессии.
Полная проверка клиента на определенные форматы файлов и их хеш-сумм.
Проверка клиента каждые 2 минуты.
Мультиклиентность.
Мультисерверность.
Загрузка новостей.
Выделение памяти.
Автоматический патчинг клиента (во избежании использования стандартной папки ".minecraft").
Использование всего одного архива для загрузки клиентов.
Шрифты, читаемые из файла (по умолчанию поддержка 2-х шрифтов).
При запуске лаунчера в формате ".exe" функция самообновление будет скачивать и запускать программу именно в этом формате, а не в формате ".jar" (аналогично с форматом ".jar").
Информация:
Лаунчер от XeroXP
Лаунчер имеет не самую надежную защиту (для этого есть открытый исходный код, чтобы вы сами могли дополнить защиту)
Дизайн от Dragoy:
Читайте также: