public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult rayTraceResult) {
        if (world.isClientSide) {
            spawnParticles(world, pos);
        } else {
            interact(state, world, pos);
        }

        ItemStack itemstack = player.getItemInHand(hand);
        return itemstack.getItem() instanceof BlockItem && (new BlockPlaceContext(player, hand, itemstack, rayTraceResult)).canPlace() ? InteractionResult.PASS : InteractionResult.SUCCESS;
    }
All methods lifted straight from RedstoneOreBlock
exploration/src/main/java/mrtjp/projectred/exploration/block/ElectrotineOreBlock.java