RetroMCP-Java
RetroMCP-Java copied to clipboard
Support TinyV2 Namespaced Mappings
Projects like @FabricMC, @QuiltMC, @Legacy-Fabric, and @Babric already provide mappings that many people are used to using for other types of mods in Tiny format, using intermediary mappings that make porting mappings to other versions a lot easier.
I believe being able to use existing mappings for decompilation from projects that already maintain them would save a lot of time and effort, compared to remapping the supported versions from these groups yet again. And it would be a great help to people who are already used to using them.
Of course, this would be optional if implemented, but still great to have.
The functionality is already there to do so. Custom remapping schemes can be implemented through the Plugin API too, if necessary.
The only issue I can see from here, is that most mappings used externally for these versions are merged, which RMCP right now only merges AFTER remapping, instead of merging beforehand.
As for layered mappings, the Tiny v2 spec supports that in the form of namespaces, but if you mean remapping a JAR multiple times, again, a custom plugin can be used.
If you have a specific implementation that can easily be implemented and support most other types, it would be quite neat.
Also, as an aside, RMCP uses Mappings IO which can read most, if not all, mapping formats that are used by FabricMC and even some by Forge.
When I said "layered" what I really meant was namespaces. I would like to see the merging done before remapping for Tiny support though. It would be much appreciated.
Merging cannot be done before remapping for versions earlier than 1.3. Obfuscation map between client and server is not the same. Which means a
class in client might be, let's say RenderPlayer
and in server it's World
Though if you want official -> intermediary <merge here> -> named, that can be done, only if intermediary mappings were properly matched
Updating this to say that merged mappings are now solely used on v2 version metadata (https://github.com/MCPHackers/MCPHackers.github.io/tree/main/versionsV2)