ChewieBot_SteamRE.Program.Main C# (CSharp) Method

Main() static private method

static private Main ( string args ) : void
args string
return void
        static void Main(string[] args)
        {
            // TODO: Add check for instance already running

            //login info
            string userID = ConfigurationManager.AppSettings["userID"];
            string userPW = ConfigurationManager.AppSettings["userPW"];
            string botName = ConfigurationManager.AppSettings["botName"];

            List<SteamID> chatRooms = new List<SteamID>();

            ulong chatSteamID;
            if (ulong.TryParse(ConfigurationManager.AppSettings["chatSteamID"], out chatSteamID))
            {
                //List of Chats to join
                // TODO: multiple chatrooms
                chatRooms.Add(chatSteamID);
            }
            else
            {
                Console.WriteLine("Exit Code 10: Failed to Load SteamID");
                Environment.Exit(10);
            }

            //Initiliaze Steam Client
            SteamClient steamClient = new SteamClient();
            SteamUser steamUsr = steamClient.GetHandler<SteamUser>();
            SteamFriends steamFrds = steamClient.GetHandler<SteamFriends>();

            //Connect to Steam Network
            steamClient.Connect();

            while (true)
            {
                // start listening
                CallbackMsg msg = steamClient.WaitForCallback(true);

                msg.Handle<SteamClient.ConnectedCallback>(callback =>
                    {
                        if (callback.Result != EResult.OK)
                        {
                            Console.WriteLine("Exit Code 1: Failed to Connect to Steam Network - " + callback.Result.ToString());
                            Environment.Exit(1);
                            // connect fail
                        }
                        else
                        {
                            Console.WriteLine("Connected to Steam Network");

                            steamUsr.LogOn(new SteamUser.LogOnDetails
                            {
                                Username = userID,
                                Password = userPW,
                            });
                        }
                    });

                msg.Handle<SteamUser.LoggedOnCallback>(callback =>
                    {
                        if (callback.Result != EResult.OK)
                        {
                            Console.WriteLine("Exit Code 2: Logon Failure - " + callback.Result.ToString());
                            //Environment.Exit(2);
                            // logon fail
                        }
                        else
                        {
                            Console.WriteLine("Logged into Steam Network");

                            // Join Chat
                            // if you set PersonaState without setting PersonaName it goes to [unknown] and GetPersonaName doesn't work?
                            //steamFrds.SetPersonaName(steamFrds.GetPersonaName());
                            steamFrds.SetPersonaName(botName);
                            steamFrds.SetPersonaState(EPersonaState.Online);

                            foreach (SteamID steamID in chatRooms)
                            {
                                steamFrds.JoinChat(steamID);
                            }
                        }
                    });

                msg.Handle<SteamFriends.ChatEnterCallback>(callback =>
                    {
                        if (callback.EnterResponse != EChatRoomEnterResponse.Success)
                        {
                            Console.WriteLine("Exit Code 3: Failure to Enter Chat" + callback.EnterResponse.ToString());
                            //Environment.Exit(3);
                            // join chat fail
                        }
                        else
                        {
                            Console.WriteLine("Joined Chat");
                            foreach (SteamID steamID in chatRooms)
                            {
                                steamFrds.SendChatRoomMessage(steamID, EChatEntryType.ChatMsg, "Now listening");
                            }
                        }
                    });

                msg.Handle<SteamFriends.ChatMsgCallback>(callback =>
                    {
                        // TODO: Handle this in BotCommandHandler.cs

                        BotCommandHandler cmd = new BotCommandHandler();

                        foreach (SteamID steamID in chatRooms)
                        {
                            if (cmd.isCommand(callback.Message))
                            {

                                steamFrds.SendChatRoomMessage(steamID, EChatEntryType.ChatMsg, "Acknowledged. Processing...");

                                string retMsg = cmd.CommandHandler(callback.Message);
                                if (!string.IsNullOrEmpty(retMsg))
                                {
                                    steamFrds.SendChatRoomMessage(steamID, EChatEntryType.ChatMsg, cmd.CommandHandler(callback.Message));
                                }
                            }
                        }
                    });

            }
        }
Program