mirror of
https://github.com/Skylar-Tech/node-red-contrib-matrix-chat.git
synced 2026-05-21 22:53:15 -06:00
- rename "Invite Room" node to "Invite to Room" to distinguish from new node
- new node "Invite Room" for receiving room invites - new node "Leave Room" for leaving a room - updated examples with new nodes
This commit is contained in:
@@ -251,23 +251,30 @@ module.exports = function(RED) {
|
||||
// handle auto-joining rooms
|
||||
|
||||
node.matrixClient.on(RoomMemberEvent.Membership, async function(event, member) {
|
||||
if(node.initializedAt > event.getDate()) {
|
||||
return; // skip events that occurred before our client initialized
|
||||
}
|
||||
|
||||
if (member.membership === "invite" && member.userId === node.userId) {
|
||||
node.log("Got invite to join room " + member.roomId);
|
||||
console.log(event);
|
||||
if(node.autoAcceptRoomInvites) {
|
||||
node.matrixClient.joinRoom(member.roomId).then(function() {
|
||||
node.log("Automatically accepted invitation to join room " + member.roomId);
|
||||
}).catch(function(e) {
|
||||
node.warn("Cannot join room (could be from being kicked/banned) " + member.roomId + ": " + e);
|
||||
});
|
||||
} else {
|
||||
node.log("Got invite to join room " + member.roomId);
|
||||
let msg = {
|
||||
type : 'r.invite',
|
||||
payload : 'Invitation',
|
||||
userId : member.userId,
|
||||
topic : member.roomId
|
||||
};
|
||||
node.emit("Room.invite", msg);
|
||||
}
|
||||
|
||||
let room = node.matrixClient.getRoom(event.getRoomId());
|
||||
node.emit("Room.invite", {
|
||||
type : 'm.room.member',
|
||||
userId : event.getSender(),
|
||||
topic : event.getRoomId(),
|
||||
topicName : (room ? room.name : null) || null,
|
||||
event : event,
|
||||
eventId : event.getId(),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user