From f6199ba471c2751c9398862597dc64df6a7c7c52 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 1 Mar 2023 16:34:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=97=E6=B5=AE=E4=BA=89=E9=94=8B=E4=B8=83?= =?UTF-8?q?=E5=A4=A9=E6=9C=AA=E7=99=BB=E5=BD=95=E7=8E=A9=E5=AE=B6=E4=B8=8D?= =?UTF-8?q?=E5=8F=91=E5=A5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gtw/GetWorldArenaInfoRequestHandler.java | 2 -- .../ljsd/jieling/logic/arena/ArenaLogic.java | 35 ++++++++++--------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaInfoRequestHandler.java index ce6f375eb..739f8e9d7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaInfoRequestHandler.java @@ -67,10 +67,8 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandlersetting.getRestTime()[0]&&diff sessionMap = OnlineUserManager.sessionMap; for(Map.Entry entry:sessionMap.entrySet()){ MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true); @@ -756,33 +756,36 @@ public class ArenaLogic { Set> rankInfo= rank.getRankByKey(String.valueOf(crossGroup), 0, -1); int index = 0; - Iterator> iterator = rankInfo.iterator(); - while (iterator.hasNext()){ + for (ZSetOperations.TypedTuple stringTypedTuple : rankInfo) { + int uid = Integer.parseInt(stringTypedTuple.getValue()); + CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid); index++; - ZSetOperations.TypedTuple next = iterator.next(); - int uid = Integer.parseInt(next.getValue()); - if (uid<1000) { + if (player == null || TimeUtils.now() > (player.getOffLineTime()+TimeUtils.WEEK)){ + LOGGER.error("罗浮争锋发奖,玩家未登陆时间超过七天,不予发奖,uid:{},rank:{}",uid,index); + continue; + } + if (uid < 1000) { continue; } try { User user = UserManager.getUserNotCache(uid); - if(user==null){ + if (user == null) { continue; } Map.Entry entry = rewardMapByRank.floorEntry(index); SMServerArenaReward value = entry.getValue(); int[][] titleReward = value.getTitleReward(); - if(titleReward != null){ - for(int[] reward:titleReward){ - long time = TimeUtils.getBeginOfDay(TimeUtils.now() + reward[1] * 1000L)+TimeUtils.DAY; - user.getPlayerInfoManager().putUserTitleValidTime(reward[0],time); + if (titleReward != null) { + for (int[] reward : titleReward) { + long time = TimeUtils.getBeginOfDay(TimeUtils.now() + reward[1] * 1000L) + TimeUtils.DAY; + user.getPlayerInfoManager().putUserTitleValidTime(reward[0], time); PlayerInfoProto.UserTitleAddIndication.Builder builder = PlayerInfoProto.UserTitleAddIndication.newBuilder().setDecorationId(reward[0]).setTime((int) (time / 1000)); - MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1, MessageTypeProto.MessageType.USER_TITLE_ADD_INDICATION_VALUE,builder.build(),true); + MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()), 1, MessageTypeProto.MessageType.USER_TITLE_ADD_INDICATION_VALUE, builder.build(), true); } } - String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("mserverarena_reward_content",new Object[]{index},new int[]{0},"#"); - MailLogic.getInstance().sendMail(uid,title,content,StringUtil.parseArrayToString(value.getSeasonReward()),TimeUtils.nowInt(),Global.MAIL_EFFECTIVE_TIME); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("mserverarena_reward_content", new Object[]{index}, new int[]{0}, "#"); + MailLogic.getInstance().sendMail(uid, title, content, StringUtil.parseArrayToString(value.getSeasonReward()), TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); } catch (Exception e) { e.printStackTrace(); } @@ -808,9 +811,6 @@ public class ArenaLogic { public void e2b(){ if(getState() != BATTLE_STATE){ LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",getState()); -// if(getState()!=0){ -// initRank(); -// } getInstance().setState(BATTLE_STATE); initRank(); Map sessionMap = OnlineUserManager.sessionMap; @@ -850,6 +850,7 @@ public class ArenaLogic { } return robotIds; } + //初始化机器人信息 private void initRank(){ int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();