public static void SyncItems(Client c) { List <Item> inventory = new List <Item>(); DatabaseAPI.API db = DatabaseAPI.API.GetInstance(); MySqlConnection conn = db.GetConnection(); Dictionary <int, int> dbItems = new Dictionary <int, int>(); MySqlCommand cmd = new MySqlCommand("SELECT item_id, amount FROM items WHERE character_id = @character_id", conn); cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id")); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { dbItems.Add(reader.GetInt32("item_id"), reader.GetInt32("amount")); } reader.Close(); db.FreeConnection(conn); foreach (KeyValuePair <int, int> entry in dbItems) { foreach (StaticItem itemData in itemList) { if (itemData.GetTypeId() == entry.Key) { inventory.Add(new Item(entry.Key, itemData.GetName(), itemData.GetCategory(), itemData.GetRarity(), itemData.GetVolume(), itemData.GetWeight(), entry.Value)); break; } } } c.SetData("inventory_items", inventory); }
private static void RemoveItemFromDb(Client c, int typeId) { DatabaseAPI.API db = DatabaseAPI.API.GetInstance(); MySqlConnection conn = db.GetConnection(); MySqlCommand cmd = new MySqlCommand("DELETE FROM items WHERE character_id = @character_id AND item_id = @item_id", conn); cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id")); cmd.Parameters.AddWithValue("@item_id", typeId); cmd.ExecuteNonQuery(); db.FreeConnection(conn); }
private static void UpdateItemInDb(Client c, int typeId, int amount) { DatabaseAPI.API db = DatabaseAPI.API.GetInstance(); MySqlConnection conn = db.GetConnection(); MySqlCommand cmd = new MySqlCommand("UPDATE items SET amount = @amount WHERE character_id = @character_id AND item_id = @item_id", conn); cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id")); cmd.Parameters.AddWithValue("@item_id", typeId); cmd.Parameters.AddWithValue("@amount", amount); cmd.ExecuteNonQuery(); db.FreeConnection(conn); }
private static void AddItemToDb(Client c, int typeId, int amount) { DatabaseAPI.API db = DatabaseAPI.API.GetInstance(); MySqlConnection conn = db.GetConnection(); MySqlCommand cmd = new MySqlCommand("INSERT INTO items (character_id, item_id, amount) VALUES (@character_id, @item_id, @amount)", conn); cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id")); cmd.Parameters.AddWithValue("@item_id", typeId); cmd.Parameters.AddWithValue("@amount", amount); cmd.ExecuteNonQuery(); db.FreeConnection(conn); }