Example #1
0
        private void OnShopRequestData([FromSource] Player player)
        {
            try
            {
                List <UserOutfit> userOutfits;
                m_userOutfits.TryGetValue(Convert.ToInt32(player.Handle), out userOutfits);

                if (userOutfits == null)
                {
                    return;
                }

                var outfits     = Cache.Outfits.Where(o => o.Enabled);
                var shopOutfits = new List <UserShopOutfit>();

                foreach (var outfit in outfits)
                {
                    var shopOutfit = new UserShopOutfit
                    {
                        id          = outfit.Id,
                        slug        = outfit.Name,
                        title       = outfit.Name,
                        owned       = false,
                        donator     = outfit.DonatorExclusive,
                        price       = outfit.Price,
                        xp          = outfit.RequiredXp,
                        description = outfit.Description,
                        image       = outfit.Image
                    };
                    shopOutfits.Add(shopOutfit);
                }

                foreach (var outfit in userOutfits)
                {
                    var toChange = shopOutfits.FirstOrDefault(so => so.id == outfit.OutfitId);
                    if (toChange != null)
                    {
                        toChange.owned = true;
                    }
                }

                player.TriggerEvent("update-outfits-data", JsonConvert.SerializeObject(shopOutfits));

                List <UserWeaponTint> userWeaponTints;
                m_userWeaponTints.TryGetValue(Convert.ToInt32(player.Handle), out userWeaponTints);

                if (userWeaponTints == null)
                {
                    userWeaponTints = new List <UserWeaponTint>();
                }
                var weaponTints     = Cache.WeaponTints.Where(o => o.Enabled);
                var shopWeaponTints = new List <UserShopWeaponTint>();

                foreach (var tint in weaponTints)
                {
                    var shopTint = new UserShopWeaponTint
                    {
                        id          = tint.Id,
                        slug        = tint.Name,
                        title       = tint.Name,
                        owned       = false,
                        donator     = tint.DonatorExclusive,
                        price       = tint.Price,
                        xp          = tint.RequiredXp,
                        description = tint.Description,
                        image       = tint.Image
                    };
                    shopWeaponTints.Add(shopTint);
                }

                foreach (var tint in userWeaponTints)
                {
                    var toChange = shopWeaponTints.FirstOrDefault(so => so.id == tint.WeaponTintId);
                    if (toChange != null)
                    {
                        toChange.owned = true;
                    }
                }

                player.TriggerEvent("update-weapontints-data", JsonConvert.SerializeObject(shopWeaponTints));

                var user = Cache.Users.FirstOrDefault(u => u.NetId == Convert.ToInt32(player.Handle));

                if (user == null)
                {
                    return;
                }

                var profile = new UserShopProfile
                {
                    money   = user.Money,
                    xp      = user.Xp,
                    donator = user.Donator
                };

                player.TriggerEvent("update-profile-data", JsonConvert.SerializeObject(profile));
            }
            catch (Exception ex)
            {
                m_logger.Exception("OnShopRequestData", ex);
            }
        }