diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index aac66b013..5703e6346 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -295,6 +295,7 @@ public class GlobalDataManaager { PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder); user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH,0); + user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_WEEK_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0); FriendLogic.getInstance().refreshState(session); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index ef33b2c6f..c265f185a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -13,6 +13,7 @@ import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.MathUtils; import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.TimeUtils; import java.util.Collections; import java.util.List; @@ -88,6 +89,7 @@ public class UserMissionManager extends MongoBase { break; case TREASH_WEEK_REFRESH: int[] dailyRefreshIds = resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData); + int[] weekRefreshIds = resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData); CommonProto.RefreshTask.Builder task1 = treasureIndicationBuild(1, dailyRefreshIds); CommonProto.RefreshTask.Builder task2 = treasureIndicationBuild(2, weekRefreshIds); @@ -278,11 +280,21 @@ public class UserMissionManager extends MongoBase { private int[] resetTreasureTaskInfo(int type,Map> missionTypeEnumListMap,CumulationData treasureCumulationData){ - int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS); - List taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type); - for(Integer treasure:taskTypeMap){ - if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){ - treasureMissionIdsType.getDoingMissionIds().remove(treasure); + //周刷新检测 + if(type==3){ + treasureMissionIdsType.setWeekRefresh((int)(TimeUtils.now()/1000)); + } + if(type==2){ + if(treasureMissionIdsType.getWeekRefresh()>=TimeUtils.getCurWeekdayStartTime(1,5)){ + return null; + } + treasureMissionIdsType.setWeekRefresh((int)TimeUtils.now()/1000); + } + int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS); + List taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type); + for(Integer treasure:taskTypeMap){ + if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){ + treasureMissionIdsType.getDoingMissionIds().remove(treasure); } if(treasureMissionIdsType.getFinishMissionIds().contains(treasure)){ treasureMissionIdsType.getFinishMissionIds().remove(treasure); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 57dea3550..797c4ab4e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -32,6 +32,7 @@ public class MissionEventDistributor { eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess()); + eventProcessor.put(GameEvent.TREASH_WEEK_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess()); eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java index a1dfc88da..db05ab3bd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/TreasureMissionType.java @@ -20,6 +20,17 @@ import java.util.Set; public class TreasureMissionType extends AbstractMissionType{ private Map takeTimes = new HashMap<>(); + + private int weekRefresh; + + public int getWeekRefresh() { + return weekRefresh; + } + + public void setWeekRefresh(int weekRefresh) { + this.weekRefresh = weekRefresh; + } + @Override public void openMission(User user, int missionId, List missionTypeEnumList) {