70 events = events.new() |
70 events = events.new() |
71 }, room_mt); |
71 }, room_mt); |
72 self.rooms[jid] = room; |
72 self.rooms[jid] = room; |
73 local occupants = room.occupants; |
73 local occupants = room.occupants; |
74 room:hook("presence", function (presence) |
74 room:hook("presence", function (presence) |
75 local nick = presence.nick; |
75 local nick = presence.nick or nick; |
76 if not occupants[nick] and presence.stanza.attr.type ~= "unavailable" then |
76 if not occupants[nick] and presence.stanza.attr.type ~= "unavailable" then |
77 occupants[nick] = { |
77 occupants[nick] = { |
78 nick = nick; |
78 nick = nick; |
79 jid = presence.stanza.attr.from; |
79 jid = presence.stanza.attr.from; |
80 presence = presence.stanza; |
80 presence = presence.stanza; |