Posted March 25, 20241 yr I'm trying to implement a custom item that can be used on doors. But, the `useOn` function does not fire when clicking on doors. It fires when you click on any normal block, but it seems like the door is consuming the click event before my item can do something. Any suggestions? Thanks.
March 25, 20241 yr You're right, you're gunna have to use an event instead. @SubscribeEvent public static void onInteractBlock(PlayerInteractEvent.RightClickBlock event) { final var level = event.getLevel(); if(level.isClientSide) return; // Note this is fired both client and server side final var itemUsed = event.getItemStack().getItem(); final var blockUsed = level.getBlockState(event.getHitVec().getBlockPos()).getBlock(); if(blockUsed instanceof DoorBlock && itemUsed instanceof MyCustomItem item) { item.doCustomThing(); } } ^ this worked for me
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.