朝鲜世界杯_2019篮球世界杯 - dyldrk.com

客户端核心文件

本文章所述内容仅适用于Java版。

客户端核心文件是游戏客户端的核心代码,控制了游戏的所有行为。

目录

1 获取

2 文件结构

3 启动参数

3.1 命令行传入参数

3.1.1 游戏基本参数

3.1.2 授权与登录选项

3.1.3 游戏状态参数

3.1.4 显示参数

3.1.5 快速进入游戏设置

3.1.6 代理设置

3.1.7 无作用选项

3.2 系统属性

3.2.1 调试工具

4 历史

5 导航

获取[编辑 | 编辑源代码]

客户端核心文件通常由启动器在安装某个版本时自动下载,并被放在<客户端根目录>/versions/<游戏版本>/<游戏版本>.jar。本Wiki版本介绍界面右侧的“下载”中的“客户端”链接指向该版本在启动器中使用的下载地址,你可以从此处下载名为client.jar的对应版本客户端核心文件。

文件结构[编辑 | 编辑源代码]

客户端核心文件是一个JAR文件,内部包含了程序所需的类和部分资产文件。按照不同的目录划分,各个文件都有它们的功能:

assets/目录是原版资源包,不包含散列资源文件。

assets/.mcassetsroot是游戏为识别原版资源包作为标记的文件,内部不包含数据。

data/目录是原版数据包。

data/.mcassetsroot是游戏为识别原版数据包作为标记的文件,内部不包含数据。

META-INF/目录是JAR文件规范中的元数据,控制JAR文件被执行时的行为。

META-INF/MANIFEST.MF是清单文件,包含了主类数据和JAR内各个文件的SHA-384散列值。

META-INF/MOJANGCS.RSA是用于验证JAR的文件,其中包含了Mojang所使用的签名公钥(RSA,2048位)。

META-INF/MOJANGCS.SF是JAR的签名,内部包含了JAR内所有文件使用Mojang的签名私钥以SHA384withRSA算法计算得到的散列值。

flightrecorder-config.jfc是Java Flight Recorder的配置文件,用于/jfr的分析。

versions.json是版本信息文件,用于记录此核心文件的版本信息。

绝大部分类文件(以.class结尾)都被混淆,但可以通过混淆映射表反推原先是什么类文件。部分类未被混淆,因为这些类有关于反射等特殊用途或是程序入口点而无法混淆。

客户端核心文件中不包含库文件(如LWJGL库),因此其不能独立启动,必须使用使用如Java的-cp参数包含库文件后才能启动。库文件的列表可通过<客户端根目录>/versions/<游戏版本>/<游戏版本>.json中的“libraries”子项获取,但由于数量繁多,更推荐直接获取运行中的Minecraft的命令行参数,并通过其中的-cp参数获取。

启动参数[编辑 | 编辑源代码]

作为一个JAR文件,Java可以使用此文件运行内部的代码。客户端核心文件有下列可运行的主类:

net.minecraft.client.data.Main:客户端数据生成器程序入口点。

net.minecraft.client.main.Main:客户端程序入口点,也是清单文件中定义的主类。游戏客户端使用此类启动。

net.minecraft.data.Main:数据生成器程序入口点。

net.minecraft.gametest.Main:测试服务端程序入口点。

net.minecraft.server.Main:专用服务端程序入口点。

虽然客户端核心文件主要用于启动客户端,但实际上它有作为专用服务端、数据生成器等能力,客户端核心文件包含服务端核心文件的所有代码。

下列仅介绍游戏客户端(net.minecraft.client.main.Main)的启动参数,有关于其他启动方式的参数,请见对应条目。

命令行传入参数[编辑 | 编辑源代码]

游戏基本参数[编辑 | 编辑源代码]

--assetsDir <散列资源文件根目录>:设置散列资源文件的路径。如果此选项不存在游戏以assets/作为散列资源文件根目录。

--assetsIndex <资源索引名称>:设置使用指定资源索引的散列资源文件。

--gameDir <客户端根目录>:设置游戏的客户端根目录,影响游戏读取所有游戏文件的路径。如果此选项不存在游戏将以运行目录作为客户端根目录。

--resourcePackDir <资源包根目录>:设置游戏读取可用资源包的路径。如果此选项不存在游戏以resourcepacks/作为资源包根目录。

--version <版本名称>:设置游戏在调试屏幕、崩溃日志和内置服务端中显示的版本。

--versionType <版本类型>:设置游戏在调试屏幕中显示的版本类型,控制主菜单中显示的版本。如果不存在此选项则为release。如果此选项为release,游戏显示版本时不会附加版本类型显示。

授权与登录选项[编辑 | 编辑源代码]

--accessToken <访问令牌>:用于登录与验证的访问令牌,此项应由服务器使用Mojang API的登录流程获取后以此选项传入游戏。如果此选项不存在或者令牌无效,游戏将以离线模式启动。

--username <玩家名称>:设置游戏玩家名称。如果启动时没有设定此选项,则游戏会以Player<启动时3位毫秒数>作为玩家名称启动。

--userType <玩家类型>:设置玩家的类型。可以为legacy(早期登录类型)、mojang(Mojang登录)和msa(微软登录),不存在此选项时默认为legacy。如果需要在线模式游戏,必须设置为msa,否则游戏将以离线模式启动。

--uuid <玩家UUID>:设置游戏玩家的UUID,不带连字符。如果启动时没有设定此选项,则游戏会按照离线玩家UUID计算算法自动生成UUID。

--clientId <客户端ID>:用于发送遥测数据的客户端ID。如果启动时没有设定此选项,则游戏在发送遥测数据时不会附加客户端ID数据。

--xuid <玩家ID>:用于发送遥测数据的玩家ID。如果启动时没有设定此选项,则游戏在发送遥测数据时不会附加玩家ID数据。

游戏状态参数[编辑 | 编辑源代码]

--demo:游戏以演示模式启动。

--disableMultiplayer:禁用多人游戏。在此情况下主菜单中的多人游戏按钮将被禁用。

--disableChat:禁用聊天,玩家将无法打开聊天屏幕发送消息。

--jfrProfile:在游戏启动的同时启动Java Flight Recorder。

--renderDebugLabels:为游戏渲染时使用的缓冲、纹理、着色器等对象添加调试标签。当前OpenGL上下文中支持GL_KHR_debug或GL_ARB_debug_output扩展时才可生效。

--tracy:在游戏启动的同时初始化Tracy。

--tracyNoImages:不将游戏渲染结果截图发送到Tracy Profiler。

显示参数[编辑 | 编辑源代码]

--fullscreen:游戏将以全屏模式启动。

--fullscreenHeight <纵向分辨率>:设置游戏在全屏模式下纵向分辨率。

--fullscreenWidth <横向分辨率>:设置游戏在全屏模式下横向分辨率。

--height <高度>:游戏窗口高度。如果此选项不存在则为480。

--width <宽度>:游戏窗口宽度。如果此选项不存在则为854。

快速进入游戏设置[编辑 | 编辑源代码]

--quickPlayPath <日志路径>:设置快速进入游戏日志的路径。如果此项不存在游戏就不会记录快速进入游戏日志。

--quickPlaySingleplayer <存档名称>:游戏在启动时立刻加载指定存档进入对应世界。

--quickPlayMultiplayer <名称或地址>:游戏在启动时立刻尝试加入指定的服务器。此选项可以指定服务器列表内已经存在的服务器名称,也可以直接写服务器地址。

--quickPlayRealms <号码>:游戏在启动时立刻尝试加入指定的Realms服务器。

如果上述3个快速进入游戏参数不止存在一个,那么游戏优先读取--quickPlaySingleplayer,然后是--quickPlayMultiplayer,最后读取--quickPlayRealms。

代理设置[编辑 | 编辑源代码]

--proxyHost <主机>:设置SOCKS代理的主机。如果此项不存在游戏不会设置代理。

--proxyPort <端口>:设置SOCKS代理的端口。如果此项不存在游戏默认为8080。

--proxyUser <用户名>:设置SOCKS代理的用户名。

--proxyPass <密码>:设置SOCKS代理的密码。此项与用户名同时存在时游戏才会使用此数据。

无作用选项[编辑 | 编辑源代码]

如果启动参数内有未识别的选项,游戏会在日志中产生下列警告:

Completely ignored arguments: <未识别的选项>

下列参数虽然对游戏本身不起到任何作用,但游戏会读取这些选项,且不产生警告:

--checkGlErrors

--profileProperties <属性映射JSON>

--userProperties <属性映射JSON>

系统属性[编辑 | 编辑源代码]

系统属性是Java提供的一种机制,游戏可以读取这些属性。在启动时,这些属性使用JVM选项传入,格式为-D<系统属性名>=<值>。

下列为与游戏本身有强关联的系统属性:

log4j.configurationFile:游戏日志使用的配置文件。此项由启动器从资源服务器下载后,传入游戏启动参数内。

max.bg.threads:最大后台线程数,用于控制各种并发任务的并行数量,默认为255。此值必须在1-255之间,否则游戏将在日志中报错,并将此值视为255。

minecraft.launcher.brand:启动器铭牌。

realms.environment:Realms运行环境。可以为production(生产环境,默认)、stage/staging和local(本地测试环境)。

SuffixArray.printComparisons:仅供游戏调试,用于游戏搜索名称机制。

SuffixArray.printArray:仅供游戏调试,用于游戏搜索名称机制。

调试工具[编辑 | 编辑源代码]

本段落包含会在下一次更新中出现的内容。

这些特性在Java版1.21.9的开发版本中加入。

这些系统属性系游戏本体的调试工具。

MC_DEBUG_ENABLED:是否启用调试工具。

MC_DEBUG_PRINT_PROPERTIES:若指定,则在游戏日志输出所有调试工具的系统属性。

可用的系统属性参见调试工具。

历史[编辑 | 编辑源代码]

Java版1.1620w21a加入了--disableMultiplayer和--disableChat启动参数。pre1加入了--dataPackDir启动参数。1.1721w14a移除了--dataPackDir启动参数。1.1821w37a加入了--jfrProfile启动参数。21w38a加入了max.bg.threads系统属性调整最大后台线程数。加入了--xuid和--clientId启动参数。1.2023w14a移除了--server和--port启动参数,改用快速进入游戏功能替代。1.21.224w37a加入了--tracy和--tracyNoImages启动参数。1.21.424w45a加入了客户端数据生成器主类。1.21.525w03a加入了测试服务端主类。1.21.625w19a现在--quickPlaySingleplayer启动参数可以不指定存档名称,此时会启动上次游玩的世界。Java版(即将到来)1.21.925w37a加入了调试工具相关的系统属性。

导航[编辑 | 编辑源代码]

编Java版游戏文件

通用文件

版本信息文件格式

信任符号链接列表文件格式

玩家档案缓存存储格式

性能分析报告文件

崩溃报告文件

客户端文件

散列资源文件

客户端核心文件

客户端数据生成器

客户端选项文件格式

下载缓存目录

命令历史文件格式

快捷栏存储格式

服务器列表存储格式

Realms持久化数据存储格式

服务端文件

服务端核心文件

服务端数据生成器

服务端配置文件格式

白名单存储格式

封禁列表存储格式

管理员列表存储格式

存档文件

区域文件格式

结构存储格式

存档数据

存档基础数据存储格式

存档会话锁文件格式

玩家数据格式

统计存储格式

进度存储格式

记分板存储格式

地图存储格式

命令存储存储格式

维度数据

区块存储格式

方块实体数据格式

结构片段存储格式

物品格式

数据组件

实体数据格式

生物记忆

兴趣点存储格式

袭击存储格式

随机序列存储格式

区块标签存储格式

世界边界存储格式[新增:JE 1.21.9]

启动器文件

客户端清单文件格式

启动器档案文件格式

已过时文件

Classic世界格式

Indev世界格式

Alpha世界格式

server_level.dat

结构生成数据文件格式

villages.dat格式

物品格式(旧版)