public void UpdateStorageItem(TradeHandler.TradeLogItem MyTradeLogItem, bool replaceQuantity) { MySqlConnection MyConnection = new MySqlConnection("Server=" + MainClass.SqlServer + ";Port=" + MainClass.SqlPort.ToString() + ";Database=" + MainClass.SqlDatabase + ";Uid=" + MainClass.SqlUsername + ";Pwd=" + MainClass.SqlPassword + ";"); try { MyConnection.Open(); } catch (Exception myException) { Console.WriteLine(myException.Message); Environment.Exit(0); } int tempQuantity; tempQuantity = (int)MyTradeLogItem.quantity; if (MyTradeLogItem.action.Contains("sold") || MyTradeLogItem.action.Contains("gave") || MyTradeLogItem.action.ToLower().Contains("withdrew")) { if (!replaceQuantity) { tempQuantity = tempQuantity * -1; } } int rowsAffected = 0; string itemName = ""; int imageid = 0; string sql = "UPDATE Storage SET quantity = quantity + ?quantity WHERE knownitemsid = ?knownitemsid AND botid = ?botid;"; if (replaceQuantity) { sql = "UPDATE Storage SET quantity = ?quantity WHERE knownitemsid = ?knownitemsid AND botid = ?botid;"; } TheLogger.Debug(sql + "\n"); MySqlCommand cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?quantity", tempQuantity); cmd.Parameters.AddWithValue("?knownitemsid", MyTradeLogItem.KnownItemsSqlID); cmd.Parameters.AddWithValue("?botid", Settings.botid); try { rowsAffected = cmd.ExecuteNonQuery(); } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { } //didn't update any rows, must be a new item, so insert it with what we have... //the next time the storage is open, the rest of the info will be known if (rowsAffected == 0) { //ok, we need some info from the known items table about this item //since this function may end up being called from several locations //the amount of known information isn't standard.... //easier to get it here than try to change the entire program.... sql = "SELECT name, imageid FROM knownitems WHERE id = ?id ;"; TheLogger.Debug(sql + "\n"); cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?id", MyTradeLogItem.KnownItemsSqlID); TheLogger.Debug("MySQLDataReader start"); MySqlDataReader reader = cmd.ExecuteReader(); TheLogger.Debug("MySQLDataReader complete"); try { while (reader.Read()) { itemName = reader.GetString(0); imageid = reader.GetInt16(1); } } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { reader.Close(); } // sql = "INSERT DELAYED INTO Storage (name, knownitemsid, imageid, quantity, botid, categorynum) VALUES (?name, ?knownitemsid, ?imageid, ?quantity, ?botid, ?categorynum);"; sql = "INSERT INTO storage (name, knownitemsid, imageid, quantity, botid, categorynum) VALUES (?name, ?knownitemsid, ?imageid, ?quantity, ?botid, ?categorynum);"; TheLogger.Debug(sql + "\n"); cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?quantity", MyTradeLogItem.quantity); cmd.Parameters.AddWithValue("?name", itemName); cmd.Parameters.AddWithValue("?imageid", imageid); cmd.Parameters.AddWithValue("?knownitemsid", MyTradeLogItem.KnownItemsSqlID); cmd.Parameters.AddWithValue("?categorynum", MyTradeLogItem.categoryNum ); cmd.Parameters.AddWithValue("?botid", Settings.botid); try { cmd.ExecuteNonQuery(); } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { TheLogger.Debug("### SqlConnectionClose() in UpdateStorageItem \n"); } } MyConnection.Close(); return; }
public void LogTrade(TradeHandler.TradeLogItem MyTradeLogItem, string username, int botid, bool sendCoinPMs) { if (username == "") return; bool sendPM = true; MySqlConnection MyConnection = new MySqlConnection("Server=" + MainClass.SqlServer + ";Port=" + MainClass.SqlPort.ToString() + ";Database=" + MainClass.SqlDatabase + ";Uid=" + MainClass.SqlUsername + ";Pwd=" + MainClass.SqlPassword + ";"); try { MyConnection.Open(); } catch (Exception myException) { Console.WriteLine(myException.Message); Environment.Exit(0); } string sql = "[" + MyTradeLogItem.action + "] [" + username + "] [" + MyTradeLogItem.quantity.ToString() + "] [" + GetKnownItemsname(MyTradeLogItem.KnownItemsSqlID) + "] [" + MyTradeLogItem.price * MyTradeLogItem.quantity + "gc"; string[] names = botowner(Settings.botid).Split('|'); if (MyTradeLogItem.action.ToLower().Contains("transaction coins") && !sendCoinPMs) { sendPM = false; } if (this.sendreceivedpms(Settings.botid) && sendPM)// Added this check * Draavell // { foreach (string name in names) { if (MySqlManager.playerIsOnline(name.Trim())) { TheTCPWrapper.Send(CommandCreator.SEND_PM(name.Trim(), sql)); } } } // sql = "INSERT DELAYED INTO tradelog (knownitemsid, quantity, price, username, tradetime, action, payedout, botid) VALUES(?knownitemsid, ?quantity, ?price, ?username, now(), ?action, ?payedout, ?botid);"; sql = "INSERT INTO tradelog (knownitemsid, quantity, price, username, tradetime, action, payedout, botid) VALUES(?knownitemsid, ?quantity, ?price, ?username, now(), ?action, ?payedout, ?botid);"; TheLogger.Debug(sql + "\n"); MySqlCommand cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?knownitemsid", MyTradeLogItem.KnownItemsSqlID); cmd.Parameters.AddWithValue("?quantity", MyTradeLogItem.quantity); cmd.Parameters.AddWithValue("?price", MyTradeLogItem.price); cmd.Parameters.AddWithValue("?username", username); //cmd.Parameters.AddWithValue("?tradetime", "now()"); cmd.Parameters.AddWithValue("?action", MyTradeLogItem.action); cmd.Parameters.AddWithValue("?payedout", 0); cmd.Parameters.AddWithValue("?botid", botid); try { cmd.ExecuteNonQuery(); } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { } MyConnection.Close(); return; }
public void getItemInfo(ref TradeHandler.TradeItem MyTradeItem) { string sql = "SELECT id, name, weight FROM knownitems WHERE elitemid = ?elitemid"; MySqlConnection MyConnection = new MySqlConnection("Server=" + MainClass.SqlServer + ";Port=" + MainClass.SqlPort.ToString() + ";Database=" + MainClass.SqlDatabase + ";Uid=" + MainClass.SqlUsername + ";Pwd=" + MainClass.SqlPassword + ";"); try { MyConnection.Open(); } catch (Exception myException) { Console.WriteLine(myException.Message); Environment.Exit(0); } MySqlCommand cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?elitemid", MyTradeItem.ELServerItemID); MySqlDataReader reader = cmd.ExecuteReader(); try { while (reader.Read()) { MyTradeItem.KnownItemsSqlID = reader.GetInt16(0); MyTradeItem.name = reader.GetString(1); MyTradeItem.weight = reader.GetUInt16(2); } } catch (MySqlException oMySQLException) { { myErrorHandler.errorWriter(oMySQLException); } } catch (Exception oException) { { myErrorHandler.errorWriter(oException); } } finally { } reader.Close(); MyConnection.Close(); }
public int GetStorageSQLID(TradeHandler.TradeItem MyTradeItem) { MySqlConnection MyConnection = new MySqlConnection("Server=" + MainClass.SqlServer + ";Port=" + MainClass.SqlPort.ToString() + ";Database=" + MainClass.SqlDatabase + ";Uid=" + MainClass.SqlUsername + ";Pwd=" + MainClass.SqlPassword + ";"); try { MyConnection.Open(); } catch (Exception myException) { Console.WriteLine(myException.Message); Environment.Exit(0); } TradeHandler.TradeItem MyTempTradeItem = new TradeHandler.TradeItem(); MyTempTradeItem = MyTradeItem; // Add Item it the Global Items List and to the Inventory List // First check if the Item exists in the global Database, if not Add it. int id = -1; int count = -1; //string sql = "SELECT id FROM knownitems WHERE imageid = ?imageid and name = ?name order by imageid, name"; string sql = "SELECT id FROM knownitems WHERE lower(name) = ?name order by name"; MySqlCommand cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?imageid", MyTempTradeItem.imageid); cmd.Parameters.AddWithValue("?name", MyTempTradeItem.name.ToLower()); TheLogger.Debug(sql + "\n"); MySqlDataReader reader = cmd.ExecuteReader(); TheLogger.Debug("### cmd.ExecuteReader() in GetStorageSQLID\n"); try { while (reader.Read()) { id = reader.GetInt16(0); count++; } } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { reader.Close(); TheLogger.Debug("### reader.Close() in GetStorageSQLID\n"); } if (id != -1 && count == 0) { MyConnection.Close(); return id;//we found a perfect match } count = -1; sql = "SELECT id FROM knownitems WHERE imageid = ?imageid and lower(name) = ?name order by imageid, name"; cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?imageid", -1); cmd.Parameters.AddWithValue("?name", MyTempTradeItem.name.ToLower()); TheLogger.Debug(sql + "\n"); reader = cmd.ExecuteReader(); try { while (reader.Read()) { id = reader.GetInt16(0); count++; } } catch (MySqlException oMySQLException) { myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { myErrorHandler.errorWriter(oException); } finally { reader.Close(); } if (id != -1 && count == 0) { //update the imageid here from -1 to the right one // imageid = -1 update it Inventory.inventory_item MyInventoryItem = new Inventory.inventory_item(); MyInventoryItem.imageid = MyTradeItem.imageid; MyInventoryItem.name = MyTradeItem.name; MyInventoryItem.description = ""; MyInventoryItem.weight = MyTradeItem.weight; MyInventoryItem.is_resource = false; MyInventoryItem.is_reagent = false; MyInventoryItem.is_stackable = false; MyInventoryItem.use_with_inventory = false; updateknownitems(MyInventoryItem, id); MyConnection.Close(); return id;//we found a perfect match } if (id == -1) { if(MyTradeItem.imageid == 0) TheLogger.ErrorLog("Possibly invalid Item: " + MyTradeItem.name + " added by " + Settings.botid + " in GetStorageSQLID()"); sql = "INSERT INTO knownitems (name,description,imageid,weight,is_resource,is_reagent,is_stackable,use_with_inventory) VALUES (?name,?description,?imageid,?weight,?is_resource,?is_reagent,?is_stackable,?use_with_inventory)"; cmd.Parameters.Clear(); cmd = new MySqlCommand(sql, MyConnection); cmd.Parameters.AddWithValue("?name", MyTradeItem.name); cmd.Parameters.AddWithValue("?description", " "); cmd.Parameters.AddWithValue("?imageid", MyTradeItem.imageid); cmd.Parameters.AddWithValue("?weight", MyTradeItem.weight); cmd.Parameters.AddWithValue("?is_resource", -1); cmd.Parameters.AddWithValue("?is_reagent", -1); cmd.Parameters.AddWithValue("?is_stackable", -1); cmd.Parameters.AddWithValue("?use_with_inventory", -1); try { cmd.ExecuteNonQuery(); id = GetKnownItemsSQLID(MyTradeItem); } catch (MySqlException oMySQLException) { TheLogger.Log("ExecSql Error in " + oMySQLException.TargetSite + " due to : " + oMySQLException.Message + "\n"); TheLogger.Log("ExecSql by SQL : " + sql + "\n"); myErrorHandler.errorWriter(oMySQLException); } catch (Exception oException) { TheLogger.Log("ExecSql Error in " + oException.TargetSite + " due to : " + oException.Message + "\n"); TheLogger.Log("ExecSql by SQL : " + sql + "\n"); myErrorHandler.errorWriter(oException); } finally { //reader.Close(); } reader.Close(); MyConnection.Close(); return id; } reader.Close(); MyConnection.Close(); return id; }
//public static myCoords myCurrentCoords = new myCoords(); //public struct myCoords //{ // public int x; // public int y; //} public static void Main(string[] args) { myHome.x = 0; myHome.y = 0; myHome.heading = 0; myHome.mapName = ""; // Create instance of the log file handler Logger MyLogger = new Logger(); // Create instance of the TCP client TCPClient.TCPClient MyTCPClient = new TCPClient.TCPClient(); // Initialize the TCPWrapper TCPWrapper MyTCPWrapper = new TCPWrapper(MyTCPClient, MyLogger); // set up working directory if (args.Length > 0) { string botName = args[0]; launchPath = args[1]; SqlServer = args[2]; SqlPort = Convert.ToInt16(args[3]); SqlUsername = args[4]; SqlPassword = args[5]; SqlDatabase = args[6]; Environment.CurrentDirectory = launchPath + botName; } if (Environment.CurrentDirectory.ToLower().Contains("Live".ToLower())) { serverName = "live"; } else if (Environment.CurrentDirectory.ToLower().Contains("Test".ToLower())) { serverName = "test"; } else if (Environment.CurrentDirectory.ToLower().Contains("PK".ToLower())) { serverName = "pk"; } else { launchedByBotManager = false; launchPath = "C:\\bot\\test\\"; Console.WriteLine("serverName not found in file path, defaulting to test"); Console.WriteLine("path containing cs-elbot.exe should be something like c:/bot/test/botname/"); Console.WriteLine("If you're not using bot manager, don't worry about this message"); } Settings MySettings = new Settings(); //Load Sql Configuration if not supplied in parameters if (SqlServer == "") { MySettings.LoadSqlSettingsFromConfigfile(); } MySettings.LoadSettings(); errorHandler MyErrorHandler = new errorHandler(); //Setup the MySQL Database MySqlManager MyMySqlManager = new MySqlManager(SqlServer, SqlUsername, SqlPassword, SqlDatabase, SqlPort, MyLogger, MyTCPWrapper, MyErrorHandler); Settings.TradeTimeOut = MyMySqlManager.GetTimeoutInterval(Settings.botid); botType = MyMySqlManager.getBotType(Settings.botid); //Console.WriteLine("Bot type: " + botType); MyMySqlManager.ImStarted(Settings.botid); Settings.URL = MyMySqlManager.getURL() + Settings.Loginname + ".php"; try { System.Net.IPHostEntry ServerIPHostEntry = System.Net.Dns.GetHostEntry(Settings.ServerHostname); MyTCPWrapper.HostIp = ServerIPHostEntry.AddressList[0]; MyTCPWrapper.Port = Settings.ServerPort; Logging.CommandLogger MyCommandDebugger = new Logging.CommandLogger(MyTCPWrapper, MyLogger); //BasicCommunication.HeartBeat MyHeartBeat = new BasicCommunication.HeartBeat(MyTCPWrapper, MyErrorHandler); BasicCommunication.HeartBeat MyHeartBeat = new BasicCommunication.HeartBeat(MyTCPWrapper); BasicCommunication.Ping MyPing = new BasicCommunication.Ping(MyTCPWrapper); Inventory MyInventory = new Inventory(MyTCPWrapper, MyLogger, MyMySqlManager); Storage MyStorage = new Storage(MyTCPWrapper, MyLogger, MyMySqlManager); BasicCommunication.new_minute MyMewMinute = new BasicCommunication.new_minute(MyTCPWrapper, MyMySqlManager, MyInventory); // Login here BasicCommunication.Login MyLogin = new BasicCommunication.Login(MyTCPWrapper); BasicCommunication.RawText MyRawText = new BasicCommunication.RawText(MyTCPWrapper); BasicCommunication.MessageParser MyMessageParser = new BasicCommunication.MessageParser(MyRawText, MyLogger, MyTCPWrapper, MyMySqlManager); BasicCommunication.changeMap MyChangeMap = new BasicCommunication.changeMap(MyTCPWrapper); //if this is a storage bot (not a tradebot) start a shutdown timer if (Settings.IsTradeBot == false && botType == 2) { BasicCommunication.Shutdown MyShutdown = new BasicCommunication.Shutdown(MyTCPWrapper, MyMessageParser, MyMySqlManager, MyErrorHandler); } Logging.LoginLogger MyLoginLogger = new Logging.LoginLogger(MyLogin, MyLogger, MyTCPWrapper, MyMySqlManager); Logging.MessageLogger MyMessageLogger = new Logging.MessageLogger(MyMessageParser, MyLogger, MyMySqlManager); AdvancedCommunication.ActorHandler MyActorHandler = new AdvancedCommunication.ActorHandler(MyTCPWrapper, MyLogger, MyMySqlManager); AdvancedCommunication.PMHandler MyPMHandler = new AdvancedCommunication.PMHandler(MyTCPWrapper, MyMessageParser, MyMySqlManager); AdvancedCommunication.HelpCommandHandler MyHelpCommandHandler = new AdvancedCommunication.HelpCommandHandler(MyTCPWrapper, MyMessageParser, MyPMHandler, MyMySqlManager); AdvancedCommunication.AdvHelpCommandHandler MyAdvHelpCommandHandler = new AdvancedCommunication.AdvHelpCommandHandler(MyTCPWrapper, MyMessageParser, MyPMHandler, MyMySqlManager, MyHelpCommandHandler); AdvancedCommunication.AdminHelpCommandHandler MyAdminHelpCommandHandler = new AdvancedCommunication.AdminHelpCommandHandler(MyTCPWrapper, MyMessageParser, MyPMHandler, MyMySqlManager, MyAdvHelpCommandHandler); AdvancedCommunication.SAYCommandHandler MySAYCommandHandler = new AdvancedCommunication.SAYCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyPMHandler); AdvancedCommunication.PMCommandHandler MyPMCommandHandler = new AdvancedCommunication.PMCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager); AdvancedCommunication.BuddyHandler MyBuddyHandler = new AdvancedCommunication.BuddyHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogin); //get my stats Stats MyStats = new Stats(MyTCPWrapper, MyLogger, MyMySqlManager); TradeHandler MyTradeHandler = new TradeHandler(MyTCPWrapper, MyMessageParser, MyMySqlManager, MyInventory, MyActorHandler, MyLogger, MyStorage, MyErrorHandler, MyHelpCommandHandler); AdvancedCommunication.INVCommandHandler MyINVCommandHandler = new AdvancedCommunication.INVCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats); AdvancedCommunication.INVRCommandHandler MyINVRCommandHandler = new AdvancedCommunication.INVRCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats); AdvancedCommunication.STOCommandHandler MySTOCommandHandler = new AdvancedCommunication.STOCommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyStorage, MyTradeHandler, MyStats); AdvancedCommunication.INVLISTCommandHandler MyINVLISTCommandHandler = new AdvancedCommunication.INVLISTCommandHandler(MyHelpCommandHandler, MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats); AdvancedCommunication.ReserveCommandHandler MyReserveCommandHandler = new AdvancedCommunication.ReserveCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats, MyStorage); AdvancedCommunication.GiveCommandHandler MyGiveCommandHandler = new AdvancedCommunication.GiveCommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyPMHandler); AdvancedCommunication.GiveToCommandHandler MyGiveToCommandHandler = new AdvancedCommunication.GiveToCommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyPMHandler); AdvancedCommunication.BUYCommandHandler MyBUYCommandHandler = new AdvancedCommunication.BUYCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler); AdvancedCommunication.DESCRIBECommandHandler MyDESCRIBECommandHandler = new AdvancedCommunication.DESCRIBECommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyPMHandler); AdvancedCommunication.DONATECommandHandler MyDONATECommandHandler = new AdvancedCommunication.DONATECommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler); AdvancedCommunication.PUTONSALECommandHandler MyPUTONSALECommandHandler = new AdvancedCommunication.PUTONSALECommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler); AdvancedCommunication.WANTEDCommandHandler MyWANTEDCommandHandler = new AdvancedCommunication.WANTEDCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory, MyStats); AdvancedCommunication.LOCCommandHandler MyLOCCommandHandler = new AdvancedCommunication.LOCCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.BANCommandHandler MyBANCommandHandler = new AdvancedCommunication.BANCommandHandler(MyHelpCommandHandler, MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.DropCommandHandler MyDropCommandHandler = new AdvancedCommunication.DropCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.LaunchCommandHandler MyLaunchCommandHandler = new AdvancedCommunication.LaunchCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.QuitCommandHandler MyQuitCommandHandler = new AdvancedCommunication.QuitCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.WearCommandHandler MyWearCommandHandler = new AdvancedCommunication.WearCommandHandler(MyActorHandler, MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.UseItemCommandHandler MyUseItemCommandHandler = new AdvancedCommunication.UseItemCommandHandler(MyActorHandler, MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.ABOUTCommandHandler MyABOUTCommandHandler = new AdvancedCommunication.ABOUTCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.AFKCommandHandler MyAFKCommandHandler = new AdvancedCommunication.AFKCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.ELTCCommandHandler MyELTCCommandHandler = new AdvancedCommunication.ELTCCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.ACCEPTMECommandHandler MyACCEPTMECommandHandler = new AdvancedCommunication.ACCEPTMECommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.KICKMECommandHandler MyKICKMECommandHandler = new AdvancedCommunication.KICKMECommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.GTCommandHandler MyGTCommandHandler = new AdvancedCommunication.GTCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.GuildTextHandler MyGuildTextHandler = new AdvancedCommunication.GuildTextHandler(MyRawText, MyTCPWrapper, MyMessageParser, MyMySqlManager, MyLogger); AdvancedCommunication.GreetPlayers MyGreetPlayers = new AdvancedCommunication.GreetPlayers(MyTCPWrapper, MyMySqlManager, MyActorHandler); AdvancedCommunication.AdvertHandler MyAdvertHandler = new AdvancedCommunication.AdvertHandler(MyTCPWrapper, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory, MyErrorHandler); AdvancedCommunication.HouseKeepingHandler MyHouseKeepingHandler = new AdvancedCommunication.HouseKeepingHandler(MyTCPWrapper, MyMySqlManager, MyLogger, MyErrorHandler); AdvancedCommunication.AltAdvertHandler MyAltAdvertHandler = new AdvancedCommunication.AltAdvertHandler(MyTCPWrapper, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory, MyErrorHandler); //AdvancedCommunication.RulesHandler MyRulesHandler = new AdvancedCommunication.RulesHandler(MyTCPWrapper, MyMySqlManager, MyLogger, MyTradeHandler); AdvancedCommunication.MOVECommandHandler MyMOVECommandHandler = new AdvancedCommunication.MOVECommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyPMHandler); AdvancedCommunication.SitStandCommandHandler MySitStandCommandHandler = new AdvancedCommunication.SitStandCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyPMHandler); AdvancedCommunication.RetradeCommandHandler MyRetradeCommandHandler = new AdvancedCommunication.RetradeCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyActorHandler, MyTradeHandler); AdvancedCommunication.TextCommandsHandler MyTextCommandsHandler = new AdvancedCommunication.TextCommandsHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); AdvancedCommunication.WhoIsTradingCommandHandler MyWhoIsTradingHandler = new cs_elbot.AdvancedCommunication.WhoIsTradingCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler); AdvancedCommunication.CancelTradeCommandHandler MyCancelTradeHandler = new cs_elbot.AdvancedCommunication.CancelTradeCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler); //goto command handler AdvancedCommunication.GotoCommandHandler MyGotoCommandHandler = new cs_elbot.AdvancedCommunication.GotoCommandHandler(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyPMHandler, MyActorHandler); //use object command handler AdvancedCommunication.UseObject MyUseObjectCommandHandler = new cs_elbot.AdvancedCommunication.UseObject(MyTCPWrapper, MyMessageParser, MyAdminHelpCommandHandler, MyMySqlManager, MyPMHandler); //openstorage AdvancedCommunication.OpenStorage MyOpenStorageCommandHandler = new cs_elbot.AdvancedCommunication.OpenStorage(MyHelpCommandHandler, MyTCPWrapper, MyMessageParser, MyMySqlManager, MyActorHandler, MyAdminHelpCommandHandler); //withdraw AdvancedCommunication.WithdrawCommandHandler MyWithdrawCommandHandler = new cs_elbot.AdvancedCommunication.WithdrawCommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyStorage, MyTradeHandler, MyStats, MyInventory); AdvancedCommunication.DepositCommandHandler MyDepositCommandHandler = new cs_elbot.AdvancedCommunication.DepositCommandHandler(MyTCPWrapper, MyMessageParser, MyAdvHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats, MyStorage); //gamble AdvancedCommunication.GAMBLECommandHandler MyGAMBLECommandHandler = new AdvancedCommunication.GAMBLECommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger, MyTradeHandler, MyInventory); AdvancedCommunication.PRIZECommandHandler MyPRIZECommandHandler = new AdvancedCommunication.PRIZECommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyInventory, MyTradeHandler, MyStats, MyLogger, MyActorHandler); //isonline command AdvancedCommunication.ISOnlineCommandHandler MyISOnlineCommandHandler = new AdvancedCommunication.ISOnlineCommandHandler(MyTCPWrapper, MyMessageParser, MyHelpCommandHandler, MyMySqlManager, MyLogger); //Guard bot code below if (botType == 3) { AdvancedCommunication.AssessThreat MyAssessThreat = new AdvancedCommunication.AssessThreat(MyTCPWrapper, MyMySqlManager, MyActorHandler); } Perks MyPerks = new Perks(MyTCPWrapper, MyLogger, MyMySqlManager); CLI MyCLI = new CLI(MyTCPWrapper, MyMessageParser); MyCLI.DoLoop(); } catch (System.Net.Sockets.SocketException se) { Console.WriteLine("Error in main loop: " + se.Message); if (se.ErrorCode == 11001) // Host name not found { Console.WriteLine("When this error occurs, check that you are connected to the internet and a firewall is not blocking this program."); } } catch (Exception except) { MyErrorHandler.writeErrorMessage("Exception in main loop: " + except); } finally { Console.ReadLine(); } }