From 371d47063a3cd90f335327d7a14a27daa43d12f1 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Thu, 7 Nov 2019 15:40:03 +0800 Subject: [PATCH] fix hero diaplay level --- .../network/server/ProtocolsManager.java | 25 ++++++++++++------- .../com/ljsd/jieling/util/CBean2Proto.java | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index fd5b37d41..2728d40cb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -37,6 +37,7 @@ import org.springframework.stereotype.Component; import util.ClassLoaderHelper; import java.lang.reflect.Type; +import java.net.UnknownHostException; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; @@ -231,7 +232,7 @@ public class ProtocolsManager implements ProtocolsAbstract { } - public void processReconnect(ISession session){ + public void processReconnect(ISession session) throws Exception { String key = RedisUtil.getInstence().getKey(RedisKey.INDICATION_OFFLINE, Integer.toString(session.getUid())); Type type = new TypeToken>(){}.getType(); Object indicationInRedis = RedisUtil.getInstence().get(key); @@ -270,6 +271,11 @@ public class ProtocolsManager implements ProtocolsAbstract { } LOGGER.info("the uid={} reconnect,the maxid={} ",session.getUid(),maxMsgId); + User userInMem = UserManager.getUserInMem(session.getUid()); + if(userInMem!=null){ + userInMem.getPlayerInfoManager().setLoginTime(TimeUtils.now()); + MongoUtil.getLjsdMongoTemplate().lastUpdate(); + } MessageUtil.sendMessageWithoutBack(session,1, MessageTypeProto.MessageType.RECONNECT_RESPONSE_VALUE,null,true); } @@ -393,15 +399,16 @@ public class ProtocolsManager implements ProtocolsAbstract { GameMessageHandler.currentSessions.remove(session.getUid()); try { - - PlayerManager playerInfoManager = user.getPlayerInfoManager(); - playerInfoManager.setOffLineTime(TimeUtils.now()); - long onlineTime = playerInfoManager.getOffLineTime() - playerInfoManager.getLoginTime(); - playerInfoManager.addOnlineTime(onlineTime); - //更新在线时长 - ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND)); GuildLogic.updateMyPos(user); - MongoUtil.getInstence().lastUpdate(); + if(session.getFiveReady()==1){ + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + playerInfoManager.setOffLineTime(TimeUtils.now()); + long onlineTime = playerInfoManager.getOffLineTime() - playerInfoManager.getLoginTime(); + playerInfoManager.addOnlineTime(onlineTime); + //更新在线时长 + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.OnlineReward,(int)(onlineTime/TimeUtils.ONE_SECOND)); + MongoUtil.getInstence().lastUpdate(); + } backUpMsgToRedis(session); // 下线处理的逻辑需要添加在这里 } catch (Exception e) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 8812fbc9a..79f438ed8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -111,7 +111,7 @@ public class CBean2Proto { .setId(String.valueOf(scHero.getId())) .setHeroId(scHero.getId()) .setLevel(sArenaRobotConfig.getRoleLv()) - .setStar(scHero.getStar()) + .setStar(sArenaRobotConfig.getStarOfHeroMap().get(scHero.getId())) .setBreakId(sArenaRobotConfig.getBreakId()) .build(); }