diff --git a/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java b/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java index ae7729eb..7244233d 100644 --- a/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java @@ -43,13 +43,13 @@ public class QuitGroupHandler extends GroupHandler if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) { sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent()); } else { - WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, "").getQuitGroupNotifyContent(); + WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, request.getKeepMsg()>0?"1":"0", "").getQuitGroupNotifyContent(); sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content); } if((m_messagesStore.getVisibleQuitKickoffNotification() & 0x01) > 0) { Set toUsers = m_messagesStore.getGroupManagers(request.getGroupId(), true); - WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, "").getQuitVisibleGroupNotifyContent(); + WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, request.getKeepMsg()>0?"1":"0", "").getQuitVisibleGroupNotifyContent(); sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content, toUsers); } } diff --git a/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java b/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java index 394379e9..13dceec6 100644 --- a/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java +++ b/common/src/main/java/cn/wildfirechat/proto/WFCMessage.java @@ -41874,6 +41874,16 @@ public final class WFCMessage { * optional .MessageContent notify_content = 3; */ cn.wildfirechat.proto.WFCMessage.MessageContentOrBuilder getNotifyContentOrBuilder(); + + // optional int32 keep_msg = 4; + /** + * optional int32 keep_msg = 4; + */ + boolean hasKeepMsg(); + /** + * optional int32 keep_msg = 4; + */ + int getKeepMsg(); } /** * Protobuf type {@code QuitGroupRequest} @@ -41965,6 +41975,11 @@ public final class WFCMessage { bitField0_ |= 0x00000002; break; } + case 32: { + bitField0_ |= 0x00000004; + keepMsg_ = input.readInt32(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -42096,10 +42111,27 @@ public final class WFCMessage { return notifyContent_; } + // optional int32 keep_msg = 4; + public static final int KEEP_MSG_FIELD_NUMBER = 4; + private int keepMsg_; + /** + * optional int32 keep_msg = 4; + */ + public boolean hasKeepMsg() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * optional int32 keep_msg = 4; + */ + public int getKeepMsg() { + return keepMsg_; + } + private void initFields() { groupId_ = ""; toLine_ = java.util.Collections.emptyList(); notifyContent_ = cn.wildfirechat.proto.WFCMessage.MessageContent.getDefaultInstance(); + keepMsg_ = 0; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -42132,6 +42164,9 @@ public final class WFCMessage { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeMessage(3, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(4, keepMsg_); + } getUnknownFields().writeTo(output); } @@ -42158,6 +42193,10 @@ public final class WFCMessage { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, notifyContent_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, keepMsg_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -42285,6 +42324,8 @@ public final class WFCMessage { notifyContentBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); + keepMsg_ = 0; + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -42330,6 +42371,10 @@ public final class WFCMessage { } else { result.notifyContent_ = notifyContentBuilder_.build(); } + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000004; + } + result.keepMsg_ = keepMsg_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -42364,6 +42409,9 @@ public final class WFCMessage { if (other.hasNotifyContent()) { mergeNotifyContent(other.getNotifyContent()); } + if (other.hasKeepMsg()) { + setKeepMsg(other.getKeepMsg()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -42658,6 +42706,39 @@ public final class WFCMessage { return notifyContentBuilder_; } + // optional int32 keep_msg = 4; + private int keepMsg_ ; + /** + * optional int32 keep_msg = 4; + */ + public boolean hasKeepMsg() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * optional int32 keep_msg = 4; + */ + public int getKeepMsg() { + return keepMsg_; + } + /** + * optional int32 keep_msg = 4; + */ + public Builder setKeepMsg(int value) { + bitField0_ |= 0x00000008; + keepMsg_ = value; + onChanged(); + return this; + } + /** + * optional int32 keep_msg = 4; + */ + public Builder clearKeepMsg() { + bitField0_ = (bitField0_ & ~0x00000008); + keepMsg_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:QuitGroupRequest) } @@ -67490,76 +67571,77 @@ public final class WFCMessage { "\003\"0\n\017PullUserRequest\022\035\n\007request\030\001 \003(\0132\014." + "UserRequest\"/\n\nUserResult\022\023\n\004user\030\001 \002(\0132" + "\005.User\022\014\n\004code\030\002 \002(\005\"-\n\016PullUserResult\022\033" + - "\n\006result\030\001 \003(\0132\013.UserResult\"^\n\020QuitGroup" + + "\n\006result\030\001 \003(\0132\013.UserResult\"p\n\020QuitGroup" + "Request\022\020\n\010group_id\030\001 \002(\t\022\017\n\007to_line\030\002 \003", "(\005\022\'\n\016notify_content\030\003 \001(\0132\017.MessageCont" + - "ent\"~\n\030RemoveGroupMemberRequest\022\020\n\010group" + - "_id\030\001 \002(\t\022\026\n\016removed_member\030\002 \003(\t\022\017\n\007to_" + - "line\030\003 \003(\005\022\'\n\016notify_content\030\004 \001(\0132\017.Mes" + - "sageContent\"u\n\024TransferGroupRequest\022\020\n\010g" + - "roup_id\030\001 \002(\t\022\021\n\tnew_owner\030\002 \002(\t\022\017\n\007to_l" + - "ine\030\003 \003(\005\022\'\n\016notify_content\030\004 \001(\0132\017.Mess" + - "ageContent\"\206\001\n\026ModifyGroupMemberAlias\022\020\n" + - "\010group_id\030\001 \002(\t\022\r\n\005alias\030\002 \002(\t\022\017\n\007to_lin" + - "e\030\003 \003(\005\022\'\n\016notify_content\030\004 \001(\0132\017.Messag", - "eContent\022\021\n\tmember_id\030\005 \001(\t\"\206\001\n\026ModifyGr" + - "oupMemberExtra\022\020\n\010group_id\030\001 \002(\t\022\017\n\007to_l" + - "ine\030\002 \003(\005\022\'\n\016notify_content\030\003 \001(\0132\017.Mess" + - "ageContent\022\r\n\005extra\030\004 \001(\t\022\021\n\tmember_id\030\005" + - " \001(\t\"P\n\020UserSettingEntry\022\r\n\005scope\030\001 \002(\005\022" + - "\013\n\003key\030\002 \002(\t\022\r\n\005value\030\003 \002(\t\022\021\n\tupdate_dt" + - "\030\004 \002(\003\"A\n\024ModifyUserSettingReq\022\r\n\005scope\030" + - "\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value\030\003 \002(\t\"\032\n\007Ver" + - "sion\022\017\n\007version\030\001 \002(\003\"8\n\024GetUserSettingR" + - "esult\022 \n\005entry\030\001 \003(\0132\021.UserSettingEntry\"", - "f\n\006Friend\022\013\n\003uid\030\001 \002(\t\022\r\n\005state\030\002 \002(\005\022\021\n" + - "\tupdate_dt\030\003 \002(\003\022\r\n\005alias\030\004 \001(\t\022\017\n\007black" + - "ed\030\005 \001(\005\022\r\n\005extra\030\006 \001(\t\"*\n\020GetFriendsRes" + - "ult\022\026\n\005entry\030\001 \003(\0132\007.Friend\"7\n\026GetFriend" + - "RequestResult\022\035\n\005entry\030\001 \003(\0132\016.FriendReq" + - "uest\"\243\001\n\021ConnectAckPayload\022\020\n\010msg_head\030\001" + - " \001(\003\022\023\n\013friend_head\030\002 \001(\003\022\026\n\016friend_rq_h" + - "ead\030\003 \001(\003\022\024\n\014setting_head\030\004 \001(\003\022\021\n\tnode_" + - "addr\030\005 \001(\t\022\021\n\tnode_port\030\006 \001(\005\022\023\n\013server_" + - "time\030\007 \001(\003\"P\n\rIMHttpWrapper\022\r\n\005token\030\001 \002", - "(\t\022\021\n\tclient_id\030\002 \002(\t\022\017\n\007request\030\003 \002(\t\022\014" + - "\n\004data\030\004 \001(\014\"A\n\021SearchUserRequest\022\017\n\007key" + - "word\030\001 \002(\t\022\r\n\005fuzzy\030\002 \001(\005\022\014\n\004page\030\003 \001(\005\"" + - "(\n\020SearchUserResult\022\024\n\005entry\030\001 \003(\0132\005.Use" + - "r\"@\n\026GetChatroomInfoRequest\022\023\n\013chatroom_" + - "id\030\001 \002(\t\022\021\n\tupdate_dt\030\002 \001(\003\"\227\001\n\014Chatroom" + - "Info\022\r\n\005title\030\001 \002(\t\022\014\n\004desc\030\002 \001(\t\022\020\n\010por" + - "trait\030\003 \001(\t\022\024\n\014member_count\030\004 \001(\005\022\021\n\tcre" + - "ate_dt\030\005 \001(\003\022\021\n\tupdate_dt\030\006 \001(\003\022\r\n\005extra" + - "\030\007 \001(\t\022\r\n\005state\030\010 \001(\005\"F\n\034GetChatroomMemb", - "erInfoRequest\022\023\n\013chatroom_id\030\001 \002(\t\022\021\n\tma" + - "x_count\030\002 \001(\005\";\n\022ChatroomMemberInfo\022\024\n\014m" + - "ember_count\030\001 \001(\005\022\017\n\007members\030\002 \003(\t\"\026\n\010IN" + - "T64Buf\022\n\n\002id\030\001 \002(\003\"4\n\023NotifyRecallMessag" + - "e\022\n\n\002id\030\001 \002(\003\022\021\n\tfrom_user\030\002 \002(\t\"/\n\020Blac" + - "kUserRequest\022\013\n\003uid\030\001 \002(\t\022\016\n\006status\030\002 \002(" + - "\005\"\323\001\n\014RouteRequest\022\013\n\003app\030\001 \001(\t\022\020\n\010platf" + - "orm\030\002 \001(\005\022\021\n\tpush_type\030\003 \001(\005\022\023\n\013device_n" + - "ame\030\004 \001(\t\022\026\n\016device_version\030\005 \001(\t\022\022\n\npho" + - "ne_name\030\006 \001(\t\022\020\n\010language\030\007 \001(\t\022\024\n\014carri", - "er_name\030\010 \001(\t\022\023\n\013app_version\030\t \001(\t\022\023\n\013sd" + - "k_version\030\n \001(\t\"D\n\rRouteResponse\022\014\n\004host" + - "\030\001 \002(\t\022\021\n\tlong_port\030\002 \002(\005\022\022\n\nshort_port\030" + - "\003 \002(\005\"G\n\017GetTokenRequest\022\017\n\007user_id\030\001 \002(" + - "\t\022\021\n\tclient_id\030\002 \002(\t\022\020\n\010platform\030\003 \001(\005\"r" + - "\n\022LoadRemoteMessages\022#\n\014conversation\030\001 \002" + - "(\0132\r.Conversation\022\022\n\nbefore_uid\030\002 \002(\003\022\r\n" + - "\005count\030\003 \002(\005\022\024\n\014content_type\030\004 \003(\005\"a\n\020Mu" + - "ltiCastMessage\022\021\n\tfrom_user\030\001 \002(\t\022 \n\007con" + - "tent\030\002 \002(\0132\017.MessageContent\022\n\n\002to\030\003 \003(\t\022", - "\014\n\004line\030\004 \002(\005\"E\n\035RecallMultiCastMessageR" + - "equest\022\022\n\nmessage_id\030\001 \002(\003\022\020\n\010receiver\030\002" + - " \003(\t\"@\n\017AuthCodeRequest\022\021\n\ttarget_id\030\001 \002" + - "(\t\022\014\n\004type\030\002 \002(\005\022\014\n\004host\030\003 \002(\t\"o\n\030Applic" + - "ationConfigRequest\022\r\n\005appId\030\001 \002(\t\022\017\n\007app" + - "Type\030\002 \002(\005\022\021\n\ttimestamp\030\003 \002(\003\022\r\n\005nonce\030\004" + - " \002(\t\022\021\n\tsignature\030\005 \002(\tB/\n\025cn.wildfirech" + - "at.protoB\nWFCMessageZ\n./go;proto" + "ent\022\020\n\010keep_msg\030\004 \001(\005\"~\n\030RemoveGroupMemb" + + "erRequest\022\020\n\010group_id\030\001 \002(\t\022\026\n\016removed_m" + + "ember\030\002 \003(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n\016notify_c" + + "ontent\030\004 \001(\0132\017.MessageContent\"u\n\024Transfe" + + "rGroupRequest\022\020\n\010group_id\030\001 \002(\t\022\021\n\tnew_o" + + "wner\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n\016notify_co" + + "ntent\030\004 \001(\0132\017.MessageContent\"\206\001\n\026ModifyG" + + "roupMemberAlias\022\020\n\010group_id\030\001 \002(\t\022\r\n\005ali" + + "as\030\002 \002(\t\022\017\n\007to_line\030\003 \003(\005\022\'\n\016notify_cont", + "ent\030\004 \001(\0132\017.MessageContent\022\021\n\tmember_id\030" + + "\005 \001(\t\"\206\001\n\026ModifyGroupMemberExtra\022\020\n\010grou" + + "p_id\030\001 \002(\t\022\017\n\007to_line\030\002 \003(\005\022\'\n\016notify_co" + + "ntent\030\003 \001(\0132\017.MessageContent\022\r\n\005extra\030\004 " + + "\001(\t\022\021\n\tmember_id\030\005 \001(\t\"P\n\020UserSettingEnt" + + "ry\022\r\n\005scope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005value\030" + + "\003 \002(\t\022\021\n\tupdate_dt\030\004 \002(\003\"A\n\024ModifyUserSe" + + "ttingReq\022\r\n\005scope\030\001 \002(\005\022\013\n\003key\030\002 \002(\t\022\r\n\005" + + "value\030\003 \002(\t\"\032\n\007Version\022\017\n\007version\030\001 \002(\003\"" + + "8\n\024GetUserSettingResult\022 \n\005entry\030\001 \003(\0132\021", + ".UserSettingEntry\"f\n\006Friend\022\013\n\003uid\030\001 \002(\t" + + "\022\r\n\005state\030\002 \002(\005\022\021\n\tupdate_dt\030\003 \002(\003\022\r\n\005al" + + "ias\030\004 \001(\t\022\017\n\007blacked\030\005 \001(\005\022\r\n\005extra\030\006 \001(" + + "\t\"*\n\020GetFriendsResult\022\026\n\005entry\030\001 \003(\0132\007.F" + + "riend\"7\n\026GetFriendRequestResult\022\035\n\005entry" + + "\030\001 \003(\0132\016.FriendRequest\"\243\001\n\021ConnectAckPay" + + "load\022\020\n\010msg_head\030\001 \001(\003\022\023\n\013friend_head\030\002 " + + "\001(\003\022\026\n\016friend_rq_head\030\003 \001(\003\022\024\n\014setting_h" + + "ead\030\004 \001(\003\022\021\n\tnode_addr\030\005 \001(\t\022\021\n\tnode_por" + + "t\030\006 \001(\005\022\023\n\013server_time\030\007 \001(\003\"P\n\rIMHttpWr", + "apper\022\r\n\005token\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022" + + "\017\n\007request\030\003 \002(\t\022\014\n\004data\030\004 \001(\014\"A\n\021Search" + + "UserRequest\022\017\n\007keyword\030\001 \002(\t\022\r\n\005fuzzy\030\002 " + + "\001(\005\022\014\n\004page\030\003 \001(\005\"(\n\020SearchUserResult\022\024\n" + + "\005entry\030\001 \003(\0132\005.User\"@\n\026GetChatroomInfoRe" + + "quest\022\023\n\013chatroom_id\030\001 \002(\t\022\021\n\tupdate_dt\030" + + "\002 \001(\003\"\227\001\n\014ChatroomInfo\022\r\n\005title\030\001 \002(\t\022\014\n" + + "\004desc\030\002 \001(\t\022\020\n\010portrait\030\003 \001(\t\022\024\n\014member_" + + "count\030\004 \001(\005\022\021\n\tcreate_dt\030\005 \001(\003\022\021\n\tupdate" + + "_dt\030\006 \001(\003\022\r\n\005extra\030\007 \001(\t\022\r\n\005state\030\010 \001(\005\"", + "F\n\034GetChatroomMemberInfoRequest\022\023\n\013chatr" + + "oom_id\030\001 \002(\t\022\021\n\tmax_count\030\002 \001(\005\";\n\022Chatr" + + "oomMemberInfo\022\024\n\014member_count\030\001 \001(\005\022\017\n\007m" + + "embers\030\002 \003(\t\"\026\n\010INT64Buf\022\n\n\002id\030\001 \002(\003\"4\n\023" + + "NotifyRecallMessage\022\n\n\002id\030\001 \002(\003\022\021\n\tfrom_" + + "user\030\002 \002(\t\"/\n\020BlackUserRequest\022\013\n\003uid\030\001 " + + "\002(\t\022\016\n\006status\030\002 \002(\005\"\323\001\n\014RouteRequest\022\013\n\003" + + "app\030\001 \001(\t\022\020\n\010platform\030\002 \001(\005\022\021\n\tpush_type" + + "\030\003 \001(\005\022\023\n\013device_name\030\004 \001(\t\022\026\n\016device_ve" + + "rsion\030\005 \001(\t\022\022\n\nphone_name\030\006 \001(\t\022\020\n\010langu", + "age\030\007 \001(\t\022\024\n\014carrier_name\030\010 \001(\t\022\023\n\013app_v" + + "ersion\030\t \001(\t\022\023\n\013sdk_version\030\n \001(\t\"D\n\rRou" + + "teResponse\022\014\n\004host\030\001 \002(\t\022\021\n\tlong_port\030\002 " + + "\002(\005\022\022\n\nshort_port\030\003 \002(\005\"G\n\017GetTokenReque" + + "st\022\017\n\007user_id\030\001 \002(\t\022\021\n\tclient_id\030\002 \002(\t\022\020" + + "\n\010platform\030\003 \001(\005\"r\n\022LoadRemoteMessages\022#" + + "\n\014conversation\030\001 \002(\0132\r.Conversation\022\022\n\nb" + + "efore_uid\030\002 \002(\003\022\r\n\005count\030\003 \002(\005\022\024\n\014conten" + + "t_type\030\004 \003(\005\"a\n\020MultiCastMessage\022\021\n\tfrom" + + "_user\030\001 \002(\t\022 \n\007content\030\002 \002(\0132\017.MessageCo", + "ntent\022\n\n\002to\030\003 \003(\t\022\014\n\004line\030\004 \002(\005\"E\n\035Recal" + + "lMultiCastMessageRequest\022\022\n\nmessage_id\030\001" + + " \002(\003\022\020\n\010receiver\030\002 \003(\t\"@\n\017AuthCodeReques" + + "t\022\021\n\ttarget_id\030\001 \002(\t\022\014\n\004type\030\002 \002(\005\022\014\n\004ho" + + "st\030\003 \002(\t\"o\n\030ApplicationConfigRequest\022\r\n\005" + + "appId\030\001 \002(\t\022\017\n\007appType\030\002 \002(\005\022\021\n\ttimestam" + + "p\030\003 \002(\003\022\r\n\005nonce\030\004 \002(\t\022\021\n\tsignature\030\005 \002(" + + "\tB/\n\025cn.wildfirechat.protoB\nWFCMessageZ\n" + + "./go;proto" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -67841,7 +67923,7 @@ public final class WFCMessage { internal_static_QuitGroupRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_QuitGroupRequest_descriptor, - new java.lang.String[] { "GroupId", "ToLine", "NotifyContent", }); + new java.lang.String[] { "GroupId", "ToLine", "NotifyContent", "KeepMsg", }); internal_static_RemoveGroupMemberRequest_descriptor = getDescriptor().getMessageTypes().get(46); internal_static_RemoveGroupMemberRequest_fieldAccessorTable = new