public MasterServer() { SqlConnection = new MySQL_Connection(); HellEmissary = new HellEmissary((Int16)Constants.HellPort); ConnectionDispatcher = new ConnectionDispatcher((Int16)Constants.CDPPort); LobbyListener = new LobbyListener((Int16)Constants.LLPort); }
private void LoadDBConfig(string configFile) { var lines = File.ReadLines(configFile) .Select(l => l.Split(' ')) .Select(p => p.Length == 2 ? "" : p[2]) .ToList(); string Username = lines[0]; string Password = lines[1]; string Database = lines[2]; string Host = lines[3]; UsersDatabase = new MySQL_Connection(MasterThread.Instance, Username, Password, Database, Host); }
//Main Application Window #endregion #region Events private void Application_Startup(object sender, StartupEventArgs e) { //Assigns Connection = new MySQL_Connection(); //Read Saved Settings ReadSettings(); //Check Database Connection Connection.IsConnected = Connection.CheckDatabaseServer(); //Show Main Window ForceAdminLogin(); }
public static void Load(MySQL_Connection connection, string baseTableName, string whereStatement, AddItemCallback callback) { using (var data = connection.RunQuery($"SELECT * FROM {GetInventoryTableName(InventoryType.Eqp, baseTableName)} WHERE {whereStatement}") as MySqlDataReader) { while (data.Read()) { var item = BaseItem.CreateFromItemID(data.GetInt32("itemid")); item.Load(data); callback(InventoryType.Eqp, 1, data.GetInt16("slot"), item); } } using (var data = connection.RunQuery($"SELECT * FROM {GetInventoryTableName(InventoryType.Bundle, baseTableName)} WHERE {whereStatement}") as MySqlDataReader) { while (data.Read()) { var item = BaseItem.CreateFromItemID(data.GetInt32("itemid")); item.Load(data); callback(InventoryType.Bundle, (byte)data.GetInt16("inv"), data.GetInt16("slot"), item); } } }
public static void InitializeDB(MySQL_Connection characterDatabaseConnection) { _characterDatabaseConnection = characterDatabaseConnection; }
public static void Save(MySQL_Connection connection, string baseTableName, string columnsBeforeItemInfo, string whereStatement, StoredItemsCallback callback, MySQL_Connection.LogAction dbgCallback) { #region bundle connection.RunTransaction(comm => { var tableName = GetInventoryTableName(InventoryType.Bundle, baseTableName); comm.CommandText = $"DELETE FROM {tableName} WHERE {whereStatement}"; comm.ExecuteNonQuery(); var itemQuery = new StringBuilder(); bool firstrun = true; // Inventories for (byte inventory = 2; inventory <= 5; inventory++) { var items = callback(InventoryType.Bundle, inventory); foreach (var item in items) { if (!(item is BundleItem)) { continue; } if (firstrun) { itemQuery.Append($"INSERT INTO {tableName} VALUES ("); firstrun = false; } else { itemQuery.Append(", ("); } itemQuery.Append(columnsBeforeItemInfo); itemQuery.Append(inventory + ", "); itemQuery.Append(item.InventorySlot + ", "); itemQuery.Append(item.GetFullSaveColumns()); itemQuery.AppendLine(")"); } } if (itemQuery.Length == 0) { return; } comm.CommandText = itemQuery.ToString(); comm.ExecuteNonQuery(); }, dbgCallback); #endregion #region eqp connection.RunTransaction(comm => { var tableName = GetInventoryTableName(InventoryType.Eqp, baseTableName); comm.CommandText = $"DELETE FROM {tableName} WHERE {whereStatement}"; comm.ExecuteNonQuery(); var itemQuery = new StringBuilder(); bool firstrun = true; var equips = callback(InventoryType.Eqp, 1); foreach (var item in equips) { if (item == null) { continue; } if (firstrun) { itemQuery.Append($"INSERT INTO {tableName} VALUES ("); firstrun = false; } else { itemQuery.Append(", ("); } itemQuery.Append(columnsBeforeItemInfo); itemQuery.Append(item.InventorySlot + ", "); itemQuery.Append(item.GetFullSaveColumns()); itemQuery.AppendLine(")"); } if (itemQuery.Length == 0) { return; } comm.CommandText = itemQuery.ToString(); comm.ExecuteNonQuery(); }, dbgCallback); #endregion }