IsMounted is a mini-library with one purpose: Quickly and efficiently detect if any friendly unit is mounted.

Essentially this is done by buff tooltip scan, but it is also augmented with events that allow for the storage of predictibly consistant unit mount information storage.  This means if it has been checked before and you ask again before the unit or its buffs' change the result will be as efficient as a table lookup! Feel free to use it as frequently as you like.

There are tons of instances where having this information at your fingertips might be useful: macros, casting, auto-follow, macros, flight-path unmount, etc.  The opportunities are limited only by your imagination!

Your new best friends:

Macro Slash Command: /dismount

-- 
-- UnitIsMounted( string unit )
--
--	EX: if (UnitIsMounted("player")) then doSomething(); end
--
-- Returns: 
-- 	(Boolean isMounted)
--	isMounted - 1 if mounted, else nil
-- 

-- 
-- Dismount()
--
--	EX: if (Dismount()) then print("I'm Dismounting"); end
--
-- Returns: 
-- 	(Boolean wasMounted)
--	wasMounted - 1 if was mounted, else nil
-- 

-- 
-- UnitMountSpeed( string unit )
--
--	EX: local speed = UnitMountSpeed("target")
--
-- Returns: 
-- 	(Number speed)
-- 	speed - percent speed increase of the mount (60 or 100) if unit is mounted,
--			false if mount is not found
-- 

-- 
-- UnitMountBuffID( string unit )
--
--	EX: local id = UnitMountBuffID("target")
--
-- Returns: 
-- 	(Number id)
-- 	id - the buff id id of the mount, nil if mount is not found or unit doesn't exist
-- 

-- 
-- IsMounted.GetMountBuffInfo( string unit )
-- 
--	EX: local speed, slot = IsMounted.GetMountBuffInfo("player")
--
-- Returns: 
-- 	(Number speed, Number slot)
-- 	speed - percent speed increase of the mount (60 or 100) if unit is mounted,
--			false if mount is not found
--	slot - the buff slot id of the mount, nil if mount is not found or unit doesn't exist
--


Note: Information gathered from this addon is only correct for friendly units or units that you can see the buffs of.