diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index d7c1a2d22..b9c49199d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -253,6 +253,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),10023,0)); // 无尽秘宝处理 endLessTreasureHandler(user); + expeditionTreasureHandler(user); user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,0,user); MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.WorldLevelIndication_VALUE, PlayerInfoProto.WorldLevelIndication.newBuilder().setWorldLeve(GlobleSystemLogic.getGlobalWorldLevelCache()).build(), true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); @@ -283,6 +284,22 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } + /** + * 天宫秘宝刷新 + * @param user + */ + private void expeditionTreasureHandler(User user){ + // 天宫秘宝礼包获取 + ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); + if (bagInfo == null){ + return; + } + // 刷新礼包 + if (user.getExpeditionManager().getWorldTreasureReward().getIsBuy() == 0 && bagInfo.isBought()){ + bagInfo.refresh(); + } + } + ///登录获取四象心法数据 private List getSixiangxinfaInfos(HeroManager heroManager) { Map sixiangDataMap = heroManager.getSixiangDataMap(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 38d37aecd..e93a81462 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -26,7 +26,7 @@ public interface ActivityType { // int RechargeTotal = 5; //累计充值 int GrowthFund = 6; //成长基金 int BLESSACTIVITY = 7;//云梦祈福 - int TREASURE = 8; //戒灵秘宝(孙龙的宝藏) + int TREASURE = 8; //青龙秘宝(孙龙的宝藏) int LUCKYCAT = 9;//招財貓 int SERVERHAPPY = 10; //七日狂欢 int FORCERANK = 11; //战力排行 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java index 801dd48bc..ce864b3c4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java @@ -25,9 +25,8 @@ class GrowthFundActivity extends AbstractActivity { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - AbstractWelfareBag bag = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(sGlobalActivity.getCanBuyRechargeId()[0]); - int buyTimes = bag.getBuyTimes(); - if(buyTimes == 0){ + ReceiveWelfareBag bag = (ReceiveWelfareBag)user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(sGlobalActivity.getCanBuyRechargeId()[0]); + if (!bag.isBought()){ return false; } int type = values[0][0]; @@ -43,14 +42,6 @@ class GrowthFundActivity extends AbstractActivity { return true; } - @Override - public void onActivityEndOnMySelf(User user) throws Exception { -// SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); -// if(sGlobalActivity.getCanBuyRechargeId()!=null&&sGlobalActivity.getCanBuyRechargeId().length>0){ -// Arrays.stream(sGlobalActivity.getCanBuyRechargeId()).forEach(n->user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(n,0)); -// } - } - @Override void updateProgress(ActivityMission activityMission, int count) { activityMission.setV(count); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java index 423060586..ca82a45c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java @@ -36,7 +36,6 @@ public class WorldTreasureReward extends MongoBase { score = 0; setRewardStatusMap(new HashMap<>()); setIsBuy(0); -// updateRound(round+1); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 57484a171..b1e5f30de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -23,6 +23,7 @@ import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; @@ -550,6 +551,12 @@ public class ExpeditionLogic { //重置 if(TimeUtils.nowInt()>=createTime){ user.getExpeditionManager().resetTreasureReward(); + // 天宫秘宝礼包刷新 + ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); + if (bagInfo == null){ + return; + } + bagInfo.refresh(); sendAllTreasureInfo(user); BuyGoodsNewLogic.sendGiftGooodsIndication(user.getId()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index c3a6de4a5..387221167 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -389,7 +389,7 @@ public class BuyGoodsNewLogic { ExpeditionLogic.sendTreasureRewardUpdate(session,user.getExpeditionManager().getWorldTreasureReward().getScore(), rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime(),1); } - if(type == GiftGoodsType.SUN_LONG){ + if(type == GiftGoodsType.SUN_LONG){ PlayerManager playerManager = user.getPlayerInfoManager(); playerManager.setHadBuyTreasure(1); playerManager.setTreasureLevel(playerManager.getTreasureLevel()+15); @@ -786,7 +786,12 @@ public class BuyGoodsNewLogic { }else{ builder.setDynamicBuyTimes(bag.getLimit() - bag.getBuyTimes()); } - + // 礼包类型特殊处理,使用bought字段验证是否购买 + if(bag.getType() == RechargeType.receive.getType()){ + ReceiveWelfareBag receiveBag = (ReceiveWelfareBag) bag; + int bought = receiveBag.isBought()?1:0; + builder.setIsBought(bought); + } return builder.build(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java index ef43567ef..e550848a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java @@ -58,23 +58,20 @@ public class ReceiveWelfareBag extends AbstractWelfareBag { @Override public boolean buy() { - if(super.buy()){ - if(bought){ - LOGGER.error("礼包:{}已经购买",getModId()); - return false; - }else { - setBought(true); - setStartTime(TimeUtils.getTodayZero()); - if(getDailyUpdate()>0){ - setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); - } - if(getEndTime()!=0){ - setEndTime(TimeUtils.getTodayZero() + getContinueDays() * TimeUtils.DAY); - } - return true; + if (bought) { + LOGGER.error("礼包:{}已经购买", getModId()); + return false; + } else { + setBought(true); + setStartTime(TimeUtils.getTodayZero()); + if (getDailyUpdate() > 0) { + setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); } + if (getEndTime() != 0) { + setEndTime(TimeUtils.getTodayZero() + getContinueDays() * TimeUtils.DAY); + } + return true; } - return false; } @Override