public async Task <int> GetActiveUserOutfit(int userId) { try { var sql = @"SELECT activeUserOutfit FROM users WHERE id=@userId"; using (var db = new DbConnection(m_connectionString)) { var oid = await db.Connection.ExecuteScalarAsync <int>(sql, new { userId = userId }); return(oid); } } catch (Exception ex) { m_logger.Exception("GetActiveUserWeaponTint", ex); return(0); } }
public async void OnPlayerReady([FromSource] Player player) { try { var licenseId = player.Identifiers["license"]; // 1. Check for cached user User user = null; if (Cache.Users.Count > 0) { user = Cache.Users.FirstOrDefault(x => x.LicenseId == licenseId); if (user != null) { user.NetId = Convert.ToInt32(player.Handle);; } } // 2. If no cached user if (user == null) { user = await _mysqlDb.GetUser(player); // 3. Still null so we create new user if (user == null) { user = await _mysqlDb.CreateNewUser(player); if (user == null) { player.Drop("Failed to load your profile, please try again. Contact an Administrator after 5 failed tries."); _logger.Info($"Failed to load profile for {player.Name} (IP: {player.EndPoint})"); return; } } user.NetId = Convert.ToInt32(player.Handle); Cache.Users.Add(user); } try { bool loadCommerce = false; if (API.CanPlayerStartCommerceSession(player.Handle)) { if (!API.IsPlayerCommerceInfoLoadedExt(player.Handle)) { API.LoadPlayerCommerceDataExt(player.Handle); var start = API.GetGameTimer(); var broke = false; while (!API.IsPlayerCommerceInfoLoadedExt(player.Handle)) { if (API.GetGameTimer() - start > 5000) { broke = true; break; } await Delay(100); } if (!broke) { loadCommerce = true; } } } await m_shopController.GetUserOutfits(user.Id, user.NetId, loadCommerce); await m_shopController.GetUserWeaponTints(user.Id, user.NetId, loadCommerce); // await m_shopController.GetUserGeneralItems(user.Id, user.NetId, loadCommerce); // m_shopController.ActivateGeneralItems(user.Id, user.NetId); } catch (Exception ex) { _logger.Exception("OnPlayerReady - ShopController stuff", ex); } try { var style = await m_shopController.GetActiveUserOutfit(player, user.ActiveUserOutfit, user.Id); if (user.ActiveUserOutfit == 0 && style != null) { user.ActiveUserOutfit = style.Id; } var tint = await m_shopController.GetActiveUserWeaponTint(player, user.ActiveUserWeaponTint, user.Id); if (user.ActiveUserWeaponTint == 0 && tint != null) { user.ActiveUserWeaponTint = tint.Id; } List <PedComponent> components = new List <PedComponent> { new PedComponent(1, 57, 0, 2), // Head new PedComponent(3, 41, 0, 2), // Torso new PedComponent(4, 98, 13, 2), // Legs new PedComponent(6, 71, 13, 2), // Feet new PedComponent(8, 15, 0, 2), // Accessoires new PedComponent(11, 251, 13, 2) // Torso2 }; int weaponTintIndex = 0; try { if (style != null) { var outfit = Cache.Outfits.FirstOrDefault(o => o.Id == style.OutfitId); if (outfit != null) { components = outfit.Components; } } if (tint != null) { var weaponTint = Cache.WeaponTints.FirstOrDefault(t => t.Id == tint.WeaponTintId); if (weaponTint != null) { weaponTintIndex = weaponTint.TintId; } } try { var clothingStyle = new ClothingStyle(1) { PedComponents = components, IsActiveStyle = true, User_id = user.Id }; TriggerEvent("gg_internal:playerReady", JsonConvert.SerializeObject(user), JsonConvert.SerializeObject(clothingStyle), weaponTintIndex); TriggerEvent("gg_internal:updateTags", user.NetId, user.Moderator, user.Donator, user.Xp); } catch (Exception) { Debug.WriteLine($"User ActiveUserOutfit? {user.ActiveUserOutfit} | Components? {components[0].ComponentId}"); } } catch (Exception) { Debug.WriteLine("ACTUALLY HERE"); } } catch (Exception ex) { _logger.Exception("OnPlayerReady - Sending playerReady -", ex); } try { var connection = Cache.Connections.FirstOrDefault(c => c.UserId == user.Id); if (connection == null) { connection = new Connection(user.Id, user.Endpoint); } var conn = await _mysqlDb.InsertConnection(connection); if (conn != null) { Cache.Connections.Add(conn); } } catch (Exception ex) { _logger.Exception("OnPlayerReady - Adding new connection -", ex); } } catch (Exception ex) { _logger.Exception("OnPlayerReady - Other -", ex); } _logger.Info($"[JOIN] [{player.Handle}] {player.Name} joined. (IP: {player.EndPoint})^7"); }