中间名(半混淆)
什么是中间名?
中间名是提供「中介名称」的反混淆映射表。一般来说,这种映射表提供的名称依然没有特定含义。
两个有一样中间名的方法或字段一定是同一方法/字段,其方法/字段签名相同。 中间名不会回收使用,也不会随意变化。一旦某一类、方法、字段占据了一个特定中间名,这个中间名就永久属于该类、方法、字段,无论该类、方法、字段是否在新版中消失。 某些中间名映射表还会尝试跨版本匹配中间名,以减轻用户(Mod 开发者)在迁移时的负担。 你可以认为中间名是类、方法、字段的「身份证号」。
中间名可用于对冲反混淆名(频繁)更新所带来的二进制不兼容问题。只需要在编译后将 Mod 重混淆至中间名,即可保证运行时使用的各种名称(符号)不变,从而允许开发环境随意替换反混淆表。
列表
| 项目名 | 发起人 | 维护者 | 开放贡献? | 许可证 | 类名 | 方法名 | 字段名 | 形参名 | 局部变量名 | 是否还在维护? |
|---|---|---|---|---|---|---|---|---|---|---|
| MCPConfig | MCP Team | Forge Team | Yes (1) | zlib (2) | Yes (3) | Yes | Yes | Yes | No | Yes |
| Intermediary | FabricMC | FabricMC | Yes (4) | CC0-1.0 | Yes | Yes | Yes | Yes | No | Yes |
| Hashed Official | QuiltMC | QuiltMC | Unknown (5) | ? (5) | Yes | Yes | Yes | Yes | No | Yes |
备注:
- MCPConfig is "open to contribution" by allowing community members to independently start a new MCPConfig build, manually fixing all compile errors and contribute back via a GitHub pull request. This has happened in several 1.16 pre-releases, 1.17 pre-release and 1.18 pre-releases.
- Modified zlib license, retroactively to all historial "MCP" data, excluding MCPBot exports.
- MCPConfig only provides fully-deobfuscated class names until March 2021.
- There has been at least one case where mappings generated by a community build has been accepted.
- There is not a dedicated intermediary mapping repository for QuiltMC's mapping, unlike MCPConfig or Intermediary.s