From a1fce080ee439e34e5862dd4c2ae4cf3477590c6 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 10 Nov 2021 18:22:23 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/friend/FriendLogic.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java index d322ff6cc..432eb9674 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java @@ -330,13 +330,16 @@ public class FriendLogic { public void sendAgree(ISession iSession, int type, int friendId ) throws Exception { int msgId = MessageTypeProto.MessageType.FRIEND_INVITE_OPERATION_RESPONSE_VALUE; int uid = iSession.getUid(); + // 自己的信息 User user = UserManager.getUser(uid); FriendManager friendManager = user.getFriendManager(); - User friendUser = UserManager.getUserNotCache(friendId); - if (friendId == 0 || friendUser == null){ - return; + // 好友的信息 + User friendUser = null; + FriendManager friendManager1 = null; + if(friendId!=0){ + friendUser = UserManager.getUserNotCache(friendId); + friendManager1 = friendUser.getFriendManager(); } - FriendManager friendManager1 = friendUser.getFriendManager(); List friends = friendManager.getFriends(); List applyFriends = friendManager.getApplyFriends(); int maxFriends = SSpecialConfig.getIntegerValue(SSpecialConfig.FRIENDAMOUNT_LIMIT); From 9f7a7b0725a1ea89db62bc9d194407388e4026e8 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 10 Nov 2021 18:22:23 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit a1fce080ee439e34e5862dd4c2ae4cf3477590c6) --- .../com/ljsd/jieling/logic/friend/FriendLogic.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java index d322ff6cc..432eb9674 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/friend/FriendLogic.java @@ -330,13 +330,16 @@ public class FriendLogic { public void sendAgree(ISession iSession, int type, int friendId ) throws Exception { int msgId = MessageTypeProto.MessageType.FRIEND_INVITE_OPERATION_RESPONSE_VALUE; int uid = iSession.getUid(); + // 自己的信息 User user = UserManager.getUser(uid); FriendManager friendManager = user.getFriendManager(); - User friendUser = UserManager.getUserNotCache(friendId); - if (friendId == 0 || friendUser == null){ - return; + // 好友的信息 + User friendUser = null; + FriendManager friendManager1 = null; + if(friendId!=0){ + friendUser = UserManager.getUserNotCache(friendId); + friendManager1 = friendUser.getFriendManager(); } - FriendManager friendManager1 = friendUser.getFriendManager(); List friends = friendManager.getFriends(); List applyFriends = friendManager.getApplyFriends(); int maxFriends = SSpecialConfig.getIntegerValue(SSpecialConfig.FRIENDAMOUNT_LIMIT); From 29518695a98e84f008d9efcb41c62d56b3988b81 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 11 Nov 2021 14:34:47 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=B8=85=E7=90=86=E7=8E=A9=E5=AE=B6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/dao/UserManager.java | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index ec63c796b..6a0d1300c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -45,7 +45,7 @@ public class UserManager { private static Map userMapPutTime = new ConcurrentHashMap<>(); //离线读入 private static AtomicInteger login_f_num = new AtomicInteger(0);//登陆计数 private static final int LOGIN_F_LIMIT = 100;//报警界限 - private static final long LIVE_TIME = 60 * 60 * 1000L; + private static final long LIVE_TIME = 12 * 60 * 60 * 1000L; public static void addUser(User user) { userMap.put(user.getId(), user); @@ -62,43 +62,37 @@ public class UserManager { //离线清除逻辑 public static void checkOffline(){ -// try { -// Set collect = userMap.entrySet().stream().filter(integerUserEntry -> !OnlineUserManager.checkUidOnline(integerUserEntry.getKey())).map(Map.Entry::getValue).collect(Collectors.toSet()); -// if (OnlineUserManager.sessionMap.entrySet().isEmpty() && ChampionshipLogic.getProgress() == -1) { -// userMap.clear(); -// userMapPutTime.clear(); -// LOGGER.info("checkOffline no online clear all {}", userMap.keySet().size()); -// return; -// } -// long now = System.currentTimeMillis(); -// for (User integerUserEntry : collect) { -// Long addTime = userMapPutTime.getOrDefault(integerUserEntry.getId(), LIVE_TIME); -// if (now - addTime >= LIVE_TIME) { -// userMap.remove(integerUserEntry.getId()); -// userMapPutTime.remove(integerUserEntry.getId()); -// } -// } -// LOGGER.info("checkOffline left count={}", userMap.keySet().size()); -// }catch (Exception e){ -// LOGGER.error("Exception离线清除逻辑err={}",e.toString()); -// } try { Set collect = userMap.entrySet().stream().filter(integerUserEntry -> !OnlineUserManager.checkUidOnline(integerUserEntry.getKey())).map(Map.Entry::getValue).collect(Collectors.toSet()); - long l = System.currentTimeMillis(); - collect.forEach(integerUserEntry -> { - long offLineTime = integerUserEntry.getPlayerInfoManager().getOffLineTime(); - if (offLineTime < integerUserEntry.getPlayerInfoManager().getOnlineTime()) { - return; - } - if (l - offLineTime > 12 * 60 * 60 * 1000 && userMapPutTime.getOrDefault(integerUserEntry.getId(), 0L) > 12 * 60 * 60 * 1000) { + long now = System.currentTimeMillis(); + for (User integerUserEntry : collect) { + Long addTime = userMapPutTime.getOrDefault(integerUserEntry.getId(), LIVE_TIME); + if (now - addTime >= LIVE_TIME) { userMap.remove(integerUserEntry.getId()); userMapPutTime.remove(integerUserEntry.getId()); } - }); + } LOGGER.info("checkOffline left count={}", userMap.keySet().size()); - } catch (Exception e) { - LOGGER.error("Exception离线清除逻辑err={}", e.toString()); + }catch (Exception e){ + LOGGER.error("Exception离线清除逻辑err={}",e.toString()); } +// try { +// Set collect = userMap.entrySet().stream().filter(integerUserEntry -> !OnlineUserManager.checkUidOnline(integerUserEntry.getKey())).map(Map.Entry::getValue).collect(Collectors.toSet()); +// long l = System.currentTimeMillis(); +// collect.forEach(integerUserEntry -> { +// long offLineTime = integerUserEntry.getPlayerInfoManager().getOffLineTime(); +// if (offLineTime < integerUserEntry.getPlayerInfoManager().getOnlineTime()) { +// return; +// } +// if (l - offLineTime > 12 * 60 * 60 * 1000 && userMapPutTime.getOrDefault(integerUserEntry.getId(), 0L) > 12 * 60 * 60 * 1000) { +// userMap.remove(integerUserEntry.getId()); +// userMapPutTime.remove(integerUserEntry.getId()); +// } +// }); +// LOGGER.info("checkOffline left count={}", userMap.keySet().size()); +// } catch (Exception e) { +// LOGGER.error("Exception离线清除逻辑err={}", e.toString()); +// } } @@ -209,6 +203,7 @@ public class UserManager { public static User getUser(int uid,boolean canNull) throws Exception { User user = userMap.get(uid); if (user != null) { + userMapPutTime.put(uid, TimeUtils.now()); return user; } user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), uid, User.class); From 44f88a241c3ce10fb7f4425e5377cd46411a45c7 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Thu, 11 Nov 2021 16:29:05 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8DStackOverflowError?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crossService/CrossServiceLogic.java | 62 ++++++++++--------- .../jieling/logic/dao/cross/CSPlayer.java | 10 --- .../jieling/logic/player/PlayerLogic.java | 3 + 3 files changed, 37 insertions(+), 38 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 cac7e9513..3696f5402 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 @@ -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; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java index 3b69dd4b3..dda3657b9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java @@ -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; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 47066f3a2..1f415f213 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -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); From 9facaffd990d9a8604bbd89dbc695bf8f9e5dc23 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 12 Nov 2021 13:24:27 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=E5=88=87=E7=A3=8B=E6=88=98=E5=8A=9B=E5=85=88=E5=90=8E?= =?UTF-8?q?=E6=89=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/arena/ArenaLogic.java | 9 +++++++++ 1 file changed, 9 insertions(+) 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 adc1bebb5..bcf8c9bb4 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 @@ -684,6 +684,15 @@ public class ArenaLogic { CrossArenaManager crossArenaManager = null; if (csPlayer.getServerId() != GameApplication.serverId){ crossArenaManager = PlayerLogic.getInstance().getCrossArenaManagerData(csPlayer); + if(crossArenaManager.getTotalForceByTeam().containsKey(myteamId)){ + deforce = crossArenaManager.getTotalForceByTeam().get(myteamId); + } + }else{ + User defUser = UserManager.getUserNotCache(challengeUid); + if (defUser == null){ + throw new ErrorCodeException(ErrorCode.USE_NOT_EXIT); + } + deforce = HeroLogic.getInstance().calTeamTotalForce(defUser, myteamId, false); } deffightTeamInfo = FightUtil.makeCrossPersonData(csPlayer, myteamId, null, crossArenaManager); } From 2eae6c389095a01c0405a9e45c982a8cec21ed25 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 12 Nov 2021 17:23:07 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ExpectRankActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index f2a3ac70f..c8771b6ca 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -47,10 +47,10 @@ class ExpectRankActivity extends AbstractActivity { activityMission.setV(count + activityMission.getV()); int rankFloor = 0; if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ - activityMission.setV(trialInfo.getFloor()); + //activityMission.setV(trialInfo.getFloor()); rankFloor = trialInfo.getFloor(); }else if(trialInfo.getFloor()>10000){ - activityMission.setV(trialInfo.getFloor()-10000); + //activityMission.setV(trialInfo.getFloor()-10000); rankFloor = trialInfo.getFloor()-10000; } if( rankFloor!=0 ){ From 3b36c250babeb819bfc8be5cc5125791f5a0957d Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 12 Nov 2021 17:32:20 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ExpectRankActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index c8771b6ca..ebc576e93 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -46,7 +46,7 @@ class ExpectRankActivity extends AbstractActivity { //排除神秘关卡 activityMission.setV(count + activityMission.getV()); int rankFloor = 0; - if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ + if(trialInfo.getFloor()<10000){ //activityMission.setV(trialInfo.getFloor()); rankFloor = trialInfo.getFloor(); }else if(trialInfo.getFloor()>10000){ From 39b276f03d65f1f7b567922cab6978553d75a268 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 12 Nov 2021 18:28:22 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/ExpectRankActivity.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index ebc576e93..7e18251ca 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -44,19 +44,13 @@ class ExpectRankActivity extends AbstractActivity { MapManager mapManager = user.getMapManager(); TrialInfo trialInfo = mapManager.getTrialInfo(); //排除神秘关卡 - activityMission.setV(count + activityMission.getV()); - int rankFloor = 0; - if(trialInfo.getFloor()<10000){ - //activityMission.setV(trialInfo.getFloor()); - rankFloor = trialInfo.getFloor(); + if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ + activityMission.setV(trialInfo.getFloor()); }else if(trialInfo.getFloor()>10000){ - //activityMission.setV(trialInfo.getFloor()-10000); - rankFloor = trialInfo.getFloor()-10000; - } - if( rankFloor!=0 ){ - RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),rankFloor); - } + activityMission.setV(trialInfo.getFloor()-10000); + } + RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); }else{ activityMission.setV(count + activityMission.getV()); } From f0fa655dc857aa05d7d453149e4898c5097488fd Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Sat, 13 Nov 2021 22:18:09 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E6=A3=AE=E7=BD=97=E5=B9=BB=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/ExpectRankActivity.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index 308bf1564..105c44dba 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -38,22 +38,29 @@ class ExpectRankActivity extends AbstractActivity { @Override void updateProgressWithUser(User user, ActivityMission activityMission, int count) { - if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){ + if(SGlobalActivity.getsGlobalActivityMap().get(id).getType() == 70){ + //森罗幻境特殊处理 + if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){ + MapManager mapManager = user.getMapManager(); + TrialInfo trialInfo = mapManager.getTrialInfo(); + //排除神秘关卡 + if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ + activityMission.setV(trialInfo.getFloor()); + }else if(trialInfo.getFloor()>10000){ + activityMission.setV(trialInfo.getFloor()-10000); + + } + RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); + }else{ + activityMission.setV(count + activityMission.getV()); + } + }else { + activityMission.setV(count + activityMission.getV()); + if(SGlobalActivity.getsGlobalActivityMap().get(id).getOpenRanking()==1){ // String key = RedisKey.getKey(RedisKey.EXPERT_RANK, String.valueOf(id), false); // RedisUtil.getInstence().zsetAddOne(key, String.valueOf(user.getId()), activityMission.getV()); - //RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); - MapManager mapManager = user.getMapManager(); - TrialInfo trialInfo = mapManager.getTrialInfo(); - //排除神秘关卡 - if(trialInfo.getFloor()<10000 && trialInfo.getFloor() > activityMission.getV()){ - activityMission.setV(trialInfo.getFloor()); - }else if(trialInfo.getFloor()>10000){ - activityMission.setV(trialInfo.getFloor()-10000); + RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); } - //activityMission.setV(count + activityMission.getV()); - RankContext.getRankEnum(RankEnum.EXPERT_RANK.getType()).addRank(user.getId(),String.valueOf(id),activityMission.getV()); - }else{ - activityMission.setV(count + activityMission.getV()); } } From 1e166894d21e15786e389f2c94a53e21aa4357fc Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 15 Nov 2021 10:20:30 +0800 Subject: [PATCH 10/19] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=97=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetWorldArenaChallengeRequestHandler.java | 7 ++++++ .../crossService/CrossServiceLogic.java | 22 +++++++------------ .../ljsd/jieling/logic/arena/ArenaLogic.java | 7 ++++++ .../ljsd/jieling/logic/hero/HeroLogic.java | 2 +- .../logic/rank/rankImpl/AbstractRank.java | 7 ++++++ .../logic/rank/rankImpl/CrossArenaRank.java | 14 ++++++++++++ 6 files changed, 44 insertions(+), 15 deletions(-) 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 815fdc6e2..f8dde5836 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 @@ -152,6 +152,13 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler Date: Wed, 17 Nov 2021 08:31:25 +0800 Subject: [PATCH 11/19] =?UTF-8?q?=E9=AD=82=E5=AE=9D=E7=81=B5=E5=AE=9D?= =?UTF-8?q?=E5=BC=BA=E8=BD=AC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 1a817c59e..68c9a571f 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 @@ -1,5 +1,7 @@ package com.ljsd.jieling.logic.hero; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; import com.ljsd.GameApplication; import com.ljsd.fight.FamilyHeroInfo; import com.ljsd.jieling.chat.logic.ChatLogic; @@ -2685,7 +2687,8 @@ public class HeroLogic { if (propertyItem == null) { continue; } - Jewel j = (Jewel) propertyItem; + Gson gson = RedisUtil.getInstence().getGson(); + Jewel j = gson.fromJson(gson.toJson(propertyItem),Jewel.class); SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(j.getEquipId()); // 进阶 Map> rankPoolMap = SJewelRankupConfig.rankupMap.get(config.getRankupPool()); From a52e39292dfafdfeaf7703afd2702974487bdeed Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 17 Nov 2021 08:52:43 +0800 Subject: [PATCH 12/19] =?UTF-8?q?=E9=AD=82=E5=AE=9D=E7=81=B5=E5=AE=9D?= =?UTF-8?q?=E4=BA=8C=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 68c9a571f..96fe009d2 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 @@ -2687,9 +2687,16 @@ public class HeroLogic { if (propertyItem == null) { continue; } - Gson gson = RedisUtil.getInstence().getGson(); - Jewel j = gson.fromJson(gson.toJson(propertyItem),Jewel.class); - SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(j.getEquipId()); + Jewel j; + if (propertyItem instanceof Jewel){ + j = (Jewel) propertyItem; + }else { + j = new Jewel(); + j.setHeroId(propertyItem.getHeroId()); + j.setLevel(propertyItem.getLevel()); + j.setEquipId(propertyItem.getEquipId()); + j.setBuildLevel(1); + } // 进阶 Map> rankPoolMap = SJewelRankupConfig.rankupMap.get(config.getRankupPool()); // 升级 From 849f0d4d5276500a3bdeba319b5af5c3a3b44a2e Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 17 Nov 2021 08:59:12 +0800 Subject: [PATCH 13/19] =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 96fe009d2..f84710b06 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 @@ -2687,7 +2687,7 @@ public class HeroLogic { if (propertyItem == null) { continue; } - Jewel j; + Jewel j = null; if (propertyItem instanceof Jewel){ j = (Jewel) propertyItem; }else { @@ -2697,6 +2697,7 @@ public class HeroLogic { j.setEquipId(propertyItem.getEquipId()); j.setBuildLevel(1); } + SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(j.getEquipId()); // 进阶 Map> rankPoolMap = SJewelRankupConfig.rankupMap.get(config.getRankupPool()); // 升级 From c5de1c8ce5cff66047fe009273105a138213c117 Mon Sep 17 00:00:00 2001 From: duhui Date: Tue, 30 Nov 2021 15:46:46 +0800 Subject: [PATCH 14/19] =?UTF-8?q?Receive=E7=B1=BB=E5=9E=8B=E7=A4=BC?= =?UTF-8?q?=E5=8C=85=E8=B4=AD=E4=B9=B0=E6=9D=A1=E4=BB=B6=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 17 ++++++++++++ .../jieling/logic/activity/ActivityType.java | 2 +- .../logic/activity/GrowthFundActivity.java | 13 ++------- .../logic/dao/WorldTreasureReward.java | 1 - .../logic/expedition/ExpeditionLogic.java | 7 +++++ .../jieling/logic/store/BuyGoodsNewLogic.java | 9 +++++-- .../bean/ReceiveWelfareBag.java | 27 +++++++++---------- 7 files changed, 46 insertions(+), 30 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index d7c1a2d22..b9c49199d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -253,6 +253,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),10023,0)); // 无尽秘宝处理 endLessTreasureHandler(user); + expeditionTreasureHandler(user); user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,0,user); MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.WorldLevelIndication_VALUE, PlayerInfoProto.WorldLevelIndication.newBuilder().setWorldLeve(GlobleSystemLogic.getGlobalWorldLevelCache()).build(), true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GET_PLAYERINFO_RESPONSE_VALUE, getPlayerInfoResponse, true); @@ -283,6 +284,22 @@ public class GetPlayerInfoHandler extends BaseHandler{ } } + /** + * 天宫秘宝刷新 + * @param user + */ + private void expeditionTreasureHandler(User user){ + // 天宫秘宝礼包获取 + ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); + if (bagInfo == null){ + return; + } + // 刷新礼包 + if (user.getExpeditionManager().getWorldTreasureReward().getIsBuy() == 0 && bagInfo.isBought()){ + bagInfo.refresh(); + } + } + ///登录获取四象心法数据 private List getSixiangxinfaInfos(HeroManager heroManager) { Map sixiangDataMap = heroManager.getSixiangDataMap(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 38d37aecd..e93a81462 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -26,7 +26,7 @@ public interface ActivityType { // int RechargeTotal = 5; //累计充值 int GrowthFund = 6; //成长基金 int BLESSACTIVITY = 7;//云梦祈福 - int TREASURE = 8; //戒灵秘宝(孙龙的宝藏) + int TREASURE = 8; //青龙秘宝(孙龙的宝藏) int LUCKYCAT = 9;//招財貓 int SERVERHAPPY = 10; //七日狂欢 int FORCERANK = 11; //战力排行 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java index 801dd48bc..ce864b3c4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/GrowthFundActivity.java @@ -25,9 +25,8 @@ class GrowthFundActivity extends AbstractActivity { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); - AbstractWelfareBag bag = user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(sGlobalActivity.getCanBuyRechargeId()[0]); - int buyTimes = bag.getBuyTimes(); - if(buyTimes == 0){ + ReceiveWelfareBag bag = (ReceiveWelfareBag)user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(sGlobalActivity.getCanBuyRechargeId()[0]); + if (!bag.isBought()){ return false; } int type = values[0][0]; @@ -43,14 +42,6 @@ class GrowthFundActivity extends AbstractActivity { return true; } - @Override - public void onActivityEndOnMySelf(User user) throws Exception { -// SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id); -// if(sGlobalActivity.getCanBuyRechargeId()!=null&&sGlobalActivity.getCanBuyRechargeId().length>0){ -// Arrays.stream(sGlobalActivity.getCanBuyRechargeId()).forEach(n->user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(n,0)); -// } - } - @Override void updateProgress(ActivityMission activityMission, int count) { activityMission.setV(count); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java index 423060586..ca82a45c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/WorldTreasureReward.java @@ -36,7 +36,6 @@ public class WorldTreasureReward extends MongoBase { score = 0; setRewardStatusMap(new HashMap<>()); setIsBuy(0); -// updateRound(round+1); } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 57484a171..b1e5f30de 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -23,6 +23,7 @@ import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; +import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; @@ -550,6 +551,12 @@ public class ExpeditionLogic { //重置 if(TimeUtils.nowInt()>=createTime){ user.getExpeditionManager().resetTreasureReward(); + // 天宫秘宝礼包刷新 + ReceiveWelfareBag bagInfo = (ReceiveWelfareBag) user.getPlayerInfoManager().getNewRechargeInfo().getReceiveMap().get(106); + if (bagInfo == null){ + return; + } + bagInfo.refresh(); sendAllTreasureInfo(user); BuyGoodsNewLogic.sendGiftGooodsIndication(user.getId()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index c3a6de4a5..387221167 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -389,7 +389,7 @@ public class BuyGoodsNewLogic { ExpeditionLogic.sendTreasureRewardUpdate(session,user.getExpeditionManager().getWorldTreasureReward().getScore(), rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime(),1); } - if(type == GiftGoodsType.SUN_LONG){ + if(type == GiftGoodsType.SUN_LONG){ PlayerManager playerManager = user.getPlayerInfoManager(); playerManager.setHadBuyTreasure(1); playerManager.setTreasureLevel(playerManager.getTreasureLevel()+15); @@ -786,7 +786,12 @@ public class BuyGoodsNewLogic { }else{ builder.setDynamicBuyTimes(bag.getLimit() - bag.getBuyTimes()); } - + // 礼包类型特殊处理,使用bought字段验证是否购买 + if(bag.getType() == RechargeType.receive.getType()){ + ReceiveWelfareBag receiveBag = (ReceiveWelfareBag) bag; + int bought = receiveBag.isBought()?1:0; + builder.setIsBought(bought); + } return builder.build(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java index ef43567ef..e550848a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/newRechargeInfo/bean/ReceiveWelfareBag.java @@ -58,23 +58,20 @@ public class ReceiveWelfareBag extends AbstractWelfareBag { @Override public boolean buy() { - if(super.buy()){ - if(bought){ - LOGGER.error("礼包:{}已经购买",getModId()); - return false; - }else { - setBought(true); - setStartTime(TimeUtils.getTodayZero()); - if(getDailyUpdate()>0){ - setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); - } - if(getEndTime()!=0){ - setEndTime(TimeUtils.getTodayZero() + getContinueDays() * TimeUtils.DAY); - } - return true; + if (bought) { + LOGGER.error("礼包:{}已经购买", getModId()); + return false; + } else { + setBought(true); + setStartTime(TimeUtils.getTodayZero()); + if (getDailyUpdate() > 0) { + setRefreshTime(getStartTime() + getDailyUpdate() * TimeUtils.DAY); } + if (getEndTime() != 0) { + setEndTime(TimeUtils.getTodayZero() + getContinueDays() * TimeUtils.DAY); + } + return true; } - return false; } @Override From dbfd1588c461d60db244fddffdbc72e72404150c Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 17 Nov 2021 09:34:39 +0800 Subject: [PATCH 15/19] =?UTF-8?q?=E5=A2=9E=E5=8A=A0null=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/player/PlayerLogic.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 1f415f213..ccd9b0717 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -1739,7 +1739,8 @@ public class PlayerLogic { return null; } } - if (userStr == null) { + if (userStr == null || userStr.isEmpty()) { + LOGGER.error("getUserByRpc ,userStr == null uid={}", uid); return null; } Gson gson = RedisUtil.getInstence().getGson(); From 9d90b6b6bf12f9a81cef4aa9a7c93e73e751da1b Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 17 Nov 2021 10:32:17 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8id=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java index dda3657b9..b087690dc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/cross/CSPlayer.java @@ -1,5 +1,8 @@ package com.ljsd.jieling.logic.dao.cross; +import com.ljsd.GameApplication; +import com.ljsd.jieling.db.mongo.AreaManager; + /** * @Author hj * @Date 2021/8/31 15:30:04 @@ -189,6 +192,7 @@ public class CSPlayer { } public int getServerId() { + int serverId = AreaManager.getInstance().getServerIdByUid(userId, GameApplication.serverId); return serverId; } From 252208e6fbdea9410ea39e51a76bc6809c5281c0 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 17 Nov 2021 13:11:48 +0800 Subject: [PATCH 17/19] =?UTF-8?q?=E5=90=88=E6=88=90=E5=AE=9D=E7=89=A9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/item/ItemLogic.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index 41b93ff25..e66660e14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -781,18 +781,27 @@ public class ItemLogic { } public static TreeSet getJewelEquipWithLeve(User user, int type, int rance, int leve) { - return user.getEquipManager().getEquipMap().entrySet().stream().filter(stringEquipEntry -> - StringUtil.isEmpty(stringEquipEntry.getValue().getHeroId()) - ).filter(stringPropertyItemEntry -> stringPropertyItemEntry.getValue() instanceof Jewel).filter(stringPropertyItemEntry -> { - if (((Jewel) stringPropertyItemEntry.getValue()).getBuildLevel() != 0 || stringPropertyItemEntry.getValue().getLevel() != 0) { - return false; - } + TreeSet strings = new TreeSet<>(); + for (Map.Entry stringPropertyItemEntry : user.getEquipManager().getEquipMap().entrySet()) { SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(stringPropertyItemEntry.getValue().getEquipId()); if (config == null) { - return false; + continue; } - return config.getLocation() == type && config.getRace() == rance && config.getLevel() == leve; - }).map(Map.Entry::getKey).collect(Collectors.toCollection(TreeSet::new)); + if (config.getLocation() != type || config.getRace() != rance || config.getLevel() != leve) { + continue; + } + if (!StringUtil.isEmpty(stringPropertyItemEntry.getValue().getHeroId())) { + Hero hero = user.getHeroManager().getHero(stringPropertyItemEntry.getValue().getHeroId()); + if (hero != null && hero.getJewelInfo().contains(stringPropertyItemEntry.getKey())) { + continue; + } + } + if (((Jewel) stringPropertyItemEntry.getValue()).getBuildLevel() != 0 || stringPropertyItemEntry.getValue().getLevel() != 0) { + continue; + } + strings.add(stringPropertyItemEntry.getValue().getId()); + } + return strings; } /** From daa339ee54e0d9e68f80a1aa055821e106346520 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 17 Nov 2021 17:16:28 +0800 Subject: [PATCH 18/19] =?UTF-8?q?=E8=84=B1=E8=A3=85=E5=A4=87bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java | 1 - 1 file changed, 1 deletion(-) 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 f84710b06..3d14c1206 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 @@ -3268,7 +3268,6 @@ public class HeroLogic { if (heroManager.getHero(equip.getHeroId()) == null) { equip.setHeroId(""); } - return; } String remove = ""; From 7961a4069020bcd74536a58a188bf533d46d2f4e Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 17 Nov 2021 17:24:30 +0800 Subject: [PATCH 19/19] =?UTF-8?q?=E5=AE=9D=E7=89=A9=E5=88=86=E8=A7=A3bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/item/ItemLogic.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index e66660e14..7c9816047 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -336,8 +336,11 @@ public class ItemLogic { throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_NO_EQUIP); } PropertyItem propertyItem = equipMap.get(jewelId); - if (!StringUtil.isEmpty(propertyItem.getHeroId())&&user.getHeroManager().getHero(propertyItem.getHeroId())!=null) { - throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_SOULE_CANT); + if (!StringUtil.isEmpty(propertyItem.getHeroId())) { + Hero hero = user.getHeroManager().getHero(propertyItem.getHeroId()); + if (hero != null && hero.getJewelInfo().contains(jewelId)) { + throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_SOULE_CANT); + } } Jewel jewel = (Jewel) propertyItem; SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(propertyItem.getEquipId());