public void AddOrIgnoreDetails(Auction a) { var id = NBT.ItemID(a.ItemBytes); if (id == null) { if (a.ItemName == "Revive Stone") { // known item, has no tag, nothing to do return; } Logger.Instance.Error($"item has no tag {JsonConvert.SerializeObject(a)}"); return; } var name = ItemReferences.RemoveReforgesAndLevel(a.ItemName); if (ToFillDetails.TryRemove(id, out DBItem i)) { Console.WriteLine("Filling details for " + i.Tag + i.Id); AddNewItem(a, name, id, i); return; } if (Items.ContainsKey(id)) { var tragetItem = Items[id]; if (tragetItem.AltNames == null) { tragetItem.AltNames = new HashSet <string>(); } // try to get shorter lore if (Items[id]?.Description?.Length > a?.ItemLore?.Length && a.ItemLore.Length > 10) { Items[id].Description = a.ItemLore; } tragetItem.AltNames.Add(name); return; } // legacy item names if (Items.ContainsKey(name)) { var item = Items[name]; item.Id = id; if (item.AltNames == null) { item.AltNames = new HashSet <string>(); } item.AltNames.Add(name); Items[id] = item; Items.Remove(name); return; } // new item, add it AddNewItem(a, name, id, i); }
public void LoadFromDB() { using (var context = new HypixelContext()) { var items = context.Items.Where(item => item.Description == null); foreach (var item in items) { ToFillDetails.TryAdd(item.Tag, item); } } LoadLookup(); }