Olá,
Eu escrevi uma ferramenta chamada PixLyzer . Ele usa os mapeamentos de fios para < 1.14.4
e os mapeamentos de mojang para 1.14.4
+. Eu gosto de mapeamentos de fios muito mais do que os originais.
Meu problema é que preciso integrar a integração jar nomeada no meu script. Não tenho tempo para gerar manualmente os yarn jars para as versões mais recentes e para todas as versões entre 21w13a
e 1.14.4
. Minha última tentativa de gerar os mapeamentos mais antigos foi fazer o checkout de 1.14.4?
e alterar a versão do minecraft aqui: https://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L29. Versões mais antigas são incompatíveis com gradle e/ou não possuem mapNamedJar
Como gerar automaticamente mapeamentos para versões mais antigas? (Com isso quero dizer algo como gradle mapNamedJar 1.15.2
.
Obrigado
Oi,
Você pode usar o remapeamento minúsculo para remapear jars com mapeamentos fornecidos.
Você pode encontrar um download aqui: https://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/ (use o fat jar se quiser usá-lo através do cli)
Você pode encontrar fios no formato minúsculo aqui: https://maven.fabricmc.net/net/fabricmc/yarn/ (os arquivos none v2 jar ou gz serão melhores para versões mais antigas do jogo)
O Tiny Reampper também possui uma API se você desejar chamá-lo diretamente em seu código (basta puxá-lo via maven). Você pode usar o mapNamedJar como exemplo disso: https://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L1050
Deve ser apenas uma questão de fazer com que sua ferramenta baixe o minecraft e a versão do fio que você deseja usar e, em seguida, invoque o minúsculo remapper.
@modmuss50 Obrigado pela resposta (super rápida), com certeza vou experimentar. Infelizmente, não tive tempo nos últimos dias para responder.
Olá,
tem outra pergunta.
(Suponha que você use a versão 21w13a
e queira mapear de oficial para nomeado):
Eu posso usar o remapeamento minúsculo para mapear de offical
para intermediary
. Tudo bem com este. Agora eu quero mapear de intermediary
para named
. Quando faço check-out 21w13a
e executo gradle mapNamedJar
, vejo na pasta temporária um arquivo chamado merge-v2.tiny
. Quando eu uso este arquivo e executo o remapper está tudo bem e recebo o jar que estou acostumado. Quando eu uso os mapeamentos de fios do maven (não importa o quê, os mesclados, os v2, ...) posso mapear a maioria das classes para os nomes nomeados, mas alguns (por exemplo net/minecraft/class_6171
) não são sendo renomeado. Eu verifiquei os mapeamentos e ao grepping após esta classe recebo a seguinte saída:
moritz@moritz-tp:~/yarn$ grep -r "net/minecraft/class_6171"
mappings/net/minecraft/unused/packageinfo/PackageInfo6171.mapping:CLASS net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/yarn-mappings-v2.tiny:c net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/yarn-mappings.tiny:CLASS net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/unmerged-named-v2-with-enum.tiny:c net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/merged-reordered-v2.tiny:c dlr net/minecraft/class_6171 net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/temp/merged-v2.tiny:c net/minecraft/class_6171 dlr net/minecraft/unused/packageinfo/PackageInfo6171
.gradle/minecraft/21w13a-intermediary-inverted-v2.tiny:c net/minecraft/class_6171 dlr
.gradle/minecraft/21w13a-intermediary.tiny:CLASS dlr net/minecraft/class_6171
.gradle/minecraft/21w13a-intermediary-v2.tiny:c dlr net/minecraft/class_6171
moritz@moritz-tp:~/test$ grep -r "net/minecraft/class_6171"
Übereinstimmungen in Binärdatei intermediary.jar
Übereinstimmungen in Binärdatei yarn.jar
intermediary.tiny:c dlr net/minecraft/class_6171
Portanto, nenhum mapeamento nomeado está disponível. Os mapeamentos no maven são diferentes ou estou fazendo algo errado?
Ty
(Ok, pequena edição: usei pequenos mapeamentos antigos, mas ainda assim: verifique a classe net/minecraft/class_5348$1
)
v2 não contém os nomes intermediários, você precisa baixá-los separadamente do maven e combinar os mapeamentos ou ir de oficial -> intermediário -> nomeado.
Posso mapear de oficial para intermediário sem problemas. Eu uso v2 ou v1 do maven ( https://maven.fabricmc.net/net/fabricmc/yarn/ ), mas em nenhum lugar há um nome nomeado desta classe. Esse é o problema e não que não seja mapeado (quase todos são mapeados)
Comentários muito úteis
Oi,
Você pode usar o remapeamento minúsculo para remapear jars com mapeamentos fornecidos.
Você pode encontrar um download aqui: https://maven.fabricmc.net/net/fabricmc/tiny-remapper/0.3.2/ (use o fat jar se quiser usá-lo através do cli)
Você pode encontrar fios no formato minúsculo aqui: https://maven.fabricmc.net/net/fabricmc/yarn/ (os arquivos none v2 jar ou gz serão melhores para versões mais antigas do jogo)
O Tiny Reampper também possui uma API se você desejar chamá-lo diretamente em seu código (basta puxá-lo via maven). Você pode usar o mapNamedJar como exemplo disso: https://github.com/FabricMC/yarn/blob/21w13a/build.gradle#L1050
Deve ser apenas uma questão de fazer com que sua ferramenta baixe o minecraft e a versão do fio que você deseja usar e, em seguida, invoque o minúsculo remapper.