diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index bc85bb4de..45c8c7c5a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -358,6 +358,10 @@ public class PlayerManager extends MongoBase { updateString("vipInfo", vipInfo); } + public void removeVipCount(int priviliageId){ + vipInfo.remove(priviliageId); + removeString("vipInfo."+priviliageId); + } public void addVipInfo(int privilageId){ SPrivilegeTypeConfig config = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(privilageId); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java index 423b4ce64..8fefde5d4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/StoreManager.java @@ -32,6 +32,19 @@ public class StoreManager extends MongoBase { removeString(getMongoKey() + ".storeInfoMap." + key); } } + public void removeStoreItemInfo(Integer key,Integer itemKey) { + StoreInfo storeInfo= storeInfoMap.get(key); + if (storeInfo==null){ + return; + } + Map itemNumMap = storeInfo.getItemNumMap(); + + if(itemNumMap.get(itemKey)==null){ + return; + } + itemNumMap.put(itemKey,0); + updateString("storeInfoMap." + storeInfo.getId()+"."+itemKey, 0); + } public void newStoreInfo(int id,long lastRefreshTime,long startTime,long endTime,Map itemNumMap) throws Exception { StoreInfo storeInfo = new StoreInfo(id,lastRefreshTime,startTime,endTime,itemNumMap); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java index 544707e9c..b3f50fed1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildChallengeLogic.java @@ -22,7 +22,9 @@ import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; +import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; +import com.ljsd.jieling.network.server.SessionManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.Family; @@ -85,6 +87,9 @@ public class GuildChallengeLogic { for(int clearPrivilege:config.getPrivilege()){ user.getPlayerInfoManager().clearVipCount(clearPrivilege); } + user.getPlayerInfoManager().removeVipPriviliageId(3013); + user.getStoreManager().removeStoreItemInfo(7,10031); + StoreLogic.sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7)); } int canSweep = 0; if(guildMyInfo.getLastMonsterId()!=0&&currBossId==guildMyInfo.getLastMonsterId()&&guildMyInfo.getGuildChallengeDamage()>0){ @@ -188,6 +193,7 @@ public class GuildChallengeLogic { }else{ guildInfo.setCurrBossId(guildInfo.getCurrBossId() + 1); guildInfo.setBossHpRemain(0); + kill=1; } damage = guildMyInfo.getGuildChallengeDamage(); } @@ -202,11 +208,20 @@ public class GuildChallengeLogic { Map> members = guildInfo.getMembers(); for(Set items : members.values()){ for(Integer sendUid : items){ + if(!OnlineUserManager.sessionMap.containsKey(sendUid)){ + continue; + } AyyncWorker worker = new AyyncWorker(UserManager.getUser(sendUid),false,(user1)->{ int[] refreshPrivilege = config.getPrivilege(); for(int clearPrivilege:refreshPrivilege){ - user.getPlayerInfoManager().clearVipCount(clearPrivilege); + user1.getPlayerInfoManager().clearVipCount(clearPrivilege); } + user1.getPlayerInfoManager().removeVipPriviliageId(3013); + user1.getStoreManager().removeStoreItemInfo(7,10031); + StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7)); + GuildMyInfo guildMyInfo = user1.getGuildMyInfo(); + guildMyInfo.setLastMonsterId(bossId+1); + guildMyInfo.setGuildChallengeDamage(0); }); ProtocolsManager.getInstance().updateAyncWorker(worker); }