/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, int appFunctionId, int operations) { if (loginUser == null) { return(false); } if (loginUser != null && operations == 0 && appFunctionId == 0) { return(true); } bool returnValue = false; //// 判斷使用者是否具有可以存取功能的角色 var roles = from userRole in loginUser.AdminRoles where userRole.AdminBar.AdminBarId == appFunctionId && (userRole.AdminValue & operations) == operations select userRole; if (roles.Count() > 0) { returnValue = true; } return(returnValue); }
/// <summary> /// 驗證使用者,若通過驗證則完成簽入動作 /// </summary> /// <returns></returns> public bool ValidateUser() { IDictionary <string, string> conditions = new Dictionary <string, string>(); conditions.Add("Account", this.Account); IList <MasterMember> adminList = m_FTISService.GetMasterMemberListNoLazy(conditions); if (adminList != null && adminList.Count() > 0) { MasterMember admin = adminList[0]; string passwordDecrypt = EncryptUtil.GetMD5(Password); if (passwordDecrypt.Equals(admin.Password, StringComparison.OrdinalIgnoreCase)) { //modelUser = admin; FormsAuthentication.SetAuthCookie(this.Account, this.RememberMe); Ticket.SignIn(this.Account, this.RememberMe, 1); m_SessionHelper.LoginUser = admin; ////登入紀錄 MasterLog masterLog = new MasterLog(this.Account, HttpHelper.GetUserIp()); m_FTISService.CreateMasterLog(masterLog); return(true); } } return(false); }
public ActionResult Delete(int id) { AjaxResult result = new AjaxResult(); try { if (id.Equals(1)) { throw new Exception("admin不可刪除!"); } MasterMember entity = m_FTISService.GetMasterMemberById(id); m_FTISService.DeleteMasterMember(entity); result.ErrorCode = AjaxResultStatus.Success; result.Message = string.Format("{0}刪除成功", entity.Name); } catch (Exception ex) { result.ErrorCode = AjaxResultStatus.Exception; result.Message = ex.Message; } return(this.Json(result)); }
public void Init(MasterMember member) { if (member.IsValid() == false) { return; } //显示待审批成员 if (member.IsReserveMember() == false) { return; } m_MasterMember = member; if (m_NameLabel != null) { m_NameLabel.text = member.MemberName; } if (m_GuildNameLabel != null) { m_GuildNameLabel.text = member.GuildName; } if (m_LevelLabel != null) { m_LevelLabel.text = member.Level.ToString(); } if (m_ProfessionLabel != null) { m_ProfessionLabel.text = Utils.GetProfessionNameByType(member.Profession);//StrDictionary.GetClientDictionaryString("#{" + CharacterDefine.PROFESSION_DICNUM[member.Profession].ToString() + "}"); } if (m_CombatValueLabel != null) { m_CombatValueLabel.text = member.CombatValue.ToString(); } }
protected void LoadEntity(MasterMember entity) { if (entity != null) { EntityId = entity.MasterMemberId; Name = entity.Name; Account = entity.Account; Password = m_DefaultPass; Status = entity.Status; RegDate = entity.RegDate; Email = entity.Email; Tel = entity.Tel; Memo = entity.Memo; ////權限 RolesBarList1 = GetRolesBarList(entity, SiteEntities.Master); RolesBarList2 = GetRolesBarList(entity, SiteEntities.AboutUs); RolesBarList3 = GetRolesBarList(entity, SiteEntities.News); RolesBarList4 = GetRolesBarList(entity, SiteEntities.HomeNews); RolesBarList5 = GetRolesBarList(entity, SiteEntities.Activity); RolesBarList6 = GetRolesBarList(entity, SiteEntities.Member); RolesBarList7 = GetRolesBarList(entity, SiteEntities.Download); RolesBarList8 = GetRolesBarList(entity, SiteEntities.Norm); RolesBarList9 = GetRolesBarList(entity, SiteEntities.Carbon); RolesBarList10 = GetRolesBarList(entity, SiteEntities.Application); RolesBarList11 = GetRolesBarList(entity, SiteEntities.Grade); RolesBarList12 = GetRolesBarList(entity, SiteEntities.Question); RolesBarList13 = GetRolesBarList(entity, SiteEntities.Links); RolesBarList14 = GetRolesBarList(entity, SiteEntities.Epaper); RolesBarList15 = GetRolesBarList(entity, SiteEntities.Season); RolesBarList16 = GetRolesBarList(entity, SiteEntities.Examination); RolesBarList17 = GetRolesBarList(entity, SiteEntities.GreenFactory); } }
private string[] GetRolesBarList(MasterMember entity, SiteEntities siteEntities) { IList <string> list = new List <string>(); foreach (SiteOperations operation in Enum.GetValues(typeof(SiteOperations))) { if (operation == SiteOperations.None) { continue; } if (ACUtility.CheckAuthorization(entity, (int)siteEntities, (int)operation)) { list.Add(((int)operation).ToString()); } } if (list.Count > 0) { return(list.ToArray()); } else { return(new string[] { }); } }
public ActionResult MultiDelete(string allId) { AjaxResult result = new AjaxResult(AjaxResultStatus.Success, string.Empty); StringBuilder sbMsg = new StringBuilder(); string[] ids = allId.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string id in ids) { try { if ("1".Equals(id)) { throw new Exception("admin不可刪除!"); } MasterMember entity = m_FTISService.GetMasterMemberById(Convert.ToInt32(id)); m_FTISService.DeleteMasterMember(entity); } catch (Exception ex) { result.ErrorCode = AjaxResultStatus.Fail; sbMsg.AppendFormat(ex.Message + "<br/>"); } } result.Message = sbMsg.ToString(); return(this.Json(result)); }
/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, SiteEntities appFunction) { int appFunctionId = (int)appFunction; if (loginUser == null) { return(false); } if (loginUser != null && appFunctionId == 0) { return(true); } bool returnValue = false; //// 判斷使用者是否具有可以存取功能的角色,只要AdminValue大於0表示有此Menu var roles = from userRole in loginUser.AdminRoles where userRole.AdminBar.AdminBarId == appFunctionId && userRole.AdminValue > 0 select userRole; if (roles.Count() > 0) { returnValue = true; } return(returnValue); }
void OnLoadMasterReserveMemberItem(GameObject resItem, object param) { if (null == resItem) { LogModule.ErrorLog("load master reserve member item fail"); return; } Utils.CleanGrid(m_MasterReserveMemberGrid); //填充数据 int nMasterMemberItemIndex = 0; foreach (KeyValuePair <UInt64, MasterMember> info in GameManager.gameManager.PlayerDataPool.MasterInfo.MasterReserveMemberList) { MasterMember member = info.Value; if (member.IsValid() && member.IsReserveMember() == true) { GameObject newMasterMemberItem = Utils.BindObjToParent(resItem, m_MasterReserveMemberGrid, nMasterMemberItemIndex.ToString()); if (null != newMasterMemberItem && null != newMasterMemberItem.GetComponent <MasterReserveMemberItemLogic>()) { newMasterMemberItem.GetComponent <MasterReserveMemberItemLogic>().Init(member); } nMasterMemberItemIndex++; } } //Grid排序,防止列表异常 m_MasterReserveMemberGrid.GetComponent <UIGrid>().Reposition(); m_MasterReserveMemberGrid.GetComponent <UITopGrid>().Recenter(true); }
public void SendMasterList(WorldClient pClient) { if (pClient.Character.MasterList.Count == 0) { return; } using (var packet = new Packet(SH37Type.SendMasterList)) { MasterMember Master = pClient.Character.MasterList.Find(d => d.IsMaster == true); if (Master != null) { int nowyear = (Master.RegisterDate.Year - 1920 << 1) | Convert.ToByte(Master.IsOnline); int nowmonth = (Master.RegisterDate.Month << 4) | 0x0F; packet.WriteString(Master.pMemberName, 16); packet.WriteByte((byte)nowyear); packet.WriteByte((byte)nowmonth); packet.WriteByte((byte)DateTime.Now.Day); packet.WriteByte(0x01); //unk packet.WriteByte(Master.Level); packet.WriteByte(0); //unk packet.WriteByte(0x03); //unk int count = pClient.Character.MasterList.Count - 1; packet.WriteUShort((ushort)count); } else { DateTime now = DateTime.Now; int nowyear = (now.Year - 1920 << 1) | 1; int nowmonth = (now.Month << 4) | 0x0F; packet.WriteString("", 16); packet.WriteByte((byte)nowyear); packet.WriteByte((byte)nowmonth); packet.WriteByte((byte)now.Day); packet.WriteByte(0x01); //unk packet.WriteByte(1); packet.WriteByte(0); //unk packet.WriteByte(0x03); //unk packet.WriteUShort((ushort)pClient.Character.MasterList.Count); //tODO when master null } foreach (var Member in pClient.Character.MasterList) { packet.WriteString(Member.pMemberName, 16); int year = (Member.RegisterDate.Year - 1920 << 1) | Convert.ToUInt16(Member.IsOnline); int month = (Member.RegisterDate.Month << 4) | 0x0F; packet.WriteByte((byte)year); packet.WriteByte((byte)month); packet.WriteByte(0xB9); packet.WriteByte(0x11); //unk packet.WriteByte(Member.Level); packet.WriteByte(0); //unk } pClient.SendPacket(packet); } }
public bool CheckLoginId(string account) { bool result = true; MasterMember masterMember = m_FTISService.GetMasterMemberByAccount(account); if (masterMember == null) { result = false; } return(result); }
public void Test_MasterMemberPassword() { //查詢 IDictionary <string, string> conditions = new Dictionary <string, string>(); conditions.Add("Account", "admin"); IList <MasterMember> adminList = m_FTISService.GetMasterMemberListNoLazy(conditions); MasterMember admin = adminList[0]; string password = admin.Password; string md5 = EncryptUtil.GetMD5("01801726"); Assert.IsTrue(password.Equals(md5, StringComparison.OrdinalIgnoreCase)); }
public void ApprenticeLevelUP(WorldCharacter pChar) { MasterMember pMember = pChar.MasterList.Find(d => d.IsMaster == true); if (pMember != null) { //Todo Add Break if the difference is greater than 5 AddApprenticeReward(pChar); MasterMember.UpdateLevel(pChar.Character.CharLevel, pChar.Character.Name); if (pMember.pMember.Character.Client != null) { SendApprenticeLevelUp(pMember.pMember, pChar.Character.Name, pChar.Character.CharLevel); } } }
public void RemoveMasterMember(WorldCharacter pChar, string name) { MasterMember pMember = pChar.MasterList.Find(d => d.pMemberName == name); WorldClient pClient = ClientManager.Instance.GetClientByCharname(name); if (pClient != null) { SendApprenticeRemoveMaster(pClient, pMember.pMemberName); pClient.Character.MasterList.Remove(pMember); } pMember.RemoveFromDatabase(); pMember.RemoveFromDatabase(pChar.Character.ID, pMember.pMemberName); pChar.MasterList.Remove(pMember); pChar.UpdateMasterJoin(); }
public void RemoveMasterMember(WorldClient pClient) { MasterMember pMember = pClient.Character.MasterList.Find(d => d.IsMaster == true); if (pMember != null) { SendApprenticeRemoveMaster(pMember.pMember, pClient.Character.Character.Name); MasterMember Memb = pMember.pMember.Character.MasterList.Find(d => d.pMemberName == pClient.Character.Character.Name); pMember.pMember.Character.MasterList.Remove(Memb); } pMember.RemoveFromDatabase(); pMember.RemoveFromDatabase(pMember.MasterID, pClient.Character.Character.Name); pClient.Character.MasterList.Remove(pMember); pClient.Character.UpdateMasterJoin(); SendMasterRemoveResponse(pClient); }
private void Save(MasterMember entity) { entity.MasterMemberId = EntityId; entity.Name = Name; entity.Account = Account; ////因為密碼加密,Load時會給一個m_DefaultPass,存檔時要不同才會去修改密碼 if (!m_DefaultPass.Equals(Password)) { entity.Password = EncryptUtil.GetMD5(Password); } entity.Status = Status; entity.Email = Email; entity.Tel = Tel; entity.Memo = Memo; ////權限 foreach (AdminRole role in entity.AdminRoles) { if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.Grade)) { continue; } role.AdminValue = SetRolesAdminValue(role.AdminBar.AdminBarId); } if (entity.MasterMemberId == 0) { entity.RegDate = DateTime.Now; m_FTISService.CreateMasterMember(entity); } else { m_FTISService.UpdateMasterMember(entity); } ////重新取得user LoginUserContainer.GetInstance().InitMember(this.Account); LoadEntity(entity.MasterMemberId); }
public async Task <ActionResult> Delete(MasterMember model) { try { MemberRepository Repository = new MemberRepository(); var result = await Repository.DeleteMember(model.MemberId); if (result == true) { return(await GetList()); } else { return(View(result)); } } catch { return(View(false)); } }
public void MasterRequestAccept(string requestername, string TargetName) { WorldClient target = ClientManager.Instance.GetClientByCharname(TargetName); WorldClient requester = ClientManager.Instance.GetClientByCharname(requestername); MasterRequestResponse Reponse = new MasterRequestResponse(target, requester); if (Reponse.responseAnswer) { MasterMember ReqMember = new MasterMember(requester,target.Character.ID); MasterMember TargetM = new MasterMember(target,requester.Character.ID); target.Character.MasterList.Add(ReqMember); requester.Character.MasterList.Add(TargetM); ReqMember.AddToDatabase(); TargetM.IsMaster = true; TargetM.AddToDatabase(); SendMasterRequestAccept(requester, TargetName); } else { MasterRequest rRequest = pMasterRequests.Find(d => d.InvitedClient == requester); this.pMasterRequests.Remove(rRequest); } }
public void MasterRequestAccept(string requesterName, string targetName) { var target = ClientManager.Instance.GetClientByCharname(targetName); var requester = ClientManager.Instance.GetClientByCharname(requesterName); var response = new MasterRequestResponse(target, requester); if (response.ResponseAnswer) { var reqMember = new MasterMember(requester, target.Character.ID); var targetM = new MasterMember(target, requester.Character.ID); target.Character.MasterList.Add(reqMember); requester.Character.MasterList.Add(targetM); reqMember.AddToDatabase(); targetM.IsMaster = true; targetM.AddToDatabase(); SendMasterRequestAccept(requester, targetName); } else { var rRequest = _pMasterRequests.Find(d => Equals(d.InvitedClient, requester)); _pMasterRequests.Remove(rRequest); } }
public void MasterRequestAccept(string requestername, string TargetName) { WorldClient target = ClientManager.Instance.GetClientByCharname(TargetName); WorldClient requester = ClientManager.Instance.GetClientByCharname(requestername); MasterRequestResponse Reponse = new MasterRequestResponse(target, requester); if (Reponse.responseAnswer) { MasterMember ReqMember = new MasterMember(requester, target.Character.ID); MasterMember TargetM = new MasterMember(target, requester.Character.ID); target.Character.MasterList.Add(ReqMember); requester.Character.MasterList.Add(TargetM); ReqMember.AddToDatabase(); TargetM.IsMaster = true; TargetM.AddToDatabase(); SendMasterRequestAccept(requester, TargetName); } else { MasterRequest rRequest = pMasterRequests.Find(d => d.InvitedClient == requester); this.pMasterRequests.Remove(rRequest); } }
/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, SiteEntities appFunction, SiteOperations operation) { return(CheckAuthorization(loginUser, (int)appFunction, (int)operation)); }
public void Test_MasterMember() { //新增 MasterMember masterMember = m_FTISService.MakeMasterMember(); masterMember.Account = "dadaTest"; masterMember.Password = "******"; masterMember.RegDate = DateTime.Now; masterMember.Memo = "memo"; masterMember.Status = "1"; masterMember.Tel = "12345678"; masterMember.Email = "*****@*****.**"; masterMember.Name = "dada12345"; foreach (AdminRole role in masterMember.AdminRoles) { int adminValue = 15; ////預設全部權限 ////特別幾個功能給不一樣的權限 if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.AboutUs)) { adminValue = (int)SiteOperations.Read; } if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.Activity)) { adminValue = (int)SiteOperations.Create; } if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.Application)) { adminValue = (int)SiteOperations.Edit; } if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.Download)) { adminValue = (int)SiteOperations.Delete; } role.AdminValue = adminValue; } m_FTISService.CreateMasterMember(masterMember); //查詢 IDictionary <string, string> conditions = new Dictionary <string, string>(); IList <MasterMember> adminList = m_FTISService.GetMasterMemberListNoLazy(conditions); Assert.AreEqual(9, adminList.Count); foreach (MasterMember admin in adminList) { foreach (AdminRole role in admin.AdminRoles) { int value = role.AdminValue; } } //檢查權限 try { Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.AboutUs, (int)SiteOperations.Read)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.AboutUs, (int)SiteOperations.Create)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.AboutUs, (int)SiteOperations.Edit)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.AboutUs, (int)SiteOperations.Delete)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Activity, (int)SiteOperations.Read)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Activity, (int)SiteOperations.Create)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Activity, (int)SiteOperations.Edit)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Activity, (int)SiteOperations.Delete)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Application, (int)SiteOperations.Read)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Application, (int)SiteOperations.Create)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Application, (int)SiteOperations.Edit)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Application, (int)SiteOperations.Delete)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Download, (int)SiteOperations.Read)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Download, (int)SiteOperations.Create)); Assert.IsFalse(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Download, (int)SiteOperations.Edit)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Download, (int)SiteOperations.Delete)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Grade, (int)SiteOperations.Read)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.News, (int)SiteOperations.Create)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Question, (int)SiteOperations.Edit)); Assert.IsTrue(ACUtility.CheckAuthorization(masterMember, (int)SiteEntities.Season, (int)SiteOperations.Delete)); } catch (Exception ex) { Console.WriteLine(ex); } //刪除 m_FTISService.DeleteMasterMember(masterMember); }
public void Insert() { MasterMember entity = m_FTISService.MakeMasterMember(); Save(entity); }
public void Update() { MasterMember entity = m_FTISService.GetMasterMemberByIdNoLazy(EntityId); Save(entity); }
protected void LoadEntity(int id) { MasterMember entity = m_FTISService.GetMasterMemberByIdNoLazy(id); LoadEntity(entity); }
public void UpdateSpeakers() { if (m_ChatInfoLogic == null) { return; } if (m_LastSpeakerItem == null) { return; } Utils.CleanGrid(m_LastSpeakersGrid); m_LastSpeakersList.Clear(); switch (m_ChatInfoLogic.CurChannelType) { case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_WORLD: { List <ChatHistoryItem> historyList = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList; for (int i = 0; i < historyList.Count; ++i) { AddLastSpeakers(historyList[i]); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_TELL: { List <LastSpeaker> tellList = GameManager.gameManager.PlayerDataPool.TellChatSpeakers.LastSpeakerList; for (int i = 0; i < tellList.Count; i++) { AddNewLastSpeaker(tellList[i].Guid, tellList[i].Name); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_NORMAL: { foreach (KeyValuePair <string, Obj> objPair in Singleton <ObjManager> .Instance.ObjPools) { if (objPair.Value.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer objPlayer = objPair.Value as Obj_OtherPlayer; if (objPlayer != null) { AddNewLastSpeaker(objPlayer.GUID, objPlayer.BaseAttr.RoleName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_TEAM: { if (GameManager.gameManager.PlayerDataPool.IsHaveTeam()) { for (int i = 0; i < GlobeVar.MAX_TEAM_MEMBER; i++) { TeamMember member = GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(i); if (member != null && member.IsValid() && member.Guid != Singleton <ObjManager> .Instance.MainPlayer.GUID) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_GUILD: { if (GameManager.gameManager.PlayerDataPool.IsHaveGuild()) { m_GuildMemberSpeak.Clear(); // 帮会频道先加载最近说过话的 再加载剩下的 List <ChatHistoryItem> historyList = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList; for (int i = 0; i < historyList.Count; ++i) { if (historyList[i].EChannel == GC_CHAT.CHATTYPE.CHAT_TYPE_GUILD && m_LastSpeakersGrid != null && historyList[i].SenderGuid != GlobeVar.INVALID_GUID && historyList[i].SenderName != "") { if (false == m_GuildMemberSpeak.Contains(historyList[i].SenderGuid)) { AddNewLastSpeaker(historyList[i].SenderGuid, historyList[i].SenderName); m_GuildMemberSpeak.Add(historyList[i].SenderGuid); } } } foreach (KeyValuePair <UInt64, GuildMember> memberPair in GameManager.gameManager.PlayerDataPool.GuildInfo.GuildMemberList) { GuildMember member = memberPair.Value; if (member.Guid != GlobeVar.INVALID_GUID && member.Job != (int)Games.GlobeDefine.GameDefine_Globe.GUILD_JOB.RESERVE && false == m_GuildMemberSpeak.Contains(member.Guid)) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_MASTER: { if (GameManager.gameManager.PlayerDataPool.IsHaveMaster()) { foreach (KeyValuePair <UInt64, MasterMember> memberPair in GameManager.gameManager.PlayerDataPool.MasterInfo.MasterMemberList) { MasterMember member = memberPair.Value; if (member.Guid != GlobeVar.INVALID_GUID && !member.IsReserveMember()) { AddNewLastSpeaker(member.Guid, member.MemberName); } } } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_FRIEND: { GameObject lastitem = null; // 两次循环 先加载不在未阅读好友列表的 再加载在的 保证有未阅读消息的好友在左侧列表最上方 foreach (KeyValuePair <UInt64, Relation> _relation in GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList) { if (!GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList.Contains(_relation.Key)) { lastitem = AddNewLastSpeaker(_relation.Key, _relation.Value.Name); } } for (int i = GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList.Count - 1; i >= 0; i--) { UInt64 senderGuid = GameManager.gameManager.PlayerDataPool.ChatHistory.FriendSendList[i]; if (GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList.ContainsKey(senderGuid)) { string senderName = GameManager.gameManager.PlayerDataPool.FriendList.RelationDataList[senderGuid].Name; lastitem = AddNewLastSpeaker(senderGuid, senderName); } } if (lastitem != null && lastitem.GetComponent <LastSpeakerItemLogic>() != null) { lastitem.GetComponent <LastSpeakerItemLogic>().ChooseSpeaker(); } } break; case ChatInfoLogic.CHANNEL_TYPE.CHAT_TYPE_SYSTEM: break; } }
public void UpdateData(GC_MASTER_RET_INFO info) { //清空之前的数据 CleanUp(); //判断消息包数据合法性 if (info == null || info.MasterGuid == GlobeVar.INVALID_GUID) { return; } //填充数据 MasterGuid = info.MasterGuid; MasterName = info.MasterName; MasterChiefGuid = info.MasterChiefGuid; MasterTorch = info.MasterTorch; MasterNotice = info.MasterNotice; MasterOnlineNum = info.MemberNum; m_MasterCreateTime = info.CreateTime; //技能 if (info.Masterskill1 >= 0) { m_MasterSkillList.Add(info.Masterskill1, info.Masterskillname1); } if (info.Masterskill2 >= 0) { m_MasterSkillList.Add(info.Masterskill2, info.Masterskillname2); } if (info.Masterskill3 >= 0) { m_MasterSkillList.Add(info.Masterskill3, info.Masterskillname3); } if (info.Masterskill4 >= 0) { m_MasterSkillList.Add(info.Masterskill4, info.Masterskillname4); } if (info.Masterskill5 >= 0) { m_MasterSkillList.Add(info.Masterskill5, info.Masterskillname5); } if (info.Masterskill6 >= 0) { m_MasterSkillList.Add(info.Masterskill6, info.Masterskillname6); } //成员 for (int i = 0; i < info.memberGuidCount; ++i) { MasterMember member = new MasterMember(); member.CleanUp(); member.Guid = info.GetMemberGuid(i); if (info.memberNameCount > i) { member.MemberName = info.GetMemberName(i); } if (info.memberVIPCount > i) { member.VIP = info.GetMemberVIP(i); } if (info.memberGuildNameCount > i) { member.GuildName = info.GetMemberGuildName(i); } if (info.memberLevelCount > i) { member.Level = info.GetMemberLevel(i); } if (info.memberCombatValueCount > i) { member.CombatValue = info.GetMemberCombatValue(i); } if (info.memberTorchCount > i) { member.Torch = info.GetMemberTorch(i); } if (info.memberLastLoginCount > i) { member.LastLogin = info.GetMemberLastLogin(i); } if (info.memberProfCount > i) { member.Profession = info.GetMemberProf(i); } if (info.memberStateCount > i) { member.State = info.GetMemberState(i); } if (info.memberIsReserveCount > i) { member.IsReserve = info.GetMemberIsReserve(i); } if (member.Guid == m_MasterChiefGuid) { //掌门姓名 m_MasterChiefName = member.MemberName; } if (member.IsValid()) { if (member.IsReserveMember()) { MasterReserveMemberList.Add(member.Guid, member); } else { MasterMemberList.Add(member.Guid, member); } } } m_MasterMemberNum = MasterMemberList.Count; //按照薪火排序 SortMemberListByTorch(m_MasterMemberList); if (ChatInfoLogic.Instance() != null) { ChatInfoLogic.Instance().UpdateMasterChannel(); ChatInfoLogic.Instance().UpdateSpeakerList_Master(); } }
public void Init(MasterMember member) { if (member.IsValid() == false) { return; } //显示正式成员 if (member.IsReserveMember()) { return; } m_MasterMember = member; if (m_NameLabel != null) { m_NameLabel.text = member.MemberName; } if (m_GuildNameLabel != null) { if (member.GuildName != null && member.GuildName != "") { m_GuildNameLabel.text = member.GuildName; } else { //m_GuildNameLabel.text = "无"; m_GuildNameLabel.text = StrDictionary.GetClientDictionaryString("#{2865}"); } } if (m_LevelLabel != null) { m_LevelLabel.text = member.Level.ToString(); } if (m_ProfessionLabel != null) { m_ProfessionLabel.text = Utils.GetProfessionNameByType(member.Profession);//StrDictionary.GetClientDictionaryString("#{" + CharacterDefine.PROFESSION_DICNUM[member.Profession].ToString() + "}"); } if (m_CombatValueLabel != null) { m_CombatValueLabel.text = member.CombatValue.ToString(); } if (m_OffLineTimeLable != null) { //member.LastLogin为1970年1月1日至今的标准时间,需要转换为时分秒 if (member.State == 1) { //在线,显示在线 //m_OffLineTimeLable.text = "在线"; m_OffLineTimeLable.text = StrDictionary.GetClientDictionaryString("#{2866}"); } else { DateTime startTime = new DateTime(1970, 1, 1); DateTime sendDate = new DateTime((long)member.LastLogin * 10000000L + startTime.Ticks, DateTimeKind.Unspecified); sendDate = sendDate.ToLocalTime(); if (DateTime.Now.Subtract(sendDate).Days < 1) { m_OffLineTimeLable.text = sendDate.ToString("HH:mm"); } else { m_OffLineTimeLable.text = sendDate.ToString("MM-dd"); } } } }