using System.Collections.Generic; using GFGGame; using ET; namespace ET { //推送好友每日重置 public class NoticeFriendDailyReset : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeFriendDailyReset message) { FriendSProxy.ReqAllFriendInfos().Coroutine(); await ETTask.CompletedTask; } } //推送其他玩家信息变化 public class NoticeRoleInfoChanged : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeFriendInfo message) { RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = message.RoleInfo.RoleId; roleInfo.roleLv = message.RoleInfo.RoleLvl; roleInfo.roleName = message.RoleInfo.RoleName; roleInfo.offlineTimeSec = message.RoleInfo.OfflineTimeSec; FriendDataManager.Instance.ChangeFriendInfo(roleInfo); EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); await ETTask.CompletedTask; } } //推送申请添加好友信息 public class NoticeApplyForFriend : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeApplyForFriend message) { List applyDatas = FriendDataManager.Instance.ApplyDatas; bool isSame = false; for (int i = applyDatas.Count - 1; i >= 0; i--) { if (applyDatas[i].roleInfo.roleId == message.FriendInfo.RoleInfo.RoleId) { isSame = true; break; } } if (isSame) return; RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = message.FriendInfo.RoleInfo.RoleId; roleInfo.roleName = message.FriendInfo.RoleInfo.RoleName; roleInfo.roleLv = message.FriendInfo.RoleInfo.RoleLvl; roleInfo.offlineTimeSec = message.FriendInfo.RoleInfo.OfflineTimeSec; FriendInfoData friendInfo = new FriendInfoData(); friendInfo.roleInfo = roleInfo; friendInfo.type = message.FriendInfo.Type; friendInfo.giveGiftState = message.FriendInfo.GiveGiftState; friendInfo.takeGiftState = message.FriendInfo.TakeGiftState; FriendDataManager.Instance.AddApplyData(friendInfo); EventAgent.DispatchEvent(ConstMessage.FRIEND_APPLY_CHANGE); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); await ETTask.CompletedTask; } } //推送新增好友 public class NoticeAddFriends : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeAddFriends message) { for (int i = 0; i < message.FriendList.Count; i++) { RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = message.FriendList[i].RoleInfo.RoleId; roleInfo.roleName = message.FriendList[i].RoleInfo.RoleName; roleInfo.roleLv = message.FriendList[i].RoleInfo.RoleLvl; roleInfo.offlineTimeSec = message.FriendList[i].RoleInfo.OfflineTimeSec; FriendInfoData friendInfo = new FriendInfoData(); friendInfo.roleInfo = roleInfo; friendInfo.type = message.FriendList[i].Type; friendInfo.giveGiftState = message.FriendList[i].GiveGiftState; friendInfo.takeGiftState = message.FriendList[i].TakeGiftState; FriendDataManager.Instance.AddFriend(friendInfo); FriendDataManager.Instance.RemoveApplyData(message.FriendList[i].RoleInfo.RoleId); } EventAgent.DispatchEvent(ConstMessage.FRIEND_ADD); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); await ETTask.CompletedTask; } } //推送删除好友 public class NoticeDeleteFriend : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeDeleteFriend message) { FriendDataManager.Instance.RemoveFriend(message.FriendId); EventAgent.DispatchEvent(ConstMessage.FRIEND_REMOVE); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); await ETTask.CompletedTask; } } //推送领取赠送状态 public class NoticeTakeGiftStates : AMHandler { protected override async ETTask Run(Session session, S2C_NoticeTakeGiftStates message) { FriendDataManager.Instance.ChangeTakeGiftStates(message.FriendId, message.TakeGiftState); EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); await ETTask.CompletedTask; } } } namespace GFGGame { public static class FriendSProxy { //请求所有好友信息 public static async ETTask ReqAllFriendInfos() { S2C_GetAllFriendInfos response = null; response = (S2C_GetAllFriendInfos)await MessageHelper.SendToServer(new C2S_GetAllFriendInfos()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ClearAddFriend(); for (int i = 0; i < response.FriendList.Count; i++) { RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = response.FriendList[i].RoleInfo.RoleId; roleInfo.roleName = response.FriendList[i].RoleInfo.RoleName; roleInfo.roleLv = response.FriendList[i].RoleInfo.RoleLvl; roleInfo.offlineTimeSec = response.FriendList[i].RoleInfo.OfflineTimeSec; FriendInfoData friendInfo = new FriendInfoData(); friendInfo.roleInfo = roleInfo; friendInfo.type = response.FriendList[i].Type; friendInfo.giveGiftState = response.FriendList[i].GiveGiftState; friendInfo.takeGiftState = response.FriendList[i].TakeGiftState; if (response.FriendList[i].Type == FriendType.Good) { FriendDataManager.Instance.AddFriend(friendInfo); } else if (response.FriendList[i].Type == FriendType.Apply) { FriendDataManager.Instance.AddApplyData(friendInfo); } } EventAgent.DispatchEvent(ConstMessage.FRIEND_ADD); return true; } } return false; } //赠送 public static async ETTask ReqGiveGiftToFriend(long friendId) { S2C_GiveGiftToFriend response = null; response = (S2C_GiveGiftToFriend)await MessageHelper.SendToServer(new C2S_GiveGiftToFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ChangeGiveGiftStates(response.FriendId, response.GiveGiftState); PromptController.Instance.ShowFloatTextPrompt(string.Format("赠送好友体力*{0}", GlobalCfgArray.globalCfg.onceGivePowerCount)); EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); return true; } } return false; } //一键赠送 public static async ETTask ReqGiveGiftToAllFriend() { S2C_GiveGiftToAllFriends response = null; response = (S2C_GiveGiftToAllFriends)await MessageHelper.SendToServer(new C2S_GiveGiftToAllFriends()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { for (int i = 0; i < response.FriendIds.Count; i++) { FriendDataManager.Instance.ChangeGiveGiftStates(response.FriendIds[i], response.GiveGiftStates[i]); } if (response.FriendIds.Count > 0) { PromptController.Instance.ShowFloatTextPrompt(string.Format("送出{0}份体力", response.FriendIds.Count)); } else { PromptController.Instance.ShowFloatTextPrompt("无好友可赠送体力"); } EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); return true; } } return false; } //领取并赠送赠送 public static async ETTask ReqTakeGiftFromFriend(long friendId) { S2C_TakeGiftFromFriend response = null; response = (S2C_TakeGiftFromFriend)await MessageHelper.SendToServer(new C2S_TakeGiftFromFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ChangeGiveTakeGiftStates(response.FriendId, response.GiveGiftState, response.TakeGiftState); PromptController.Instance.ShowFloatTextPrompt(string.Format("领取成功,获得体力*{0}", GlobalCfgArray.globalCfg.onceGivePowerCount)); EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return true; } } return false; } //一键领取并赠送 public static async ETTask ReqTakeGiftFromAllFriend() { S2C_TakeGiftFromAllFriend response = null; response = (S2C_TakeGiftFromAllFriend)await MessageHelper.SendToServer(new C2S_TakeGiftFromAllFriend()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { for (int i = 0; i < response.FriendIds.Count; i++) { FriendDataManager.Instance.ChangeGiveTakeGiftStates(response.FriendIds[i], response.GiveGiftStates[i], response.TakeGiftStates[i]); } if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount) { PromptController.Instance.ShowFloatTextPrompt("今日体力已全部领取"); } else { PromptController.Instance.ShowFloatTextPrompt(string.Format("已领取{0}体力", response.FriendIds.Count * GlobalCfgArray.globalCfg.onceGivePowerCount)); } EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); EventAgent.DispatchEvent(ConstMessage.FRIEND_REFRESH); return true; } } EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return false; } //请求搜索其他玩家 public static async ETTask ReqSearchRole(string roleName) { S2C_SearchRole response = null; response = (S2C_SearchRole)await MessageHelper.SendToServer(new C2S_SearchRole() { RoleName = roleName }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ClearSearchDatas(); for (int i = 0; i < response.RoleList.Count; i++) { RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = response.RoleList[i].RoleId; roleInfo.roleName = response.RoleList[i].RoleName; roleInfo.roleLv = response.RoleList[i].RoleLvl; roleInfo.offlineTimeSec = response.RoleList[i].OfflineTimeSec; FriendDataManager.Instance.AddSearchData(roleInfo); } return true; } } return false; } //请求推荐好友 public static async ETTask ReqRecommendFriends() { S2C_GetRecommendFriends response = null; response = (S2C_GetRecommendFriends)await MessageHelper.SendToServer(new C2S_GetRecommendFriends()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ClearRecommendDatas(); for (int i = 0; i < response.RoleList.Count; i++) { RoleInfoData roleInfo = new RoleInfoData(); roleInfo.roleId = response.RoleList[i].RoleId; roleInfo.roleName = response.RoleList[i].RoleName; roleInfo.roleLv = response.RoleList[i].RoleLvl; roleInfo.offlineTimeSec = response.RoleList[i].OfflineTimeSec; FriendDataManager.Instance.AddRecommendData(roleInfo); } return true; } } return false; } //申请添加好友 public static async ETTask ReqApplyForFriend(long friendId) { S2C_RequestApplyForFriend response = null; response = (S2C_RequestApplyForFriend)await MessageHelper.SendToServer(new C2S_RequestApplyForFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return true; } } return false; } //同意添加好友 public static async ETTask ReqAcceptApplyForFriend(long friendId) { S2C_AcceptApplyForFriend response = null; response = (S2C_AcceptApplyForFriend)await MessageHelper.SendToServer(new C2S_AcceptApplyForFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { // FriendDataManager.Instance.RemoveApplyData(roleId); return true; } } return false; } //拒绝添加好友 public static async ETTask ReqRefuseApplyForFriend(long friendId) { S2C_RefuseApplyForFriend response = null; response = (S2C_RefuseApplyForFriend)await MessageHelper.SendToServer(new C2S_RefuseApplyForFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.RemoveApplyData(friendId); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); EventAgent.DispatchEvent(ConstMessage.FRIEND_APPLY_CHANGE); return true; } } return false; } //一键同意添加好友 public static async ETTask ReqAcceptAllApplyForFriend() { S2C_AcceptAllApplyForFriend response = null; response = (S2C_AcceptAllApplyForFriend)await MessageHelper.SendToServer(new C2S_AcceptAllApplyForFriend()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return true; } } return false; } //一键拒绝添加好友 public static async ETTask ReqRefuseAllApplyForFriend() { S2C_RefuseAllApplyForFriend response = null; response = (S2C_RefuseAllApplyForFriend)await MessageHelper.SendToServer(new C2S_RefuseAllApplyForFriend()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.ClearApplyDatas(); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); EventAgent.DispatchEvent(ConstMessage.FRIEND_APPLY_CHANGE); return true; } } return false; } //请求删除好友 public static async ETTask ReqDeleteFriend(long friendId) { S2C_RequestDeleteFriend response = null; response = (S2C_RequestDeleteFriend)await MessageHelper.SendToServer(new C2S_RequestDeleteFriend() { FriendId = friendId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { FriendDataManager.Instance.RemoveFriend(response.FriendId); PromptController.Instance.ShowFloatTextPrompt("好友已删除"); EventAgent.DispatchEvent(ConstMessage.FRIEND_REMOVE); return true; } } return false; } } }