Пример #1
0
        private void OnItemCraft(ItemCrafterStartEvent craftEvent)
        {
            #region Checks
            if (craftEvent == null)
            {
                return;
            }
            if (craftEvent.Cancelled)
            {
                return;
            }
            if (craftEvent.Entity == null)
            {
                return;
            }
            #endregion

            var amount = craftEvent.Crafter.QuantityEstimated;
            var name   = craftEvent.Crafter.Product.Name;
            if (name.EqualsIgnoreCase("Charcoal") && amount > 1000000)
            {
                return;
            }
            var time     = craftEvent.Crafter.Duration;
            var security = craftEvent.Entity.TryGet <ISecurable>();
            if (security == null)
            {
                if (!craftEvent.Entity.IsPlayer)
                {
                    return;
                }
                var player = craftEvent.Entity.Owner;
                PlayerCraftingData data;
                if (!Data.PlayerCraftingData.TryGetValue(player.Id, out data))
                {
                    data = new PlayerCraftingData();
                    Data.Add(craftEvent.Entity.OwnerId, data);
                }

                data.SetCrafting(player.Id, amount, name, time);
            }
            else
            {
                var objectGUID = security.ObjectGUID;
                StationCraftingData data;
                if (!Data.StationCraftingData.TryGetValue(objectGUID, out data))
                {
                    data = new StationCraftingData(craftEvent.Entity.name);
                    Data.Add(objectGUID, data);
                }

                data.SetCrafting(amount, name, time);
            }

            SaveData();
        }
Пример #2
0
 public void Remove(ulong playerId)
 {
     PlayerCraftingData.Remove(playerId);
 }
Пример #3
0
 public void Add(ulong playerId, PlayerCraftingData data)
 {
     PlayerCraftingData.Add(playerId, data);
 }
Пример #4
0
 public void Reset()
 {
     PlayerCraftingData.Clear();
     StationCraftingData.Clear();
 }