From 6165f20a6a02d1cbe43c2565f316e64c27d417ad Mon Sep 17 00:00:00 2001 From: gaojie Date: Tue, 9 Apr 2019 20:16:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/GameGM/GMRequestHandler.java | 13 +++++++++---- .../jieling/handler/GetPlayerInfoHandler.java | 1 - .../com/ljsd/jieling/logic/mail/MailLogic.java | 18 ++++++++++++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index cac84658e..4daa33eee 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -51,11 +51,14 @@ public class GMRequestHandler extends BaseHandler{ int uid = iSession.getUid(); int gmCommandType = Integer.parseInt(commandArray[0]);// 1:道具(type#数量) 2: 卡牌 int prarm1 = 0, prarm2 = 0; + String prarm3 = ""; if (gmCommandType == 0){ prarm1 = Integer.parseInt(commandArray[1]); }else { prarm1 = Integer.parseInt(commandArray[1]); - prarm2 = Integer.parseInt(commandArray[2]); + if (prarm1 ==1){ + prarm3 = commandArray[2].replace(",","#"); + } } User cUser = UserManager.getUser(uid); switch (gmCommandType){ @@ -68,10 +71,8 @@ public class GMRequestHandler extends BaseHandler{ break; case GlobalGm.SEND_MAIIL: int nowTime =(int) (TimeUtils.now()/1000); - Mail mail = new Mail(uid,"GM","GM",prarm1+"#"+prarm2,nowTime,30*24*60*60,"GM", Global.MAIL_TYPE_GM); + Mail mail = new Mail(uid,"GM","GM",prarm3,nowTime,30*24*60*60,"GM", Global.MAIL_TYPE_GM); cUser.getMailManager().addMail(mail); - PlayerInfoProto.RedPointInfo redPointInfo = PlayerInfoProto.RedPointInfo.newBuilder().setType(1).build(); - MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.SEND_RED_POINT_INDICATION_VALUE,redPointInfo,true); break; case GlobalGm.HERO_STAR: CommonProto.Drop.Builder drop = ItemUtil.drop(cUser, new int[][]{{prarm1, 1}}); @@ -140,6 +141,10 @@ public class GMRequestHandler extends BaseHandler{ } try { MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true); + if (gmCommandType == GlobalGm.SEND_MAIIL){ + PlayerInfoProto.RedPointInfo redPointInfo = PlayerInfoProto.RedPointInfo.newBuilder().setType(1).build(); + MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.SEND_RED_POINT_INDICATION_VALUE,redPointInfo,true); + } LOGGER.info("back to client!"); } catch (Exception e) { e.printStackTrace(); 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 8925dd731..e640c8d79 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -63,7 +63,6 @@ public class GetPlayerInfoHandler extends BaseHandler{ . setId(guideItem.getValue()) .build()); } - MailLogic.getInstance().delUserMail(userId); CommonProto.Player player = CBean2Proto.getPlayer(userId, user.getPlayerInfoManager(), user.getPlayerInfoManager().getMapId(), user.getMapManager().getCurMapId(),user.getMapManager()); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index ba2436303..54ef6e35a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -147,9 +147,14 @@ public class MailLogic { Mail mail = mailManager.getMailMap().get(mailId); if (mail == null){ MessageUtil.sendErrorResponse(iSession,0,msgId,""); + return; + } + if (mail.getMailItem().isEmpty()){ + mailManager.removeMail(mailId); + }else{ + mail.setState(Global.MAIL_STATE_READ); + mailManager.addMail(mail); } - mail.setState(Global.MAIL_STATE_READ); - mailManager.addMail(mail); MessageUtil.sendMessage(iSession, 1,msgId, null, true); } @@ -158,6 +163,7 @@ public class MailLogic { User user = UserManager.getUser(userId); MailManager mailManager = user.getMailManager(); StringBuilder mailItem = new StringBuilder(); + List delMailIds = new CopyOnWriteArrayList<>(); for (String mailId : mailIdsList){ Mail mail = mailManager.getMail(mailId); if (mail == null){ @@ -168,11 +174,15 @@ public class MailLogic { }else{ mailItem.append("|").append(mail.getMailItem()); } - mail.setState(Global.MAIL_DRAW_ST_GOT); - mailManager.addMail(mail); + delMailIds.add(mailId); +// mail.setState(Global.MAIL_DRAW_ST_GOT); +// mailManager.addMail(mail); } int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr); + for (String mailId:delMailIds){ + mailManager.removeMail(mailId); + } return dropBuilder; } From 419a5c569e6461d1114cfacbfa32ad82ca56b220 Mon Sep 17 00:00:00 2001 From: gaojie Date: Tue, 9 Apr 2019 23:59:56 +0800 Subject: [PATCH 2/2] fix --- .../com/ljsd/jieling/handler/GameGM/GMRequestHandler.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 4daa33eee..dc5f9648a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -73,6 +73,8 @@ public class GMRequestHandler extends BaseHandler{ int nowTime =(int) (TimeUtils.now()/1000); Mail mail = new Mail(uid,"GM","GM",prarm3,nowTime,30*24*60*60,"GM", Global.MAIL_TYPE_GM); cUser.getMailManager().addMail(mail); + PlayerInfoProto.RedPointInfo redPointInfo = PlayerInfoProto.RedPointInfo.newBuilder().setType(1).build(); + MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.SEND_RED_POINT_INDICATION_VALUE,redPointInfo,true); break; case GlobalGm.HERO_STAR: CommonProto.Drop.Builder drop = ItemUtil.drop(cUser, new int[][]{{prarm1, 1}}); @@ -141,10 +143,6 @@ public class GMRequestHandler extends BaseHandler{ } try { MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true); - if (gmCommandType == GlobalGm.SEND_MAIIL){ - PlayerInfoProto.RedPointInfo redPointInfo = PlayerInfoProto.RedPointInfo.newBuilder().setType(1).build(); - MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.SEND_RED_POINT_INDICATION_VALUE,redPointInfo,true); - } LOGGER.info("back to client!"); } catch (Exception e) { e.printStackTrace();