diff --git a/lib/client.js b/lib/client.js index 4b92b5054..e43d4a98c 100644 --- a/lib/client.js +++ b/lib/client.js @@ -1648,6 +1648,7 @@ function createNewRoom(client, roomId) { "RoomState.events", "RoomState.members", "RoomState.newMember" ]); room.currentState.on("RoomState.newMember", function(event, state, member) { + member.user = client.getUser(member.userId); reEmit( client, member, [ diff --git a/lib/models/user.js b/lib/models/user.js index 502df2f8b..ef2ff940c 100644 --- a/lib/models/user.js +++ b/lib/models/user.js @@ -45,10 +45,11 @@ User.prototype.setPresenceEvent = function(event) { if (event.getType() !== "m.presence") { return; } + var firstFire = this.events.presence === null; this.events.presence = event; var eventsToFire = []; - if (event.getContent().presence !== this.presence) { + if (event.getContent().presence !== this.presence || firstFire) { eventsToFire.push("User.presence"); } if (event.getContent().avatar_url !== this.avatarUrl) {