public async void Login(Client sender, string username, string password) { Master masterAccount; if (username.Contains("@")) { masterAccount = await MasterRepository.GetMasterDataByEmail(username); } else { masterAccount = await MasterRepository.GetMasterDataByName(username); } if (masterAccount != null) { if (Crypter.CheckPassword(password, masterAccount.Password)) { string[] charNames = new string[5]; List <string> charImgs = new List <string>() { "", "", "", "", "" }; string[] factions = new string[5]; masterAccount.Players = await PlayerRepository.GetAllPlayerDataByMasterAccount(masterAccount); masterAccount.Client = sender; int count = 0; foreach (Player p in masterAccount.Players) { charNames[count] = p.Username.Roleplay(); charImgs[count] = p.Skin == 797459875 ? Images.SkinBlobs[p.Skin] : ""; if (p.FactionId != 0) { factions[count] = $"{FactionRepository.GetFactionById(p.FactionId).Name}<br/>{RankRepository.GetRankByFactionAndId(p.FactionId, p.FactionRank).Title}"; } else { factions[count] = "Civilian"; } count++; } Master.MasterData.Add(masterAccount); API.triggerClientEvent(sender, "playerLogResult", "success", masterAccount.Players.Count, string.Join(",", charNames), string.Join(",", factions), string.Join(".", charImgs)); masterAccount.LatestLogin = Server.Date; masterAccount.LatestIP = sender.address; masterAccount.ActiveConnectionLog = new ConnectionLog(masterAccount.Id, -1, API.getPlayerAddress(sender)); ConnectionLogRepository.AddNew(masterAccount.ActiveConnectionLog); MasterRepository.UpdateAsync(masterAccount); masterAccount.AdminLevel = 6; } else { API.triggerClientEvent(sender, "playerLogResult", "incorrect-pass"); API.SendErrorNotification(sender, "You have entered an incorrect password"); } } else { API.triggerClientEvent(sender, "playerLogResult", "invalid-user"); API.SendErrorNotification(sender, "You have entered an invalid username"); } }
private async void CompleteCharCreation(Client sender) { Master master = Master.MasterData.Single(me => me.Client == sender); if (master.CreatingCharacter == null) { return; } Player newChar = new Player { Username = master.CreatingCharacter.Username.Replace(" ", "_"), Level = 0, Health = 100, Armour = 0, FactionId = 0, FactionRank = 0, WeaponSkillData = "0,0,0,0,0,0,0,0", DateOfBirth = master.CreatingCharacter.DateOfBirth, Gender = master.CreatingCharacter.Gender, MasterAccount = master, MasterId = master.Id, Dimension = 0, TestDriveBan = false, Client = sender, LastPosition = new Vector3(-697.0174, 5803.262, 17.33096), LastRotation = new Vector3(0, 0, 63.30323) }; List <int> AvailableSkins = new List <int>(); AvailableSkins = GetAvailableSkins(master); int[] compIds = new int[12]; int[] textureIds = new int[12]; int[] drawableIds = new int[12]; for (int i = 0; i < 12; i++) { textureIds[i] = API.fetchNativeFromPlayer <int>(sender, Hash.GET_PED_TEXTURE_VARIATION, sender, i); drawableIds[i] = API.fetchNativeFromPlayer <int>(sender, Hash.GET_PED_DRAWABLE_VARIATION, sender, i); } Skin newSkin = new Skin { Model = AvailableSkins[master.CreatingCharacter.CurrentSkinIndex], TextureIds = string.Join(",", textureIds), DrawableIds = string.Join(",", drawableIds), OwnerId = PlayerRepository.AddNewPlayer(newChar) }; Master.MasterData.Single(me => me.Client == sender).Players = await PlayerRepository.GetAllPlayerDataByMasterAccount(master); Master.MasterData.Single(me => me.Client == sender).CreatingCharacter = null; newChar.Skin = SkinRepository.AddNewSkin(newSkin); PlayerRepository.UpdateAsync(newChar); PlayerInit(newChar); sender.FadeOutIn(200, 1300); API.triggerClientEvent(sender, "onCharCreated"); }