Example #1
0
        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);
        }
Example #2
0
 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();
 }