Skip to content

Commit 9a95f0c

Browse files
committed
Make leaveEvent processing code clearer.
I'm not sure wtf was going on with that if but i think it always returned early no matter what, so i have changed it to do what i think it is trying to do. Ban events used to be ignored for sure.
1 parent 99be87d commit 9a95f0c

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/MatrixClient.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -827,17 +827,16 @@ export class MatrixClient extends EventEmitter {
827827
for (const event of room['timeline']['events']) {
828828
if (event['type'] !== 'm.room.member') continue;
829829
if (event['state_key'] !== await this.getUserId()) continue;
830-
831-
const membership = event["content"]?.["membership"];
832-
if (membership !== "leave" && membership !== "ban") continue;
833-
834-
const oldAge = leaveEvent && leaveEvent['unsigned'] && leaveEvent['unsigned']['age'] ? leaveEvent['unsigned']['age'] : 0;
835-
const newAge = event['unsigned'] && event['unsigned']['age'] ? event['unsigned']['age'] : 0;
836-
if (leaveEvent && oldAge < newAge) continue;
837-
838-
leaveEvent = event;
830+
switch (event["content"]?.["membership"]) {
831+
case "leave":
832+
case "ban": {
833+
const oldAge = leaveEvent && leaveEvent['unsigned'] && leaveEvent['unsigned']['age'] ? leaveEvent['unsigned']['age'] : 0;
834+
const newAge = event['unsigned'] && event['unsigned']['age'] ? event['unsigned']['age'] : 0;
835+
if (leaveEvent && oldAge < newAge) continue;
836+
leaveEvent = event;
837+
}
838+
}
839839
}
840-
841840
if (!leaveEvent) {
842841
LogService.warn("MatrixClientLite", "Left room " + roomId + " without receiving an event");
843842
continue;

0 commit comments

Comments
 (0)