修复StackOverflowError

back_recharge
jiahuiwen 2021-11-11 16:29:05 +08:00
parent 29518695a9
commit 44f88a241c
3 changed files with 37 additions and 38 deletions

View File

@ -107,43 +107,49 @@ public class CrossServiceLogic {
}
private static CSPlayer formatUserToPlayer(User user){
CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(user.getId());
CSPlayer csPlayer = RedisUtil.getInstence().getObject(getKey(user.getId()), CSPlayer.class);
int newScore=0,oldScore =0,crossYxldMaxLevel=0 ;
if(csPlayer!=null){
if (csPlayer != null) {
newScore = csPlayer.getCrossYuxulundaoNewScore();
oldScore = csPlayer.getCrossYuxulundaoOldScore();
crossYxldMaxLevel = csPlayer.getCrossYxldMaxLevel();
} else {
csPlayer = new CSPlayer();
}
CSPlayer player = new CSPlayer();
PlayerManager p = user.getPlayerInfoManager();
player.setUserId(user.getId());
player.setLevel(p.getLevel());
player.setName(p.getNickName());
player.setHead(p.getHead());
player.setHeadFrame(p.getHeadFrame());
player.setSkin(p.getUserSkin());
player.setUserTitle(p.getUserTitle());
player.setPracticeLevel(user.getHeroManager().getPracticeLevel());
player.setServerId(GameApplication.serverId);
player.setSex(p.getSex());
player.setUserMount(p.getUserMount());
player.setCrossYuxulundaoNewScore(newScore);
player.setCrossYuxulundaoOldScore(oldScore);
player.setGuildId(p.getGuildId());
player.setCrossYxldMaxLevel(crossYxldMaxLevel);
csPlayer.setUserId(user.getId());
csPlayer.setLevel(p.getLevel());
csPlayer.setName(p.getNickName());
csPlayer.setHead(p.getHead());
csPlayer.setHeadFrame(p.getHeadFrame());
csPlayer.setSkin(p.getUserSkin());
csPlayer.setUserTitle(p.getUserTitle());
csPlayer.setPracticeLevel(user.getHeroManager().getPracticeLevel());
csPlayer.setServerId(GameApplication.serverId);
csPlayer.setSex(p.getSex());
csPlayer.setUserMount(p.getUserMount());
csPlayer.setCrossYuxulundaoNewScore(newScore);
csPlayer.setCrossYuxulundaoOldScore(oldScore);
csPlayer.setGuildId(p.getGuildId());
csPlayer.setCrossYxldMaxLevel(crossYxldMaxLevel);
//玉虚三个队伍总战力
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId(), false);
int force2 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId(), false);
int force3 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId(), false);
player.setMaxFore(force1+force2+force3);
if (csPlayer.getMaxFore() == 0) {
int force1 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_ONE.getTeamId(), false);
int force2 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_TWO.getTeamId(), false);
int force3 = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.CROSS_YU_XU_LUN_DAO_THREE.getTeamId(), false);
csPlayer.setMaxFore(force1+force2+force3);
}
// 主线编队战力
int mainLine = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
player.setMainLineForce(mainLine);
if (csPlayer.getMainLineForce() == 0) {
int mainLine = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
csPlayer.setMainLineForce(mainLine);
}
// 罗浮编队战力
int luoFu = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
player.setLuoFuForce(luoFu);
return player;
if (csPlayer.getLuoFuForce() == 0) {
int luoFu = HeroLogic.getInstance().calTeamTotalForce(user, TeamEnum.FORMATION_NORMAL.getTeamId(), false);
csPlayer.setLuoFuForce(luoFu);
}
return csPlayer;
}

View File

@ -1,7 +1,5 @@
package com.ljsd.jieling.logic.dao.cross;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
/**
* @Author hj
* @Date 2021/8/31 15:30:04
@ -231,10 +229,6 @@ public class CSPlayer {
}
public int getMainLineForce() {
if (mainLineForce == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(userId, false);
mainLineForce = redis==null?0:redis.getMainLineForce();
}
return mainLineForce;
}
@ -243,10 +237,6 @@ public class CSPlayer {
}
public int getLuoFuForce() {
if (mainLineForce == 0){
CSPlayer redis = CrossServiceLogic.getPlayerByRedis(userId, false);
luoFuForce = redis==null?0:redis.getLuoFuForce();
}
return luoFuForce;
}

View File

@ -1710,6 +1710,9 @@ public class PlayerLogic {
}
}
String rpcString = RedisUtil.getInstence().getObject(RedisKey.LOGIC_SERVER_INFO, Integer.toString(serverId), String.class, -1);
if (rpcString == null) {
return null;
}
String[] split = rpcString.split(":");
if (split.length < 4) {
LOGGER.error("获取玩家rpc地址长度错误rpc{},玩家id{},服务器id{}", rpcString, uid, serverId);