Yes, you read the title correctly. I need to know when a player does NOT place a block but instead clicks a block (run the code only when the block is not placed). One example of this is when a player clicks a block with a flower in hand, sometimes it places it and sometimes it won't eg. on oak_planks vs on grass_block. The problem I'm having is that in PlayerInteractEvent you can only see when a player clicks a block, along with the information that which hand was used for this action, but I don't have a way of checking whether the block(flower) was actually placed on ground (special effects when clicking just with flower, but don't want to prevent player from placing it to the ground or pots). You could say that "just check that if the block player clicked is dirt" or something along the lines, but what if player clicked the side of, let's say a house, in order to place a flower to the ground, or the side of a dirt block, without actually placing the flower. I found two ways to handle this: Check if there is a "dirt/pot" type of block below the block at the clicked side of the clicked block and Somehow run BlockPlacedEvent before PlayerInteractEvent to block the following PlayerInteractEvent from happening, and causing the problems. Yes, the two methods above I suppose would work (haven't tested the latter yet though), but are there any other more elegant ways of doing this so that the code wouldn't look so messy?