The_SlayerMC Posted December 12, 2021 Posted December 12, 2021 Hi I'm trying to stay with events for my auto smelt tools, everything is done and works but it drops the normal block drop as well as the recipe output Previously I could cancel the drop and add my own but it looks like that event has gone away and now I'm using this: @SubscribeEvent public void smeltDrop(final BlockEvent.BreakEvent event) { Random r = new Random(); Player player = event.getPlayer(); Optional<SmeltingRecipe> output = player.level.getRecipeManager().getRecipeFor(RecipeType.SMELTING, new SimpleContainer((new ItemStack(event.getState().getBlock()))), player.level); if(event.getPlayer() != null && player.getMainHandItem() != null && !player.isCreative() && output != null) { ItemStack stackdrop = output.get().getResultItem(); if(stackdrop != null) { if(player.getMainHandItem().getItem() == ModItems.FLAME_PICK.get() || player.getMainHandItem().getItem() == ModItems.FLAME_AXE.get() || player.getMainHandItem().getItem() == ModItems.FLAME_SHOVEL.get()) { player.level.addFreshEntity(new ItemEntity(player.level, event.getPos().getX() + 0.5F, event.getPos().getY() + 0.1F, event.getPos().getZ() + 0.5F, stackdrop)); } } ItemStack stack = new ItemStack(ModItems.DRY_CRYSTAL.get()); if(stack != null && player.getMainHandItem().getItem() instanceof PickaxeItem && event.getState().getBlock() == Blocks.STONE){ if(r.nextInt(100) == 0) { player.level.addFreshEntity(new ItemEntity(player.level, event.getPos().getX() + 0.5F, event.getPos().getY() + 0.1F, event.getPos().getZ() + 0.5F, stack)); } } } } Quote Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
Luis_ST Posted December 12, 2021 Posted December 12, 2021 I would recommend you to use GlobalLootModifiers, since there is a Forge Example Mod: https://github.com/MinecraftForge/MinecraftForge/blob/41ea5b195bf5c818d1da8932d264a33de16fa632/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java#L145 Quote
Recommended Posts
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.