chat.proto 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. // message结构的属性名请使用 驼峰小写字母开始
  2. syntax = "proto3";
  3. option go_package = "/pb";
  4. package pb;
  5. import "base_type.proto";
  6. // 聊天数据
  7. message ChatData {
  8. // 玩家关联的所有聊天室列表
  9. repeated ChatRoom chatRoomList = 1;
  10. // 群组邀请列表
  11. repeated GroupInvite groupInviteList = 2;
  12. // 好友列表
  13. repeated FriendRelation friendList = 3;
  14. // 好友申请列表
  15. repeated FriendInvite friendInviteList = 4;
  16. // 好友黑名单列表
  17. repeated Black blackPlayerList = 5;
  18. // 最近私聊(玩家)列表
  19. repeated PrivateChat lastChatPrivateList = 6;
  20. // 系统频道消息记录
  21. repeated SystemMsg systemMsgList = 7;
  22. // 聊天设置
  23. ChatSetting chatSetting = 8;
  24. }
  25. // 聊天室信息更新
  26. message ChatRoomUpdate {
  27. // 聊天室信息
  28. ChatRoom chatRoom = 1;
  29. // 是否是删除 true:退出聊天室 false:加入聊天室
  30. bool isExit = 2;
  31. }
  32. // 聊天室信息
  33. message ChatRoom {
  34. // 聊天室类型
  35. int32 chatType = 1;
  36. // 聊天室ID
  37. int64 chatID = 2;
  38. // 聊天室名称
  39. string name = 3;
  40. // 拥有者玩家ID
  41. int64 ownerPlayerID = 4;
  42. // 免费发言剩余次数(根据配置生效)
  43. int32 freeSendCount = 5;
  44. // 是否接收消息
  45. bool isMute = 6;
  46. // 加入时间(可排序)
  47. int64 joinTime = 7;
  48. }
  49. // 聊天室类型的消息列表
  50. message ChatMsgList {
  51. // 聊天室类型
  52. int32 chatType = 1;
  53. // 聊天室ID
  54. int64 chatID = 2;
  55. // 是否为新消息
  56. bool isNew = 3;
  57. // 消息列表
  58. repeated ChatMsg list = 4;
  59. }
  60. // 多条聊天消息列表
  61. message ChatMsgs {
  62. repeated ChatMsg list = 1;
  63. }
  64. // 聊天消息
  65. message ChatMsg {
  66. // 消息唯一id
  67. int64 msgID = 1;
  68. // 发送者
  69. ChatPlayer sender = 2;
  70. // 发送时间
  71. int64 sendTime = 3;
  72. // 消息类型 0.纯文本 其他参考:L-聊天-消息模板表 消息类型的定义
  73. int32 type = 4;
  74. // 文本内容
  75. string text = 5;
  76. // 消息类型和参数(根据消息类型拼接内容)
  77. ParamsTemplate params = 6;
  78. }
  79. // 消息内容
  80. message ChatContent {
  81. // 消息唯一id
  82. int64 msgID = 1;
  83. // 发送时间(可排序)
  84. int64 sendTime = 2;
  85. // 消息类型 0.纯文本 其他参考:L-聊天-消息模板表 消息类型的定义
  86. int32 type = 3;
  87. // 文本内容
  88. string text = 4;
  89. // 消息类型和参数(根据消息类型拼接内容)
  90. ParamsTemplate params = 5;
  91. }
  92. // 系统频道消息
  93. message SystemMsg {
  94. // 时间
  95. int64 time = 1;
  96. // 消息类型和参数(根据消息类型拼接内容)
  97. ParamsTemplate params = 2;
  98. }
  99. // 聊天室玩家列表
  100. message ChatPlayerList {
  101. // 玩家列表
  102. repeated ChatPlayer list = 1;
  103. }
  104. // 聊天室玩家信息
  105. message ChatPlayer {
  106. // 玩家id
  107. int64 playerID = 1;
  108. // 玩家名称
  109. string playerName = 2;
  110. // 玩家领主等级
  111. int32 lordLevel = 3;
  112. // 头像
  113. int32 iconID = 4;
  114. // 头像框
  115. int32 frameID = 5;
  116. // 游戏节点id
  117. string gameNodeID = 6;
  118. // 联盟id
  119. int64 leagueID = 7;
  120. // 联盟名称
  121. string leagueName = 8;
  122. // 联盟职位
  123. int32 leagueJob = 9;
  124. // 地图id
  125. string mapNodeID = 10;
  126. // 赛季id
  127. int32 seasonID = 11;
  128. // 所属州
  129. int32 stateID = 12;
  130. // 声望
  131. int32 prestige = 13;
  132. // 联盟简称
  133. string leagueAbbName = 14;
  134. }
  135. // 发送聊天消息请求
  136. message ChatSend {
  137. // 类型 1.世界 2.联盟 3.地图 4.群组
  138. int32 chatType = 1;
  139. // 聊天室ID
  140. int64 chatID = 2;
  141. // 内容
  142. string text = 3;
  143. }
  144. // 拉取聊天消息记录请求
  145. message ChatMsgRequest {
  146. // 聊天室类型
  147. int32 chatType = 1;
  148. // 聊天室ID
  149. int64 chatID = 2;
  150. // 传0获取最新的20条,传最后一个MsgID获取更早的20条
  151. int64 lastMsgID = 3;
  152. }
  153. // 创建群组聊天室
  154. message GroupCreate {
  155. // 群组聊天室名称
  156. string name = 1;
  157. // 邀请的玩家ID列表
  158. repeated int64 playerIDList = 2;
  159. }
  160. // 群组玩家更改
  161. message GroupPlayerChange {
  162. // 群组聊天室ID
  163. int64 chatID = 1;
  164. // 最新的玩家ID列表(服务端自动处理新增加的和被踢除的)
  165. repeated int64 playerIDList = 2;
  166. }
  167. // 群组邀请确认
  168. message GroupInviteConfirm {
  169. // 群组聊天室ID
  170. int64 chatID = 1;
  171. // 是否接受
  172. bool isAccept = 2;
  173. // 是否一键全部拒绝
  174. bool isRejectAll = 3;
  175. }
  176. // 群组聊天室邀请信息
  177. message GroupInvite {
  178. // 群组聊天室ID
  179. int64 chatID = 1;
  180. // 群组聊天室名称
  181. string name = 2;
  182. // 邀请人信息
  183. ChatPlayer invitePlayer = 3;
  184. // 邀请时间(可排序)
  185. int64 inviteTime = 4;
  186. }
  187. // 群组免打扰设置
  188. message GroupMute {
  189. // 聊天室ID
  190. int64 chatID = 2;
  191. // 是否免打扰
  192. bool isMute = 3;
  193. }
  194. // 发送私聊消息请求
  195. message ChatPrivateSend {
  196. // 目标玩家ID
  197. int64 targetID = 1;
  198. // 内容
  199. string text = 2;
  200. }
  201. // 聊天相关的设置
  202. message ChatSetting {
  203. // 是否开启申请好友
  204. bool isFriendInviteMute = 1;
  205. // 是否开启群组邀请
  206. bool isGroupInviteMute = 2;
  207. // 是否开启私聊
  208. bool isPrivateChatMute = 3;
  209. }
  210. // 好友邀请确认
  211. message FriendInviteConfirm {
  212. // 邀请的玩家ID
  213. int64 playerID = 1;
  214. // 是否接受
  215. bool isAccept = 2;
  216. // 是否一键全部拒绝
  217. bool isRejectAll = 3;
  218. }
  219. // 黑名单请求
  220. message BlackSetting {
  221. // 玩家ID
  222. int64 playerID = 1;
  223. // 是否拉黑 true拉黑 false 取消拉黑
  224. bool isBlack = 2;
  225. }
  226. // 好友关系
  227. message FriendRelation {
  228. // 好友信息
  229. ChatPlayer friendPlayer = 1;
  230. // 建立时间(可排序)
  231. int64 createTime = 2;
  232. // 最近一条聊天内容
  233. ChatContent LastContent = 3;
  234. }
  235. // 好友申请
  236. message FriendInvite {
  237. // 玩家信息
  238. ChatPlayer invitePlayer = 1;
  239. // 邀请时间(可排序)
  240. int64 inviteTime = 2;
  241. }
  242. // 最近私聊
  243. message PrivateChat {
  244. // 玩家信息
  245. ChatPlayer privatePlayer = 1;
  246. // 最近一条聊天内容
  247. ChatContent LastContent = 2;
  248. }
  249. // 黑名单
  250. message Black {
  251. // 玩家信息
  252. ChatPlayer blackPlayer = 1;
  253. // 建立时间(可排序)
  254. int64 createTime = 2;
  255. }
  256. // 举报玩家
  257. message Complaint {
  258. // 举报对象ID
  259. int64 targetID = 1;
  260. // 举报类型 1.垃圾广告 2.举报外挂 3.不良发言,4.不法行为,5.不雅昵称,6.广告拉人,7.举报其他
  261. int32 complaintType = 2;
  262. // 举报内容
  263. string content = 3;
  264. }