//跨服聊天提交

back_recharge
mengchengzhen 2021-07-28 17:42:53 +08:00
parent 8eb605135d
commit 6b76168938
2 changed files with 33 additions and 2 deletions

View File

@ -14,10 +14,12 @@ import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.GlobleSystemLogic;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.dao.FriendManager;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.gm.ArenaOfUser;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.network.session.ISession;
@ -31,6 +33,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.TimeUtils;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -250,9 +253,11 @@ public class ChatLogic {
}
messageId = RedisUtil.getInstence().increment( RedisKey.CHAT_CROSS_MSG_ID + group);
chatInfo = CBean2Proto.getChatInfoBuilder(user,message,nowTime,messageId);
chatInfo = CBean2Proto.getCrossChatInfoBuilder(user,message,nowTime,messageId);
MessageCache.addCrossMsg(chatInfo,messageId,String.valueOf(group));
checkSaveUser(user);
break;
default: {
break;
@ -263,6 +268,13 @@ public class ChatLogic {
MessageUtil.sendMessage(iSession, 1, msgId, null, true);
}
private void checkSaveUser(User user) throws Exception {
ArenaOfUser query = CrossServiceLogic.getInstance().query(user.getId());
if (query == null){
CrossServiceLogic.getInstance().dispose(user);
}
}
//记录聊天信息
private void onSendChatSuccess(User user,int chatType,String message){
RedisUtil redisUtil = RedisUtil.getInstence();

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.util;
import com.ljsd.GameApplication;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
@ -524,6 +525,24 @@ public class CBean2Proto {
return chatInfo.build();
}
public static ChatProto.ChatInfo getCrossChatInfoBuilder(User user,String message,long time,long messageId) {
ChatProto.ChatInfo.Builder chatInfo = ChatProto.ChatInfo.newBuilder();
PlayerManager playerInfoManager = user.getPlayerInfoManager();
chatInfo.setSenderId(user.getId());
chatInfo.setSenderName(GameApplication.serverId+"_"+playerInfoManager.getNickName());
chatInfo.setSenderlevel(playerInfoManager.getLevel());
chatInfo.setSendervip(playerInfoManager.getVipLevel());
chatInfo.setTimes(time);
chatInfo.setMsg(message);
chatInfo.setHead(playerInfoManager.getHead());
chatInfo.setFrame(playerInfoManager.getHeadFrame());
chatInfo.setSoulVal(playerInfoManager.getMaxForce());
chatInfo.setMessageId(messageId);
chatInfo.setUserTitle(playerInfoManager.getUserTitle());
chatInfo.setPracticeLevel(user.getHeroManager().getPracticeLevel());
return chatInfo.build();
}
public static ChatProto.ChatInfo getSysChatInfoBuilder(String message,int messageType,String itemId,int type,int startTime, int endTime, int priorityLevel, int multiple,long messageId) {
ChatProto.ChatInfo.Builder chatInfo = ChatProto.ChatInfo.newBuilder();
chatInfo.setItemId(itemId);