Given a BaseComponent and a CommandSender its necessary to check if the CommandSender is a Player and then cast to use Player.spigot().sendMessage(...) or fall back and translate the component back to text for use with CommandSender.sendMessage(...). It'd be more convenient if the sendMessage methods in Player.spigot() were added to CommandSender.spigot() and then non-Player command senders transparently convert them back to text.
Essentially feature parity between Player message sending and CommandSender message sending.