// message结构的属性名请使用 驼峰小写字母开始 syntax = "proto3"; option go_package = "/pb"; package pb; import "base_type.proto"; // 聊天数据 message ChatData { // 玩家关联的所有聊天室列表 repeated ChatRoom chatRoomList = 1; // 群组邀请列表 repeated GroupInvite groupInviteList = 2; // 好友列表 repeated FriendRelation friendList = 3; // 好友申请列表 repeated FriendInvite friendInviteList = 4; // 好友黑名单列表 repeated Black blackPlayerList = 5; // 最近私聊(玩家)列表 repeated PrivateChat lastChatPrivateList = 6; // 系统频道消息记录 repeated SystemMsg systemMsgList = 7; // 聊天设置 ChatSetting chatSetting = 8; } // 聊天室信息更新 message ChatRoomUpdate { // 聊天室信息 ChatRoom chatRoom = 1; // 是否是删除 true:退出聊天室 false:加入聊天室 bool isExit = 2; } // 聊天室信息 message ChatRoom { // 聊天室类型 int32 chatType = 1; // 聊天室ID int64 chatID = 2; // 聊天室名称 string name = 3; // 拥有者玩家ID int64 ownerPlayerID = 4; // 免费发言剩余次数(根据配置生效) int32 freeSendCount = 5; // 是否接收消息 bool isMute = 6; // 加入时间(可排序) int64 joinTime = 7; } // 聊天室类型的消息列表 message ChatMsgList { // 聊天室类型 int32 chatType = 1; // 聊天室ID int64 chatID = 2; // 是否为新消息 bool isNew = 3; // 消息列表 repeated ChatMsg list = 4; } // 多条聊天消息列表 message ChatMsgs { repeated ChatMsg list = 1; } // 聊天消息 message ChatMsg { // 消息唯一id int64 msgID = 1; // 发送者 ChatPlayer sender = 2; // 发送时间 int64 sendTime = 3; // 消息类型 0.纯文本 其他参考:L-聊天-消息模板表 消息类型的定义 int32 type = 4; // 文本内容 string text = 5; // 消息类型和参数(根据消息类型拼接内容) ParamsTemplate params = 6; } // 消息内容 message ChatContent { // 消息唯一id int64 msgID = 1; // 发送时间(可排序) int64 sendTime = 2; // 消息类型 0.纯文本 其他参考:L-聊天-消息模板表 消息类型的定义 int32 type = 3; // 文本内容 string text = 4; // 消息类型和参数(根据消息类型拼接内容) ParamsTemplate params = 5; } // 系统频道消息 message SystemMsg { // 时间 int64 time = 1; // 消息类型和参数(根据消息类型拼接内容) ParamsTemplate params = 2; } // 聊天室玩家列表 message ChatPlayerList { // 玩家列表 repeated ChatPlayer list = 1; } // 聊天室玩家信息 message ChatPlayer { // 玩家id int64 playerID = 1; // 玩家名称 string playerName = 2; // 玩家领主等级 int32 lordLevel = 3; // 头像 int32 iconID = 4; // 头像框 int32 frameID = 5; // 游戏节点id string gameNodeID = 6; // 联盟id int64 leagueID = 7; // 联盟名称 string leagueName = 8; // 联盟职位 int32 leagueJob = 9; // 地图id string mapNodeID = 10; // 赛季id int32 seasonID = 11; // 所属州 int32 stateID = 12; // 声望 int32 prestige = 13; // 联盟简称 string leagueAbbName = 14; } // 发送聊天消息请求 message ChatSend { // 类型 1.世界 2.联盟 3.地图 4.群组 int32 chatType = 1; // 聊天室ID int64 chatID = 2; // 内容 string text = 3; } // 拉取聊天消息记录请求 message ChatMsgRequest { // 聊天室类型 int32 chatType = 1; // 聊天室ID int64 chatID = 2; // 传0获取最新的20条,传最后一个MsgID获取更早的20条 int64 lastMsgID = 3; } // 创建群组聊天室 message GroupCreate { // 群组聊天室名称 string name = 1; // 邀请的玩家ID列表 repeated int64 playerIDList = 2; } // 群组玩家更改 message GroupPlayerChange { // 群组聊天室ID int64 chatID = 1; // 最新的玩家ID列表(服务端自动处理新增加的和被踢除的) repeated int64 playerIDList = 2; } // 群组邀请确认 message GroupInviteConfirm { // 群组聊天室ID int64 chatID = 1; // 是否接受 bool isAccept = 2; // 是否一键全部拒绝 bool isRejectAll = 3; } // 群组聊天室邀请信息 message GroupInvite { // 群组聊天室ID int64 chatID = 1; // 群组聊天室名称 string name = 2; // 邀请人信息 ChatPlayer invitePlayer = 3; // 邀请时间(可排序) int64 inviteTime = 4; } // 群组免打扰设置 message GroupMute { // 聊天室ID int64 chatID = 2; // 是否免打扰 bool isMute = 3; } // 发送私聊消息请求 message ChatPrivateSend { // 目标玩家ID int64 targetID = 1; // 内容 string text = 2; } // 聊天相关的设置 message ChatSetting { // 是否开启申请好友 bool isFriendInviteMute = 1; // 是否开启群组邀请 bool isGroupInviteMute = 2; // 是否开启私聊 bool isPrivateChatMute = 3; } // 好友邀请确认 message FriendInviteConfirm { // 邀请的玩家ID int64 playerID = 1; // 是否接受 bool isAccept = 2; // 是否一键全部拒绝 bool isRejectAll = 3; } // 黑名单请求 message BlackSetting { // 玩家ID int64 playerID = 1; // 是否拉黑 true拉黑 false 取消拉黑 bool isBlack = 2; } // 好友关系 message FriendRelation { // 好友信息 ChatPlayer friendPlayer = 1; // 建立时间(可排序) int64 createTime = 2; // 最近一条聊天内容 ChatContent LastContent = 3; } // 好友申请 message FriendInvite { // 玩家信息 ChatPlayer invitePlayer = 1; // 邀请时间(可排序) int64 inviteTime = 2; } // 最近私聊 message PrivateChat { // 玩家信息 ChatPlayer privatePlayer = 1; // 最近一条聊天内容 ChatContent LastContent = 2; } // 黑名单 message Black { // 玩家信息 ChatPlayer blackPlayer = 1; // 建立时间(可排序) int64 createTime = 2; } // 举报玩家 message Complaint { // 举报对象ID int64 targetID = 1; // 举报类型 1.垃圾广告 2.举报外挂 3.不良发言,4.不法行为,5.不雅昵称,6.广告拉人,7.举报其他 int32 complaintType = 2; // 举报内容 string content = 3; }