ParchmentMC/Parchment

Using Mojang names instead of obfuscated names

Closed this issue · 0 comments

Early in the design stage of Parchment, it was decided to have the mapping data use obfuscated names instead of Mojang names or other intermediates, for the following reasons:

  • In the case of Mojang names, we wanted to avoid hosting the Mojang names in our files, due to the potential legality of such.
  • In the case of intermediate names, one design choice beforehand was to not have any reliance on any particular intermediate (such as Forge's SRG via MCPConfig or Fabric's Intermediary), to be as neutral as we can in regards to these intermediaries (we still use them for version migration and such, but they are not required for the operation of Parchment).

However, we are now reconsidering that decision and leaning towards moving to Mojang names for the following reasons:

  1. It is difficult for reviewers to ascertain what changes are done in a PR/commit because they are in obfuscated names. It requires then for people to use external services or tools to translate these obfuscated names into their Mojang names, which adds an extra layer of difficulty to reviews.

  2. Because of the nature of obfuscated names, moving between any two versions of Minecraft would mean most of the names changing what actual Mojang class they represent, which means a large amount of shifting of the data would occur. For example, if Mojang added a class which when obfuscated became the new ab, all obfuscated names after that would be shifted.

  3. While the legality of the project is not fully clear without actual consultation from a lawyer, we can abide by the letter (and spirit) of the obfuscation mappings license by only storing in the repository Mojang names which have additional data attached, such as parameter names and documentation.

    Furthermore, as we are already publishing and distributing these names through our exports (which use Mojang names), that is a permanent source of legal 'risk', in the sense that even if we were to keep to obfuscated names, our exports are still a potential target if we are to be struck down by Mojang.

    Note: While we are considering the risk of being struck down by Mojang, we have faith in Mojang's goodwill towards the modding community, that these mappings are released with the expectation that they are to be used by the community.

    (Personal opinion: It is my firm belief that if Mojang were to strike down the modding community, it would be through striking down the relevant portion of the Minecraft EULA and then pursing legal action. However, it is also my strong belief that Mojang has faith and trust towards the modding community, and that they will continue this faith and goodwill long into the future.)

For these reasons, it is proposed that we move the data currently in the repository to use Mojang names, and use them for the forseeable future.