Buggy code:
public final class CommandManager implements Localisable , CommandExecutor { public static final ChatColor REQUIRED_ARGUMENT_COLOUR = ChatColor . RED ; public static final ChatColor OPTIONAL_ARGUMENT_COLOUR = ChatColor . GREEN ; private final SimplePlugin plugin ; private final Map < String , Command > commands = new HashMap < String , Command > ( ) ; private final String pluginName ; private final String pluginDescription ; private final String helpCommand ; public CommandManager ( final SimplePlugin plugin ) { } public void addCommand ( final PluginCommand command ) { } public void addCommand ( final PluginCommand command , final String name ) { } public Map < String , Command > getCommands ( ) { } public boolean onCommand ( final CommandSender sender , final org . bukkit . command . Command cmd , final String label , final String [ ] args ) { if ( ( args . length ) == 0 ) { sender . sendMessage ( ( ( ChatColor . LIGHT_PURPLE ) + ( this . pluginName ) ) ) ; sender . sendMessage ( ( ( ChatColor . AQUA ) + ( this . pluginDescription ) ) ) ; String [ ] messages = new String [ ] { cmd . getName ( ) , this . helpCommand } ; sender . sendMessage ( ( ( ChatColor . GREEN ) + ( this . getSimpleFormattedMessage ( "commandmanager-help-usage" , messages ) ) ) ) ; for ( Command command : commands . values ( ) ) { if ( command . testPermission ( sender ) ) { sender . sendMessage ( ( ( ChatColor . YELLOW ) + ( this . getCommandHelpEntry ( label , command ) ) ) ) ; } } return true ; } if ( ( ( args . length ) != 0 ) && ( this . commands . containsKey ( args [ 0 ] . toLowerCase ( ) ) ) ) { final Command command = commands . get ( args [ 0 ] ) ; String [ ] arguments = this . prepareArguments ( args , args [ 0 ] ) ; command . onCommand ( sender , cmd , null , arguments ) ; return true ; } else if ( ( ( args . length ) == 2 ) && ( args [ 0 ] . equalsIgnoreCase ( this . helpCommand ) ) ) { if ( ( commands . containsKey ( args [ 1 ] ) ) && ( commands . get ( args [ 1 ] ) . testPermission ( sender ) ) ) { final Command command = commands . get ( args [ 1 ] ) ; sender . sendMessage ( ( ( ChatColor . LIGHT_PURPLE ) + ( command . getDescription ( ) ) ) ) ; <START_BUG> sender . sendMessage ( this . getCommandHelpEntry ( label , command ) ) ; <END_BUG> } else { sender . sendMessage ( ( ( ChatColor . RED ) + ( this . getMessage ( "commandmanager-invalid-command" ) ) ) ) ; sender . sendMessage ( ( ( ChatColor . YELLOW ) + ( this . getSimpleFormattedMessage ( "commandmanager-list-commands-hint" , cmd . getName ( ) ) ) ) ) ; } return true ; } else { sender . sendMessage ( ( ( ChatColor . RED ) + ( this . getMessage ( "commandmanager-invalid-command" ) ) ) ) ; sender . sendMessage ( ( ( ChatColor . YELLOW ) + ( this . getSimpleFormattedMessage ( "commandmanager-list-commands-hint" , cmd . getName ( ) ) ) ) ) ; return true ; } } private String [ ] prepareArguments ( String [ ] args , String name ) { } private String getCommandHelpEntry ( final String label , final Command command ) { } public Locale getLocale ( ) { } public String getMessage ( String key ) { } public String getSimpleFormattedMessage ( String key , Object [ ] arguments ) { } public String getSimpleFormattedMessage ( final String key , final String argument ) { } public String getChoiceFormattedMessage ( String key , Object [ ] arguments , String [ ] formats , double [ ] limits ) { } }

Fix:
sender . sendMessage ( ( ( ChatColor . YELLOW ) + ( this . getCommandHelpEntry ( label , command ) ) ) ) ;