From 566fc26e6d5d03908c1b56a74358346b175439bf Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 13 Mar 2020 14:26:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E5=8F=8B=E6=83=85=E7=82=B9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/friend/FriendLogic.java | 33 +++++++------- .../jieling/logic/player/PlayerLogic.java | 43 ++++--------------- 2 files changed, 24 insertions(+), 52 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java index 079a0d7ae..52c385e5b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java @@ -527,11 +527,11 @@ public class FriendLogic { throw new ErrorCodeException(ErrorCode.FRIENDS_SEMD_YET); } friendManager.updateGiveMap(friendId,1); - boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); - if(check){ - friendManager1.updateHaveRewardMap(uid,1); - sendFriendStatedication(uid,friendId,2); - } +// boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); +// if(check){ + friendManager1.updateHaveRewardMap(uid,1); + sendFriendStatedication(uid,friendId,2); +// } times++; }else{ //赠送全部好友 for (Integer friendUserId : friends) { @@ -545,11 +545,11 @@ public class FriendLogic { continue; } friendManager.updateGiveMap(friendUserId,1); - boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); - if(check){ - friendManager1.updateHaveRewardMap(uid,1); - sendFriendStatedication(uid,friendUserId,2); - } +// boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); +// if(check){ + friendManager1.updateHaveRewardMap(uid,1); + sendFriendStatedication(uid,friendUserId,2); +// } times++; } } @@ -571,7 +571,7 @@ public class FriendLogic { List friends = friendManager.getFriends(); Map haveRewardMap = friendManager.getHaveRewardMap(); PlayerManager playerInfoManager = user.getPlayerInfoManager(); - boolean check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); + boolean check = PlayerLogic.getInstance().check(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); Set receieveFriends = new HashSet<>(); if(!check){ throw new ErrorCodeException(ErrorCode.FRIENDS_GET_MAX); @@ -594,7 +594,6 @@ public class FriendLogic { takeTimes++; rewardStr = reward.toString(); }else{ - int i=0; for (Integer friend : friends) { if (!haveRewardMap.containsKey(friend)) { continue; @@ -602,13 +601,11 @@ public class FriendLogic { if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) { continue; } - if(i++>0){ - check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); - if(!check){ - break; - } + + check = PlayerLogic.getInstance().checkAndUpdate(user,STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(), 1); + if(!check){ + break; } - playerInfoManager.updateVipPrivilage(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(),1); friendManager.updateHaveRewardMap(friend,2); reward.append(SSpecialConfig.getStringValue(SSpecialConfig.Friend_Gift)).append("|"); receieveFriends.add(friend); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 059ee5039..d8cdfafdc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -749,41 +749,13 @@ public class PlayerLogic { user.getPlayerInfoManager().setRideLevel(rideLevel+1); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } - public boolean checkAndUpdate(User user, int privilageTypeId, int updateNum){ - Map vipInfo = user.getPlayerInfoManager().getVipInfo(); - if(privilageTypeId == 0){ - return true; - } - List sPrivilegeTypeConfigs = SPrivilegeTypeConfig.privilegeByType.get(privilageTypeId); - List typePrivileges = new ArrayList<>(); - for(SPrivilegeTypeConfig config:sPrivilegeTypeConfigs){ - if(!vipInfo.containsKey(config.getId())){ - continue; - } - typePrivileges.add(config.getId()); - } - if(typePrivileges.isEmpty()){ - return false; - } - for(Integer privilageId:typePrivileges){ - VipInfo info = vipInfo.get(privilageId); - if(info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime()){ - continue; - } - int mCount = getMaxCountByPrivilege(user,privilageId); - if(mCount==-1){ - return true; - } - if((info.getCount()+updateNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){ - continue; - } - user.getPlayerInfoManager().updateVipPrivilage(privilageId, updateNum); - return true; - } - return false; - } - public boolean check(User user, int privilageTypeId, int checkNum){ + return priviliageCheck(user,privilageTypeId,checkNum,false); + } + public boolean checkAndUpdate(User user, int privilageTypeId, int updateNum){ + return priviliageCheck(user,privilageTypeId,updateNum,true); + } + private boolean priviliageCheck(User user, int privilageTypeId, int checkNum,boolean isUpdate){ Map vipInfo = user.getPlayerInfoManager().getVipInfo(); if(privilageTypeId == 0){ return true; @@ -811,6 +783,9 @@ public class PlayerLogic { if((info.getCount()+checkNum>mCount)|| (info.getEffectTime()!=0&&TimeUtils.now()/1000>info.getEffectTime())){ continue; } + if (isUpdate){ + user.getPlayerInfoManager().updateVipPrivilage(privilageId, checkNum); + } return true; } return false;