From 7945450869e919ff59f0ebf0cb61ab92e57e948b Mon Sep 17 00:00:00 2001 From: Krille Date: Mon, 27 Jan 2025 13:06:25 +0100 Subject: [PATCH] feat: Set room state and account data via commands --- lib/src/utils/commands_extension.dart | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/src/utils/commands_extension.dart b/lib/src/utils/commands_extension.dart index ebfd6bb6..3581c753 100644 --- a/lib/src/utils/commands_extension.dart +++ b/lib/src/utils/commands_extension.dart @@ -460,6 +460,32 @@ extension CommandsClientExtension on Client { stdout?.write(DefaultCommandOutput(users: [mxid]).toString()); return null; }); + addCommand('setRoomState', (args, stdout) async { + final arguments = args.msg.split(' '); + final roomId = arguments.removeAt(0); + final eventType = arguments.removeAt(0); + final stateKey = arguments.removeAt(0); + final body = jsonDecode(arguments.join(' ')); + final eventId = + await setRoomStateWithKey(roomId, eventType, stateKey, body); + stdout?.write(DefaultCommandOutput(rooms: [eventId]).toString()); + return null; + }); + addCommand('setAccountData', (args, stdout) async { + final arguments = args.msg.split(' '); + final eventType = arguments.removeAt(0); + final body = jsonDecode(arguments.join(' ')); + await setAccountData(userID!, eventType, body); + return null; + }); + addCommand('setRoomAccountData', (args, stdout) async { + final arguments = args.msg.split(' '); + final roomId = arguments.removeAt(0); + final eventType = arguments.removeAt(0); + final body = jsonDecode(arguments.join(' ')); + await setAccountDataPerRoom(userID!, roomId, eventType, body); + return null; + }); } }