Posted April 29, 20214 yr @SubscribeEvent public static void onBlockBreak(BlockEvent.BreakEvent event) { event.getWorld().setBlock(event.getPos(), Blocks.BEDROCK.defaultBlockState(), Constants.BlockFlags.BLOCK_UPDATE); System.out.println(event.getPos()); } I'm trying to replace a block with bedrock when it is broken. It's currently not working however, I've confirmed that the method is firing properly and that the position is correct with the print statement. Does anyone have experience working with the setBlock() method? I couldn't find much on it. Forge version: 1.16.5
April 30, 20214 yr Author 9 hours ago, diesieben07 said: You're just causing the player to mine the bedrock instead, because the actual mining happens after the event. Do you know of an event I could use to place the bedrock after the items drop, or is there a way to drop the items myself before cancelling the event?
May 2, 20214 yr Author @SubscribeEvent public static void onBlockBreak(BlockEvent.BreakEvent event) { Block.dropResources(event.getState(), (World) event.getWorld(), event.getPos()); event.getWorld().setBlock(event.getPos(), Blocks.BEDROCK.defaultBlockState(), Constants.BlockFlags.BLOCK_UPDATE); event.setCanceled(true); } I ended up using the dropResources method in the Block class before placing the bedrock and canceling the event. Thanks for the pointers!
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.