EMChatroomManagerDelegate.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. /**
  2. * \~chinese
  3. * @header EMChatroomManagerDelegate.h
  4. * @abstract 聊天室相关的代理协议
  5. * @author Hyphenate
  6. * @version 3.00
  7. *
  8. * \~english
  9. * @header EMChatroomManagerDelegate.h
  10. * @abstract This protocol defined the callbacks of chatroom
  11. * @author Hyphenate
  12. * @version 3.00
  13. */
  14. #import <Foundation/Foundation.h>
  15. NS_ASSUME_NONNULL_BEGIN
  16. /**
  17. * \~chinese
  18. * 被踢出聊天室的枚举类型。
  19. *
  20. * \~english
  21. * The casuse type for kicking out from a chatroom.
  22. */
  23. typedef NS_ENUM(NSInteger, EMChatroomBeKickedReason)
  24. {
  25. EMChatroomBeKickedReasonBeRemoved = 0, /** \~chinese 被管理员移出聊天室类型 \~english Removed by chatroom owner type */
  26. EMChatroomBeKickedReasonDestroyed, /** \~chinese 聊天室被销毁类型 \~english Chatroom has been destroyed type*/
  27. EMChatroomBeKickedReasonOffline, /** \~chinese 当前账号离线类型 \~english Account offline type*/
  28. };
  29. @class EMChatroom;
  30. /**
  31. * \~chinese
  32. * 聊天室相关的代理协议。
  33. *
  34. * \~english
  35. * The callbacks of chatroom.
  36. */
  37. @protocol EMChatroomManagerDelegate <NSObject>
  38. @optional
  39. /**
  40. * \~chinese
  41. * 有用户加入聊天室。
  42. *
  43. * @param aChatroom 加入的聊天室。
  44. * @param aUsername 加入者。
  45. *
  46. * \~english
  47. * A user joined a chatroom.
  48. *
  49. * @param aChatroom The chatroom user joined.
  50. * @param aUsername The user who joined chatroom.
  51. */
  52. - (void)userDidJoinChatroom:(EMChatroom *)aChatroom
  53. user:(NSString *)aUsername;
  54. /**
  55. * \~chinese
  56. * 有用户离开聊天室。
  57. *
  58. * @param aChatroom 离开的聊天室。
  59. * @param aUsername 离开者。
  60. *
  61. * \~english
  62. * Occurs when a user leaves a chatroom.
  63. *
  64. * @param aChatroom The chatroom user left.
  65. * @param aUsername The user who leaved chatroom
  66. */
  67. - (void)userDidLeaveChatroom:(EMChatroom *)aChatroom
  68. user:(NSString *)aUsername;
  69. /**
  70. * \~chinese
  71. * 被踢出聊天室。
  72. *
  73. * @param aChatroom 被踢出的聊天室。
  74. * @param aReason 被踢出的原因。
  75. *
  76. * \~english
  77. * Occurs when a user is dismissed from a chat room.
  78. *
  79. * @param aChatroom The chatroom user is dismissed from.
  80. * @param aReason The reason of the user was kicked out.
  81. */
  82. - (void)didDismissFromChatroom:(EMChatroom *)aChatroom
  83. reason:(EMChatroomBeKickedReason)aReason;
  84. /**
  85. * \~chinese
  86. * 聊天室详情已有改动,需调用获取聊天室详情api(IEMChatroomManager.h : getChatroomSpecificationFromServerWithId)得到最新聊天室信息
  87. *
  88. * @param aChatroom 聊天室
  89. *
  90. * \~english
  91. * Occurs when the chatroom specification update,Need to call for a chat room details API (IEMChatroomManager. H: getChatroomSpecificationFromServerWithId) to get the latest information chat room
  92. *
  93. * @param aChatroom The chatroom.
  94. */
  95. - (void)chatroomSpecificationDidUpdate:(EMChatroom *)aChatroom;
  96. /**
  97. * \~chinese
  98. * 有成员被加入禁言列表。
  99. *
  100. * @param aChatroom 聊天室。
  101. * @param aMutes 被禁言的成员。
  102. * @param aMuteExpire 禁言失效时间,暂时不可用。
  103. *
  104. * \~english
  105. * Users are added to the mute list.
  106. *
  107. * @param aChatroom The Chatroom.
  108. * @param aMutes The users who are muted.
  109. * @param aMuteExpire The mute expire duration, not available at this time.
  110. */
  111. - (void)chatroomMuteListDidUpdate:(EMChatroom *)aChatroom
  112. addedMutedMembers:(NSArray<NSString *> *)aMutes
  113. muteExpire:(NSInteger)aMuteExpire;
  114. /**
  115. * \~chinese
  116. * 有成员被移出禁言列表。
  117. *
  118. * @param aChatroom 聊天室。
  119. * @param aMutedMembers 被移出禁言列表的成员。
  120. *
  121. * \~english
  122. * Users are removed from the mute list.
  123. *
  124. * @param aChatroom The Chatroom.
  125. * @param aMutedMembers The users who are removed from MutedList.
  126. */
  127. - (void)chatroomMuteListDidUpdate:(EMChatroom *)aChatroom
  128. removedMutedMembers:(NSArray<NSString *> *)aMutes;
  129. /**
  130. * \~chinese
  131. * 有成员被加入白名单。
  132. *
  133. * @param aChatroom 聊天室。
  134. * @param aMembers 被加入白名单的成员。
  135. *
  136. * \~english
  137. * Users are added to the allowlist.
  138. *
  139. * @param aChatroom The Chatroom.
  140. * @param aMutedMembers The users who are added to allowlist.
  141. */
  142. - (void)chatroomWhiteListDidUpdate:(EMChatroom *)aChatroom
  143. addedWhiteListMembers:(NSArray<NSString *> *)aMembers;
  144. /**
  145. * \~chinese
  146. * 有成员被移出白名单。
  147. *
  148. * @param aChatroom 聊天室。
  149. * @param aMembers 被移出白名单的成员。
  150. *
  151. * \~english
  152. * Users are removed from the allowlist.
  153. *
  154. * @param aChatroom The Chatroom.
  155. * @param aMembers The users who are removed from the allowlist.
  156. */
  157. - (void)chatroomWhiteListDidUpdate:(EMChatroom *)aChatroom
  158. removedWhiteListMembers:(NSArray<NSString *> *)aMembers;
  159. /**
  160. * \~chinese
  161. * 聊天室全部禁言状态变化。
  162. *
  163. * @param aChatroom 聊天室。
  164. * @param aMuted 是否被全部禁言。
  165. *
  166. * \~english
  167. * Whether group members are all muted.
  168. *
  169. * @param aChatroom The Chatroom.
  170. * @param aMuted Whether all members are muted.
  171. */
  172. - (void)chatroomAllMemberMuteChanged:(EMChatroom *)aChatroom
  173. isAllMemberMuted:(BOOL)aMuted;
  174. /**
  175. * \~chinese
  176. * 有成员被加入管理员列表。
  177. *
  178. * @param aChatroom 聊天室。
  179. * @param aAdmin 加入管理员列表的成员。
  180. *
  181. * \~english
  182. * A user is added to the admin list.
  183. *
  184. * @param aChatroom The Chatroom
  185. * @param aAdmin The user who is added to the admin list.
  186. */
  187. - (void)chatroomAdminListDidUpdate:(EMChatroom *)aChatroom
  188. addedAdmin:(NSString *)aAdmin;
  189. /**
  190. * \~chinese
  191. * 有成员被移出管理员列表。
  192. *
  193. * @param aChatroom 聊天室。
  194. * @param aAdmin 移出管理员列表的成员。
  195. *
  196. * \~english
  197. * A user is removed from the admin list.
  198. *
  199. * @param aChatroom The Chatroom.
  200. * @param aAdmin The user who is removed from adminList.
  201. */
  202. - (void)chatroomAdminListDidUpdate:(EMChatroom *)aChatroom
  203. removedAdmin:(NSString *)aAdmin;
  204. /**
  205. * \~chinese
  206. * 聊天室所有者有更新。
  207. *
  208. * @param aChatroom 聊天室。
  209. * @param aNewOwner 新群主。
  210. * @param aOldOwner 旧群主。
  211. *
  212. * \~english
  213. * The owner is updated.
  214. *
  215. * @param aChatroom The Chatroom
  216. * @param aNewOwner The New Owner
  217. * @param aOldOwner The Old Owner
  218. */
  219. - (void)chatroomOwnerDidUpdate:(EMChatroom *)aChatroom
  220. newOwner:(NSString *)aNewOwner
  221. oldOwner:(NSString *)aOldOwner;
  222. /**
  223. * \~chinese
  224. * 聊天室公告有更新。
  225. *
  226. * @param aChatroom 聊天室。
  227. * @param aAnnouncement 公告内容。
  228. *
  229. * \~english
  230. * The announcement is updated.
  231. *
  232. * @param aChatroom The Chatroom
  233. * @param aAnnouncement The Announcement content.
  234. */
  235. - (void)chatroomAnnouncementDidUpdate:(EMChatroom *)aChatroom
  236. announcement:(NSString * _Nullable )aAnnouncement;
  237. /**
  238. * \~chinese
  239. * 聊天室属性有更新。
  240. *
  241. * @param roomid 聊天室id。
  242. * @param attributeMap 聊天室属性。
  243. * @param fromId 操作人id
  244. *
  245. * \~english
  246. * The announcement is updated.
  247. *
  248. * @param roomid The Chatroom's id
  249. * @param attributeMap The propertyMap of chatroom
  250. * @param fromId operator's id
  251. */
  252. - (void)chatroomAttributesDidUpdated:( NSString * _Nonnull )roomId attributeMap:(NSDictionary<NSString*,NSString*> * _Nonnull)attributeMap from:(NSString * _Nonnull)fromId;
  253. /**
  254. * \~chinese
  255. * 聊天室属性有移除。
  256. *
  257. * @param roomid 聊天室id。
  258. * @param attributeMap 聊天室属性。
  259. * @param fromId 操作人id
  260. *
  261. * \~english
  262. * The announcement is updated.
  263. *
  264. * @param roomid The Chatroom's id
  265. * @param attributeMap The propertyMap of chatroom
  266. * @param fromId operator's id
  267. */
  268. - (void)chatroomAttributesDidRemoved:( NSString * _Nonnull )roomId attributes:(NSArray<__kindof NSString*> * _Nonnull)attributes from:(NSString * _Nonnull)fromId;
  269. #pragma mark - Deprecated methods
  270. /**
  271. * \~chinese
  272. * 有用户加入聊天室。
  273. *
  274. * 已废弃,请用 {@link userDidJoinChatroom:user:} 代替。
  275. *
  276. * @param aChatroom 加入的聊天室。
  277. * @param aUsername 加入者。
  278. *
  279. * \~english
  280. * Occurs when a user joins a chat room
  281. *
  282. * Deprecated, please use {@link userDidJoinChatroom:user:} instead.
  283. *
  284. * @param aChatroom Joined chatroom
  285. * @param aUsername The user who joined chatroom
  286. */
  287. - (void)didReceiveUserJoinedChatroom:(EMChatroom *)aChatroom
  288. username:(NSString *)aUsername __deprecated_msg("Use -userDidJoinChatroom:user: instead");
  289. /**
  290. * \~chinese
  291. * 有用户离开聊天室。
  292. *
  293. * 已废弃,请用 {@link userDidLeaveChatroom:reason:} 代替。
  294. *
  295. * @param aChatroom 离开的聊天室。
  296. * @param aUsername 离开者。
  297. *
  298. * \~english
  299. * A user leaved the chatroom.
  300. *
  301. * Deprecated, please use {@link userDidLeaveChatroom:reason:} instead.
  302. *
  303. * @param aChatroom The chatroom which the user Leaved from.
  304. * @param aUsername The user who leaved chatroom.
  305. */
  306. - (void)didReceiveUserLeavedChatroom:(EMChatroom *)aChatroom
  307. username:(NSString *)aUsername __deprecated_msg("Use -userDidLeaveChatroom:reason: instead");
  308. /**
  309. * \~chinese
  310. * 被踢出聊天室。
  311. *
  312. * 已废弃,请用 {@link didDismissFromChatroom:reason:} 代替。
  313. *
  314. * @param aChatroom 被踢出的聊天室。
  315. * @param aReason 被踢出聊天室的原因。
  316. *
  317. * \~english
  318. * User was kicked out from the chatroom.
  319. *
  320. * Deprecated, please use {@link didDismissFromChatroom:reason:} instead.
  321. *
  322. * @param aChatroom The chatroom which the user was kicked out from.
  323. * @param aReason The reason of kicked out.
  324. */
  325. - (void)didReceiveKickedFromChatroom:(EMChatroom *)aChatroom
  326. reason:(EMChatroomBeKickedReason)aReason __deprecated_msg("Use -didDismissFromChatroom:reason: instead");
  327. @end
  328. NS_ASSUME_NONNULL_END