From 01ec371f1dfb30a20a01a0db3f26197700e9ba60 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 28 Jul 2021 17:51:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=8E=92=E8=A1=8C=EF=BC=8C?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crossService/CrossServiceLogic.java | 27 ++++++++++++++----- .../ljsd/jieling/logic/hero/HeroLogic.java | 1 + .../logic/rank/rankImpl/AbstractRank.java | 11 +++++--- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java index 486e57369..a83d33693 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java @@ -39,7 +39,7 @@ public class CrossServiceLogic { return CrossServiceLogic.Instance.instance; } - public String findServerName(int serverId) throws UnknownHostException { + public String findServerName(int serverId) { return CrossDeathPathLogic.getInstance().getServerName(serverId); } @@ -143,11 +143,7 @@ public class CrossServiceLogic { arenaOfPlayerManager.setGender(player.getSex()); arenaOfPlayerManager.setSkin(player.getUserSkin()); arenaOfPlayerManager.setUserMount(player.getUserMount()); - try { - arenaOfPlayerManager.setServerName(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId)); - } catch (UnknownHostException e) { - e.printStackTrace(); - } + arenaOfPlayerManager.setServerName(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId)); return arenaOfPlayerManager; } private ArenaOfHeroManager buildArenaOfHeroManager(User user){ @@ -197,4 +193,23 @@ public class CrossServiceLogic { return arenaOfHero; } + /** + * 根据uid获取服务器名称 + * @param uid + * @return + */ + public String getServerNameByUId(int uid){ + String name = ""; + try { + ArenaOfUser query = query(uid); + if (query != null){ + int serverId = query.getPlayerManager().getServerId(); + return CrossDeathPathLogic.getInstance().getServerNameByDeathPath(serverId); + } + } catch (UnknownHostException e) { + LOGGER.error("===========获取跨服玩家信息报错=======:{}",e.getMessage()); + } + return name; + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index f0c7bb0e1..17ffcd2b6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1169,6 +1169,7 @@ public class HeroLogic{ } if (teamId == GlobalsDef.FORMATION_NORMAL) { Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(iSession.getUid())); + CrossServiceLogic.getInstance().dispose(user); } // 跨服 更新编队信息 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index c6463e0e0..fd3e2ef08 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.rank.rankImpl; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.GlobleSystemLogic; +import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.rank.IRank; @@ -152,8 +153,10 @@ public abstract class AbstractRank implements IRank { CommonProto.UserRank.Builder oneUserRank = getOneUserRank(everyUser, everyRankInfo); builder.addRanks(oneUserRank); } - public CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo) throws Exception { - CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() + + private CommonProto.UserRank.Builder getOneUserRank(User everyUser,CommonProto.RankInfo.Builder everyRankInfo){ + String serverName = CrossServiceLogic.getInstance().getServerNameByUId(everyUser.getId()); + return CommonProto.UserRank.newBuilder() .setUid(everyUser.getId()) .setUserName(everyUser.getPlayerInfoManager().getNickName()) .setHead(everyUser.getPlayerInfoManager().getHead()) @@ -165,8 +168,8 @@ public abstract class AbstractRank implements IRank { .setUserSkin(everyUser.getPlayerInfoManager().getUserSkin()) .setUserTitle(everyUser.getPlayerInfoManager().getUserTitle()) .setUserMount(everyUser.getPlayerInfoManager().getUserMount()) - .setPracticeLevel(everyUser.getHeroManager().getPracticeLevel()); - return everyRank; + .setPracticeLevel(everyUser.getHeroManager().getPracticeLevel()) + .setServerName(serverName); } protected void getMyInfo(User user,String rkey,PlayerInfoProto.RankResponse.Builder allUserResponse){