diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java index 91ae679f2..a0fc4d835 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/JourneyMap.java @@ -158,7 +158,15 @@ public class JourneyMap { User user = UserManager.getUser(session.getUid()); user.getMapManager().setCurrentJourneyId(mapId); + SFreeTravel travelConfig = SFreeTravel.journeyMapByMapId.get(mapId); Map journeyInfo = user.getMapManager().getJourneyInfo(); + if(travelConfig.getID()!=1){ + int beforeId= STableManager.getConfig(SFreeTravel.class).get(travelConfig.getID()-1).getMapID(); + if(!journeyInfo.containsKey(beforeId)||!journeyInfo.get(beforeId).isFirstPass()){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + if(!journeyInfo.containsKey(mapId)){ init(user,mapId); }