【免费下载链接】LauncherThis fork of Prism Launcher adds integrated support for Ely.by accounts.项目地址https://gitcode.com/GitHub_Trending/ely/Launcher点击查看免费下载Ely Prism Launcher 是一款支持 Ely.by 账号的 Minecraft 游戏启动器Prism Launcher 的分支。每次点击“开始游戏”它都会在后台悄悄拼装一条完整的 java 启动命令JVM 参数、类路径classpath、游戏参数、账号登录凭据全部合二为一。本文带你搞懂背后两大主角——LaunchProfile版本启动档案和AuthSession账号会话是如何一步步变成游戏进程命令行的即使你不懂代码也能看懂整个流程。一、先认识两位主角 可以把它想象成“点餐 结账”角色文件位置职责AuthSession账号会话launcher/minecraft/auth/AuthSession.h记录“你是谁”玩家名、UUID、访问令牌access_token、组合会话session、账号类型LaunchProfile启动档案launcher/minecraft/LaunchProfile.h记录“怎么启动”主类名、参数模板、依赖库列表、Java 兼容版本、Jar Mods 等AuthSession是一个简洁的结构体核心字段只有几个session组合会话 ID在线账号形如token:访问令牌:用户IDplayer_name/uuid游戏内显示的名字和身份user_type账号类型如msa、offlinewantsElyPatchEly 分支特有的标志位决定是否在启动前应用 Ely 补丁LaunchProfile则像一个“收集盒”版本文件、模组、加载器各自往里放东西主类、minecraftArguments参数模板里面含${auth_session}这类占位符、库文件、Java Agent、traits 特性标记等见 launcher/minecraft/LaunchProfile.h。二、AuthSession把账号变成登录凭据1. 在线账号含 Ely 账号点击启动后账号会先走一遍认证流程AuthFlow见 launcher/minecraft/auth/AuthFlow.cpp。Ely 账号的认证步骤是ElyStepEly.by OAuth 登录 → ElyYggdrasilTokenStep换取游戏令牌 → MinecraftProfileStepEly获取游戏档案 → GetSkinStep拉取皮肤认证成功后凭据统一写入会话MinecraftAccount::fillSession 把访问令牌、玩家名、UUID、账号类型填进去并拼出组合会话session token: accessToken : profileId这里还有一个 Ely 分支独有的细节根据用户在设置里选的“Ely 补丁偏好”wantsElyPatch会被置为 true/false始终打、仅 Ely/离线账号、仅 Ely 账号、从不打。这个标志位稍后会决定要不要多跑一个补丁步骤。2. 离线模式没有网络也不想登录时离线账号直接调用 AuthSession::MakeOfflinesession -、access_token 0玩家名由你自己起UUID 用玩家名做 MD5 哈希生成uuidFromUsername 无论哪种账号最终都浓缩成同一个AuthSession结构体——这是后面拼装命令行的统一“入口”。三、LaunchProfile版本文件的“总装档案”游戏本体、Forge/Fabric 等加载器、模组各自带一份版本描述文件。启动器会把它们逐个“应用”apply进LaunchProfile比如applyMainClass记下要加载的主类applyMinecraftArguments记下参数模板例如--username ${auth_player_name} --session ${auth_session} --gameDir ${game_directory}示例见 launcher/minecraft/LaunchProfile.happlyLibrary/applyAgent收集依赖 jar 和 Java Agent并按版本号去重保留更高版本applyLibrary 实现getLibraryFiles按当前操作系统和 Java 位数把“该放进 classpath 的 jar 列表”算出来launcher/minecraft/LaunchProfile.cpp一句话LaunchProfile 负责“游戏要哪些文件、跑哪个主类、参数模板长什么样”。四、命令行拼装五连击 ⚙️真正的拼装发生在 MinecraftInstance::createLaunchTask 里它把“建文件夹 → 检查 Java → 装库 → 解包 → 拉起进程”排成一条流水线。其中与命令行直接相关的有 5 步第 1 步生成 JVM 参数javaArguments() 负责 Java 层面的参数内存按你在设置里填的值生成-Xms512m -Xmx2048m这类参数GC 预设根据 Java 版本自动追加优化参数额外参数-javaagent:、系统 OpenAL/GLFW 等extraArguments()第 2 步把占位符换成真值processMinecraftArgs() 把LaunchProfile里的参数模板按空格拆开然后做变量替换。映射表由两部分组成来源可替换的占位符makeProfileVarMapping()version_name、game_directory、game_assets、assets_index_name、library_directory等AuthSessionauth_session、auth_player_name、auth_uuid、user_properties、user_type例如模板里的${auth_player_name}会被替换成你账号的玩家名${auth_session}被替换成token:xxx:uuid会话串——这就是账号凭据真正“注入”命令行的地方。如果指定了加入服务器还会追加--server 地址 --port 端口。第 3 步写入启动脚本createLaunchScript() 把上述结果整理成一段文本脚本包含mainClass主类、param上一步生成的全部游戏参数、窗口标题/尺寸、userName/sessionId兼容老版本的登录信息、traits 特性等。这段脚本不会直接执行而是留给下一步“投喂”给游戏。第 4 步真正拉起 java 进程LauncherPartLaunch::executeTask() 是临门一脚取第 1 步的 JVM 参数追加-Djava.library.path存放解包后的本地库追加-cp加上完整 classpath启动器自带的NewLaunch.jar放在最前后面是LaunchProfile算出的所有游戏 jar主程序入口固定为org.prismlauncher.EntryPointlibraries/launcher/org/prismlauncher/EntryPoint.java。于是你最终看到的命令行大致长这样参数已做脱敏java -Xms512m -Xmx2048m ... -Djava.library.path.../natives -cp NewLaunch.jar;...所有依赖jar org.prismlauncher.EntryPoint进程启动后启动器再把第 3 步的启动脚本写入它的标准输入等一切就绪后写入launch指令游戏才真正开始见 proceed()。第 5 步Ely 分支特色Ely 补丁任务回看流水线还有一步是 Ely 分支新增的当AuthSession::wantsElyPatch为真时会在拉起进程前插入 ElyPatchTask组装位置见 launcher/minecraft/MinecraftInstance.cpp为 Ely.by 账号相关功能准备补丁。普通离线/Microsoft 账号则可能直接跳过这一步。五、想亲眼看看生成的参数不用翻源码实例右键“查看信息”就能打印出这份命令行档案verboseDescription() 会把主类、库列表、Minecraft 参数、窗口尺寸、环境变量逐项列出方便排查启动问题。另外出于安全考虑日志里的令牌等敏感信息会被自动打码替换createCensorFilterFromSession所以你看到SESSION ID之类字样是正常现象。六、一句话总结 整个流程可以浓缩成一条链账号登录 → AuthSession你是谁版本文件 → LaunchProfile怎么启动两者 你的设置 → java 参数 游戏参数 classpathLauncherPartLaunch → 拉起 java 进程投喂启动脚本游戏起飞理解了LaunchProfile和AuthSession的分工你就能看懂 Ely Prism Launcher 控制台里每一行参数的来历也能更快定位“参数不生效、账号没带上”这类疑难杂症。赞分享【免费下载链接】LauncherThis fork of Prism Launcher adds integrated support for Ely.by accounts.项目地址https://gitcode.com/GitHub_Trending/ely/Launcher点击查看免费下载相关推荐如何用Ely Prism Launcher配置内存与JVM参数提升游戏FPS的完整教程如何用Ely Prism Launcher配置内存与JVM参数提升游戏FPS的完整教程 Ely Prism LauncherPineconeMC是一款基于如何用Ely Prism Launcher启动时直连指定服务器JoinServerOnLaunch配置详解如何用Ely Prism Launcher启动时直连指定服务器JoinServerOnLaunch配置详解 Ely Prism Launcher 是一款支持Ely Prism Launcher启动流水线全解LaunchTask中20个步骤的完整剖析Ely Prism Launcher启动流水线全解LaunchTask中20个步骤的完整剖析 Ely Prism Launcher 是一款集成了 Ely.by创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考 SEO 优化官网定制响应式建站教育培训建站