diff --git a/src/models/room-state.js b/src/models/room-state.js index d557f4e03..97e03fde7 100644 --- a/src/models/room-state.js +++ b/src/models/room-state.js @@ -263,13 +263,19 @@ RoomState.prototype.setJoinedMembers = function(joinedMembers) { const avatarUrl = details.avatar_url; const member = new RoomMember(this.roomId, userId); member.setAsJoinedMember(displayName, avatarUrl, this); - return member; + const isNewMember = !this.members[userId]; + return {member, isNewMember}; }); - joinedRoomMembers.forEach(member => { + joinedRoomMembers.forEach(({member, isNewMember}) => { _updateDisplayNameCache(this, member.userId, member.name); this._updateMember(member); + if (isNewMember) { + this.emit('RoomState.newMember', {}, self, member); + } + else { + this.emit('RoomState.members', {}, self, member); + } }); - this.emit("Room"); } /**