From 9690a3f414a55764ef42c206fa8f6bf0d78a261f Mon Sep 17 00:00:00 2001 From: gaojie Date: Wed, 12 Jun 2019 20:52:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=BD=E5=8F=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/chat/logic/ChatLogic.java | 8 +++-- .../handler/GameGM/GMRequestHandler.java | 4 +-- .../jieling/logic/friend/FriendLogic.java | 36 ++++++++++++------- .../jieling/logic/player/PlayerLogic.java | 4 +++ 4 files changed, 34 insertions(+), 18 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java index 5e9078e53..130ce0b87 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java @@ -58,8 +58,10 @@ public class ChatLogic { CBean2Proto.getChatInfoBuilder(user,message,time); } } - //取出数据好友聊天数据后删除 - RedisUtil.getInstence().hdel(GameApplication.serverId + RedisKey.CUser_Chat + uid); + if (hmget!= null && hmget.size() != 0){ + //取出数据好友聊天数据后删除 + RedisUtil.getInstence().hdel(GameApplication.serverId + RedisKey.CUser_Chat + uid); + } break; } ChatProto.GetChatMessageInfoResponse getChatMessageInfoResponse = ChatProto.GetChatMessageInfoResponse @@ -96,7 +98,7 @@ public class ChatLogic { .setChatInfo(chatInfo) .build(); assert sessionByUid != null; - MessageUtil.sendMessage(sessionByUid, 1, MessageTypeProto.MessageType.SEND_FRIEND_INFO_INDICATION_VALUE, sendChatInfoIndication, true); + MessageUtil.sendMessage(sessionByUid, 1, MessageTypeProto.MessageType.SEND_CHAT_INFO_INDICATION_VALUE, sendChatInfoIndication, true); }else{ RedisUtil.getInstence().hset(GameApplication.serverId +RedisKey.CUser_Chat+friendId,uid +"#"+ nowTime,message, -1); } 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 7219cf2b1..c3965e800 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 @@ -196,8 +196,8 @@ public class GMRequestHandler extends BaseHandler{ break; case GlobalGm.RESET_USER_NAME: PlayerLogic.getInstance().resetUserName(iSession,prarm3,1,0); - default: - break; + break; + default: } try { 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 ddb85d715..40f0412cd 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 @@ -168,7 +168,7 @@ public class FriendLogic { applyFriends.remove(0); } friendManager.addApplyFriend(uid); - sendFriendInfoIndication(inviteUid); + sendFriendInfoIndication(uid,1); } MessageUtil.sendMessage(iSession, 1, msgId, null, true); } @@ -177,14 +177,16 @@ public class FriendLogic { * 在线好友申请推送 * @param inviteUid */ - private void sendFriendInfoIndication(int inviteUid) throws Exception { + private void sendFriendInfoIndication(int inviteUid,int type) throws Exception { boolean isOnline = OnlineUserManager.checkUidOnline(inviteUid); if (isOnline){ ISession session = OnlineUserManager.getSessionByUid(inviteUid); - PlayerInfoProto.sendFriendInfoIndication sendFriendInfoIndication = PlayerInfoProto.sendFriendInfoIndication.newBuilder() - .setFriends(CBean2Proto.getFriendInfo(inviteUid,null)) - .build(); - MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.SEND_FRIEND_INFO_INDICATION_VALUE, sendFriendInfoIndication, true); + PlayerInfoProto.sendFriendInfoIndication.Builder sendFriendInfoIndication = PlayerInfoProto.sendFriendInfoIndication.newBuilder(); + sendFriendInfoIndication .setType(type); + if (type == 1){ + sendFriendInfoIndication .setFriends(CBean2Proto.getFriendInfo(inviteUid,null)); + } + MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.SEND_FRIEND_INFO_INDICATION_VALUE, sendFriendInfoIndication.build(), true); } } @@ -214,9 +216,6 @@ public class FriendLogic { MessageUtil.sendErrorResponse(iSession,0,msgId,"好友已达上限"); return; } - if (applyFriends.contains(friendId)){ - friendManager.delApplyFriend(friendId); - } friendUser = UserManager.getUser(friendId); FriendManager friendfriendManager = friendUser.getFriendManager(); friendFriendList = friendUser.getFriendManager().getFriends(); @@ -224,9 +223,17 @@ public class FriendLogic { MessageUtil.sendErrorResponse(iSession,0,msgId,"对方好友已达上限"); return; } - friendfriendManager.addFriendId(uid); + if (applyFriends.contains(friendId)){ + friendManager.delApplyFriend(friendId); + } + if (friendfriendManager.getApplyFriends().contains(uid)){ + friendfriendManager.delApplyFriend(uid); + } friendManager.addFriendId(friendId); + friendfriendManager.addFriendId(uid); + initFriendGriveAndRreward(friendId, uid, friendManager, friendfriendManager); + sendFriendInfoIndication(friendId,2); break; case 2://拒绝 applyFriends = friendManager.getApplyFriends(); @@ -265,6 +272,7 @@ public class FriendLogic { friendfriendManager.addFriendId(uid); friendManager.addFriendId(applyfriendId); initFriendGriveAndRreward(applyfriendId, uid, friendManager, friendfriendManager); + sendFriendInfoIndication(applyfriendId,2); } } @@ -294,7 +302,7 @@ public class FriendLogic { User friendUser = UserManager.getUser(friendId); FriendManager friendManager1 = friendUser.getFriendManager(); delFriendInfo(friendId, uid, friendManager, friendManager1); - sendFriendInfoIndication(friendId); + sendFriendInfoIndication(friendId,3); MessageUtil.sendMessage(iSession, 1, msgId, null, true); } //删除好友清除赠送领取体力信息 @@ -338,6 +346,7 @@ public class FriendLogic { } friendManager.updateGiveMap(friendId,1); friendManager1.updateHaveRewardMap(uid,1); + sendFriendInfoIndication(friendId,4); }else{ //赠送全部好友 for (Integer friendUserId : friends) { if (giveMap.get(friendUserId) == 1) { @@ -351,6 +360,7 @@ public class FriendLogic { } friendManager.updateGiveMap(friendUserId,1); friendManager1.updateHaveRewardMap(uid,1); + sendFriendInfoIndication(friendUserId,4); } } MessageUtil.sendMessage(iSession, 1, msgId, null, true); @@ -363,7 +373,7 @@ public class FriendLogic { * @param type */ public void takeHeart(ISession iSession, int friendId, int type) throws Exception { - int msgId = MessageTypeProto.MessageType.FRIEND_GIVE_PRESENT_RESPONSE_VALUE; + int msgId = MessageTypeProto.MessageType.FRIEND_TAKE_HEART_RESPONSE_VALUE; int uid = iSession.getUid(); User user = UserManager.getUser(uid); FriendManager friendManager = user.getFriendManager(); @@ -414,7 +424,6 @@ public class FriendLogic { PlayerManager playerInfoManager = user.getPlayerInfoManager(); FriendManager friendManager = user.getFriendManager(); List friends = friendManager.getFriends(); - List applyFriends = friendManager.getApplyFriends(); boolean result = ShieldedWordUtils.checkName( name); if (!result) { MessageUtil.sendErrorResponse(iSession, 0, msgId, ""); @@ -432,6 +441,7 @@ public class FriendLogic { } int type = 1; int friendId = Integer.parseInt(friend.toString()); + List applyFriends = UserManager.getUser(friendId).getFriendManager().getApplyFriends(); if (friends.contains(friendId)){ type = 2; }else if (applyFriends.contains(friendId)){ 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 0e4337a41..71107dc88 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 @@ -83,6 +83,10 @@ public class PlayerLogic { MessageUtil.sendErrorResponse(iSession, 0, msgId, ""); return; } + if (!playerInfoManager.getNickName().equals(String.valueOf(uid))){ + String delkey = RedisKey.getKey(RedisKey.C_User_Name_Key, playerInfoManager.getNickName(), false); + RedisUtil.getInstence().del(delkey); + } playerInfoManager.setNickName(name); String key = RedisKey.getKey(RedisKey.C_User_Name_Key, name, false); RedisUtil.getInstence().set(key, String.valueOf(uid),RedisKey.REDIS_OVER_FOREVER);