Minecraft Fabric Mixins | Injection

74 Views Asked by At

I need to inject some code to method register(String id, Item item), but there're overloads there. How can I do this? register overloads

I tried this:

@Inject(at = @At("HEAD"), method = "register(Ljava/lang/String;Lnet/minecraft/item/Item;)V")
    private static void register(String id, Item item, CallbackInfoReturnable<Item> info) {
        //...
        info.setReturnValue(Items.register(new Identifier(id), i));
    }

Or this:

@Inject(at = @At("HEAD"), method = "register")
    private static void register(String id, Item item, CallbackInfoReturnable<Item> info) {
        //...
        info.setReturnValue(Items.register(new Identifier(id), i));
    }

But it's not working...

Invalid descriptor on mixin->@Inject::register(Ljava/lang/String;Lnet/minecraft/item/Item;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V!
Expected
(Lnet/minecraft/block/Block;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V
but found
(Ljava/lang/String;Lnet/minecraft/item/Item;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V
0

There are 0 best solutions below