internal static void Help(Player player, Command cmd) { string commandName = cmd.Next(); if (commandName == "commands") { cdCommands.Handler(player, cmd); } else if (commandName != null) { CommandDescriptor descriptor = CommandManager.GetDescriptor(commandName); if (descriptor == null) { player.Message("Unknown command: \"{0}\"", commandName); return; } 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("&S, &H")); sb.Append("&N"); } if (descriptor.HelpHandler != null) { sb.Append(descriptor.HelpHandler(player)); } else if (descriptor.Help != null) { sb.Append(descriptor.Help); } else { sb.Append("No help is available for this command."); } player.MessagePrefixed(HelpPrefix, sb.ToString()); if (descriptor.Permissions != null && descriptor.Permissions.Length > 0) { player.NoAccessMessage(descriptor.Permissions); } } else { player.Message("To see a list of all commands, write &H/help commands"); player.Message("To see detailed help for a command, write &H/help CommandName"); 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 send private messages, write &H@PlayerName Message"); player.Message("To message all players of a rank, write &H@@Rank Message"); } }