internal static void HelpHandler( Player player, Command cmd )
{
string commandName = cmd.Next();
if ( commandName == "commands" ) {
CdCommands.Call( player, cmd, false );
} else if ( commandName != null ) {
CommandDescriptor descriptor = CommandManager.GetDescriptor( commandName, true );
if ( descriptor == null ) {
player.Message( "Unknown command: \"{0}\"", commandName );
return;
}
string sectionName = cmd.Next();
if ( sectionName != null ) {
string sectionHelp;
if ( descriptor.HelpSections != null && descriptor.HelpSections.TryGetValue( sectionName.ToLower(), out sectionHelp ) ) {
player.MessagePrefixed( HelpPrefix, sectionHelp );
} else {
player.Message( "No help found for \"{0}\"", sectionName );
}
} else {
StringBuilder sb = new StringBuilder( Color.Help );
sb.Append( descriptor.Usage ).Append( '\n' );
if ( descriptor.Aliases != null ) {
sb.Append( "Aliases: &H" );
sb.Append( descriptor.Aliases.JoinToString() );
sb.Append( "\n&S" );
}
if ( String.IsNullOrEmpty( descriptor.Help ) ) {
sb.Append( "No help is available for this command." );
} else {
sb.Append( descriptor.Help );
}
player.MessagePrefixed( HelpPrefix, sb.ToString() );
if ( descriptor.Permissions != null && descriptor.Permissions.Length > 0 ) {
player.MessageNoAccess( descriptor );
}
}
} else {
player.Message( " To see a list of all commands, write &H/Commands" );
player.Message( " To see detailed help for a command, write &H/Help Command" );
if ( player != Player.Console ) {
player.Message( " To see your stats, write &H/Info" );
}
player.Message( " To list available worlds, write &H/Worlds" );
player.Message( " To join a world, write &H/Join WorldName" );
player.Message( " To send private messages, write &H@PlayerName Message" );
}
}