From aa6ac5e7162558409417d8eb7e3152ad3d3b3134 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 15 May 2025 08:14:26 +0200 Subject: Add more commands --- MiniUtils/Commands/DeleteRoomCommand.cs | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 MiniUtils/Commands/DeleteRoomCommand.cs (limited to 'MiniUtils/Commands/DeleteRoomCommand.cs') diff --git a/MiniUtils/Commands/DeleteRoomCommand.cs b/MiniUtils/Commands/DeleteRoomCommand.cs new file mode 100644 index 0000000..41dbfb3 --- /dev/null +++ b/MiniUtils/Commands/DeleteRoomCommand.cs @@ -0,0 +1,47 @@ +using ArcaneLibs.Extensions; +using LibMatrix.EventTypes.Common; +using LibMatrix.EventTypes.Spec.State.RoomInfo; +using LibMatrix.Helpers; +using LibMatrix.Responses; +using LibMatrix.RoomTypes; +using LibMatrix.Utilities.Bot.Interfaces; + +namespace MiniUtils.Commands; + +public class DeleteRoomCommand() : ICommand { + public string Name => "delete room"; + + public string[]? Aliases => ["deleteroom"]; + + public string Description => "Delete a room"; + + public bool Unlisted => false; + + public async Task Invoke(CommandContext ctx) { + var creationContent = new CreateRoomRequest() { + Name = ctx.Args[0], + RoomAliasName = ctx.Args[0], + Visibility = "private", + CreationContent = new() { + { "type", PolicyRoom.TypeName }, + { "room_version", 11 } + }, + PowerLevelContentOverride = new RoomPowerLevelEventContent() { + EventsDefault = 50, + Invite = 50 + }, + InitialState = [ + new() { + Type = MjolnirShortcodeEventContent.EventId, + StateKey = "", + TypedContent = new MjolnirShortcodeEventContent() { + Shortcode = ctx.Args[0] + } + } + ] + }; + + var result = await ctx.Homeserver.CreateRoom(creationContent); + await ctx.Room.SendMessageEventAsync(new MessageBuilder().WithMention($"#{ctx.Args[0]}:{ctx.Homeserver.ServerName}").Build()); + } +} \ No newline at end of file -- cgit 1.5.1