diff --git a/serverlogic/src/main/java/com/ljsd/CoreService.java b/serverlogic/src/main/java/com/ljsd/CoreService.java index a53818ca3..ba35944d7 100644 --- a/serverlogic/src/main/java/com/ljsd/CoreService.java +++ b/serverlogic/src/main/java/com/ljsd/CoreService.java @@ -30,19 +30,6 @@ import java.util.stream.Collectors; public class CoreService implements RPCRequestIFace.Iface { private static final Logger LOGGER = LoggerFactory.getLogger(CoreService.class); - /** - * 单例 - */ - private CoreService(){ - } - public static class Instance { - private final static CoreService INSTANCE = new CoreService(); - } - public static CoreService getInstance() { - return CoreService.Instance.INSTANCE; - } - - @Override public Result deliveryRecharge(int uid, String goodsId, String openId, String orderId, long orderTime, int amount) { try { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java index 7129d6aa5..aa1928adf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java @@ -149,18 +149,19 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler1000) { CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(proto.getChallengeUid()); if (csPlayer == null){ throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT); } - CrossArenaManager crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer); + CrossArenaManager crossArenaManager = null; + if (csPlayer.getServerId() != GameApplication.serverId){ + crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer); + } teamInfo = FightUtil.makeCrossPersonData(csPlayer, proto.getTeamId(), null, crossArenaManager); arenaEnemys = ArenaLogic.getInstance().getUserCrossArenaEnemy(csPlayer,proto.getChallengeRank(),false).build(); - defendForce = crossArenaManager.getTotalForceByTeam().get(proto.getTeamId()); + defendForce = (int) CrossServiceLogic.getCrossTeamForce(csPlayer.getUserId(),proto.getTeamId()); } else { //机器人 CrossArenaEnemy info = RedisUtil.getInstence().getMapEntry(RedisKey.CROSS_ARENA_ROBOT_INFO, String.valueOf(crossGroup), String.valueOf(proto.getChallengeUid()), CrossArenaEnemy.class); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 9ad52e12f..656230729 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.arena; import com.google.gson.reflect.TypeToken; +import com.ljsd.GameApplication; import com.ljsd.fight.ArenaRecord; import com.ljsd.fight.FightType; import com.ljsd.jieling.config.clazzStaticCfg.SArenaRobotStaticConfig; @@ -660,10 +661,13 @@ public class ArenaLogic { User mine = UserManager.getUser(session.getUid()); int myforce = HeroLogic.getInstance().calTeamTotalForce(mine, myteamId, false); CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(mine,myteamId,true); - CommonProto.FightTeamInfo deffightTeamInfo = null; + CommonProto.FightTeamInfo deffightTeamInfo; int deforce; if(cross==0){ - User defUser = UserManager.getUser(challengeUid); + User defUser = UserManager.getUserNotCache(challengeUid); + if (defUser == null){ + throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT); + } if(!defUser.getTeamPosManager().getTeamPosForHero().containsKey(1)){ throw new ErrorCodeException(ErrorCode.newDefineCode("对方未设置阵容")); } @@ -677,7 +681,10 @@ public class ArenaLogic { throw new ErrorCodeException(ErrorCode.newDefineCode("当前玩家没有跨服数据")); } deforce = 0; - CrossArenaManager crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer); + CrossArenaManager crossArenaManager = null; + if (csPlayer.getServerId() != GameApplication.serverId){ + crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer); + } deffightTeamInfo = FightUtil.makeCrossPersonData(csPlayer, myteamId, null, crossArenaManager); } if(myforcecoreip={},corePort={}", coreSettings.getIp(), coreSettings.getPort()); TThreadPoolServer.Args trArgs = new TThreadPoolServer.Args(serverTransport); - TProcessor processor = new RPCRequestIFace.Processor(CoreService.getInstance()); + TProcessor processor = new RPCRequestIFace.Processor(new CoreService()); trArgs.processor(processor); TBinaryProtocol.Factory proFactory = new TBinaryProtocol.Factory(true, true); trArgs.protocolFactory(proFactory);