using System; using System.Linq; using System.Reflection; using DotaMatchRequest; using SteamKit2.GC.Dota.Internal; // for CMsgDOTAMatch if ( args.Length < 3 ) { PrintUsage(); return; } string username = args[ 0 ]; string password = args[ 1 ]; uint matchId; if ( !uint.TryParse( args[ 2 ], out matchId ) ) { Console.WriteLine( "Invalid Match ID!" ); return; } DotaClient client = new DotaClient( username, password, matchId ); // connect client.Connect(); // wait for results of the match request client.Wait(); // print off what steam gave us PrintMatchDetails( client.Match ); static void PrintMatchDetails( CMsgDOTAMatch match ) { if ( match == null ) { Console.WriteLine( "No match details to display" ); return; } // use some lazy reflection to print out details var fields = typeof( CMsgDOTAMatch ).GetProperties( BindingFlags.Public | BindingFlags.Instance ); foreach ( var field in fields.OrderBy( f => f.Name ) ) { var value = field.GetValue( match, null ); Console.WriteLine( "{0}: {1}", field.Name, value ); } } static void PrintUsage() { Console.WriteLine( "Usage:" ); Console.WriteLine( "DotaMatchRequest " ); }