observe powerlevels from state event, less handlers this way

pull/21833/head
Bruno Windels 2019-02-21 17:51:20 +01:00
parent 5ef673e80e
commit 12f55391db
1 changed files with 10 additions and 12 deletions

View File

@ -78,7 +78,6 @@ export class RoomPermaLinkCreator {
this._allowedHostsRegexps = null;
this._serverCandidates = null;
this.onPowerlevel = this.onPowerlevel.bind(this);
this.onMembership = this.onMembership.bind(this);
this.onRoomState = this.onRoomState.bind(this);
}
@ -92,13 +91,11 @@ export class RoomPermaLinkCreator {
start() {
this.load();
this._room.on("RoomMember.membership", this.onMembership);
this._room.on("RoomMember.powerLevel", this.onPowerlevel);
this._room.on("RoomState.events", this.onRoomState);
}
stop() {
this._room.removeListener("RoomMember.membership", this.onMembership);
this._room.removeListener("RoomMember.powerLevel", this.onPowerlevel);
this._room.removeListener("RoomState.events", this.onRoomState);
}
@ -119,10 +116,16 @@ export class RoomPermaLinkCreator {
}
onRoomState(event) {
if (event.getType() === "m.room.server_acl") {
switch (event.getType()) {
case "m.room.server_acl":
this._updateAllowedServers();
this._updatePopulationMap();
this._updateServerCandidates();
return;
case "m.room.power_levels":
this._updateHighestPlUser();
this._updateServerCandidates();
return;
}
}
@ -143,11 +146,6 @@ export class RoomPermaLinkCreator {
this._updateServerCandidates();
}
onPowerlevel() {
this._updateHighestPlUser();
this._updateServerCandidates();
}
_updateHighestPlUser() {
const plEvent = this._room.currentState.getStateEvents("m.room.power_levels", "");
const content = plEvent.getContent();