From 3977ea0074b85a9327d7f21f6fc76d2950749e2f Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Wed, 7 Sep 2016 09:57:07 +0100 Subject: [PATCH] Add ability to set power level --- src/ScalarMessaging.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/ScalarMessaging.js b/src/ScalarMessaging.js index 0d753f5356..8fb0550561 100644 --- a/src/ScalarMessaging.js +++ b/src/ScalarMessaging.js @@ -189,6 +189,27 @@ function setBotOptions(event, roomId, userId) { }); } +function setBotPower(event, roomId, userId, level) { + if (!(Number.isInteger(level) && level >= 0)) { + sendError(event, "Power level must be positive integer."); + return; + } + + console.log(`Received request to set power level for bot ${userId} in room ${roomId}.`); + const client = MatrixClientPeg.get(); + if (!client) { + sendError(event, "You need to be logged in."); + return; + } + client.setPowerLevel(roomId, userId, level).done(() => { + sendResponse(event, { + success: true, + }); + }, (err) => { + sendError(event, err.message ? err.message : "Failed to send request.", err); + }); +} + function getMembershipState(event, roomId, userId) { console.log(`membership_state of ${userId} in room ${roomId} requested.`); returnStateEvent(event, roomId, "m.room.member", userId); @@ -281,6 +302,9 @@ const onMessage = function(event) { case "set_bot_options": setBotOptions(event, roomId, userId); break; + case "set_bot_power": + setBotPower(event, roomId, userId, event.data.level); + break; case "join_rules_state": getJoinRules(event, roomId); break;