From af6d1c7e11b2e9b4108ae8b693650b2a18cd2001 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 30 Oct 2025 02:49:12 +0100 Subject: Old work --- Commands/JoinRoomCommand.cs | 48 --------------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 Commands/JoinRoomCommand.cs (limited to 'Commands/JoinRoomCommand.cs') diff --git a/Commands/JoinRoomCommand.cs b/Commands/JoinRoomCommand.cs deleted file mode 100644 index e604a4e..0000000 --- a/Commands/JoinRoomCommand.cs +++ /dev/null @@ -1,48 +0,0 @@ -using LibMatrix.EventTypes.Spec; -using LibMatrix.Helpers; -using LibMatrix.Services; -using LibMatrix.Utilities.Bot.Interfaces; -using ModerationBot.AccountData; - -namespace ModerationBot.Commands; - -public class JoinRoomCommand(IServiceProvider services, HomeserverProviderService hsProvider, HomeserverResolverService hsResolver, PolicyEngine engine) : ICommand { - public string Name { get; } = "join"; - public string[]? Aliases { get; } - public string Description { get; } = "Join arbitrary rooms"; - public bool Unlisted { get; } - - public async Task CanInvoke(CommandContext ctx) { - //check if user is admin in control room - var botData = await ctx.Homeserver.GetAccountDataAsync("gay.rory.moderation_bot_data"); - var controlRoom = ctx.Homeserver.GetRoom(botData.ControlRoom); - var isAdmin = (await controlRoom.GetPowerLevelsAsync())!.UserHasStatePermission(ctx.MessageEvent.Sender, "m.room.ban"); - if (!isAdmin) { - // await ctx.Reply("You do not have permission to use this command!"); - await ctx.Homeserver.GetRoom(botData.LogRoom!).SendMessageEventAsync( - new RoomMessageEventContent(body: $"User {ctx.MessageEvent.Sender} tried to use command {Name} but does not have permission!", messageType: "m.text")); - } - - return isAdmin; - } - - public async Task Invoke(CommandContext ctx) { - var botData = await ctx.Homeserver.GetAccountDataAsync("gay.rory.moderation_bot_data"); - var policyRoom = ctx.Homeserver.GetRoom(botData.DefaultPolicyRoom ?? botData.ControlRoom); - var logRoom = ctx.Homeserver.GetRoom(botData.LogRoom ?? botData.ControlRoom); - - await logRoom.SendMessageEventAsync(MessageFormatter.FormatSuccess($"Joining room {ctx.Args[0]} with reason: {string.Join(' ', ctx.Args[1..])}")); - var roomId = ctx.Args[0]; - var servers = new List() { ctx.Homeserver.ServerName }; - if (roomId.StartsWith('[')) { } - - if (roomId.StartsWith('#')) { - var res = await ctx.Homeserver.ResolveRoomAliasAsync(roomId); - roomId = res.RoomId; - servers.AddRange(servers); - } - - await ctx.Homeserver.JoinRoomAsync(roomId, servers, string.Join(' ', ctx.Args[1..])); - await logRoom.SendMessageEventAsync(MessageFormatter.FormatSuccess($"Resolved room {ctx.Args[0]} to {roomId} with servers: {string.Join(", ", servers)}")); - } -} \ No newline at end of file -- cgit 1.5.1