diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index 50e1644..e9c4cfa 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -299,6 +299,22 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { case 'invite': msg.messageStubType = WAMessageStubType.GROUP_CHANGE_INVITE_LINK msg.messageStubParameters = [ child.attrs.code ] + break + case 'member_add_mode': + const addMode = child.content + if(addMode) { + msg.messageStubType = WAMessageStubType.GROUP_MEMBER_ADD_MODE + msg.messageStubParameters = [ addMode.toString() ] + } + + break + case 'membership_approval_mode': + const approvalMode: any = getBinaryNodeChild(child, 'group_join') + if(approvalMode) { + msg.messageStubType = WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE + msg.messageStubParameters = [ approvalMode.attrs.state ] + } + break } } diff --git a/src/Types/GroupMetadata.ts b/src/Types/GroupMetadata.ts index bcb8f4a..d5b870c 100644 --- a/src/Types/GroupMetadata.ts +++ b/src/Types/GroupMetadata.ts @@ -34,6 +34,8 @@ export interface GroupMetadata { inviteCode?: string /** the person who added you */ author?: string + /** if approval is needed to join the group */ + joinApprovalMode?: boolean } diff --git a/src/Utils/process-message.ts b/src/Utils/process-message.ts index b666fbf..1d2ecf5 100644 --- a/src/Utils/process-message.ts +++ b/src/Utils/process-message.ts @@ -349,6 +349,14 @@ const processMessage = async( const code = message.messageStubParameters?.[0] emitGroupUpdate({ inviteCode: code }) break + case WAMessageStubType.GROUP_MEMBER_ADD_MODE: + const memberAddValue = message.messageStubParameters?.[0] + emitGroupUpdate({ memberAddMode: memberAddValue === 'all_member_add' }) + break + case WAMessageStubType.GROUP_MEMBERSHIP_JOIN_APPROVAL_MODE: + const approvalMode = message.messageStubParameters?.[0] + emitGroupUpdate({ joinApprovalMode: approvalMode === 'on' }) + break } } else if(content?.pollUpdateMessage) { const creationMsgKey = content.pollUpdateMessage.pollCreationMessageKey!