Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

simple_type_field_names aren't always reflected in the editor (java.util.function @FunctionalInterface implementations) #15

Open
supersaiyansubtlety opened this issue Oct 10, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@supersaiyansubtlety
Copy link

supersaiyansubtlety commented Oct 10, 2024

When working on SequenceLootFunction.mapping I noticed the ItemStack param of public ItemStack apply(ItemStack arg, LootContext arg2) didn't appear mapped despite its simple type name.

I also tried adding this simple type name: "net/minecraft/unmapped/C_iakykpgh": "context", // LootContext and not only was the param above not proposed, but no LootContext param was proposed (I reset to obfuscated to test), except one:
ConditionalLootFunction's protected abstract ItemStack process(ItemStack stack, LootContext context);
Its ItemStack param was also proposed.

Having done this I've noticed that all methods missing param proposals implement a java.util.function @FunctionalInterface method, except for the one exception above.

The methods have their simple type names in fakeSource/, so I think the issue is confined to the editor.

@supersaiyansubtlety supersaiyansubtlety added the bug Something isn't working label Oct 10, 2024
@supersaiyansubtlety
Copy link
Author

Resetting KilledByPlayerLootCondition::test's param to obfuscated and then trying to re-map it result in this:

METHOD test (Ljava/lang/Object;)Z
+METHOD m_lhpybxfc (Lnet/minecraft/unmapped/C_iakykpgh;)Z
	ARG 1 context

and the name doesn't show up in the editor.
Seems like it doesn't know that test isn't obfuscated (it's from java.util.function.Predicate).

@OroArmor
Copy link
Member

It could be related to the fact that I think we know that function interface parameters aren't obfuscated (for some reason)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants