diff options
author | Emma [it/its]@Rory& <root@rory.gay> | 2024-01-11 07:31:09 +0100 |
---|---|---|
committer | Emma [it/its]@Rory& <root@rory.gay> | 2024-01-11 07:31:09 +0100 |
commit | 8dadf547033d71480fd7756809992c0f32549f59 (patch) | |
tree | a23631cc840047e3ad9e32dda9c043511af1a583 /ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs | |
parent | Try-create factory for RemoteHomeserver, more reliable RemoteHomeserver creation (diff) | |
download | LibMatrix-8dadf547033d71480fd7756809992c0f32549f59.tar.xz |
Cleanup, more message formatters, messagebuilder start
Diffstat (limited to 'ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs')
-rw-r--r-- | ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs b/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs new file mode 100644 index 0000000..b2216d1 --- /dev/null +++ b/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs @@ -0,0 +1,48 @@ +using System.Diagnostics; +using LibMatrix.EventTypes.Spec; +using LibMatrix.Helpers; +using LibMatrix.RoomTypes; +using LibMatrix.Services; +using LibMatrix.Utilities.Bot.Interfaces; +using ModerationBot.AccountData; + +namespace ModerationBot.Commands; + +public class DbgAniRainbowTest(IServiceProvider services, HomeserverProviderService hsProvider, HomeserverResolverService hsResolver, PolicyEngine engine) : ICommand { + public string Name { get; } = "dbg-ani-rainbow"; + public string Description { get; } = "[Debug] animated rainbow :)"; + private GenericRoom logRoom { get; set; } + + public async Task<bool> CanInvoke(CommandContext ctx) { + return ctx.Room.RoomId == "!DoHEdFablOLjddKWIp:rory.gay"; + } + + public async Task Invoke(CommandContext ctx) { + //255 long string + // var rainbow = "🟥🟧🟨🟩🟦🟪"; + var rainbow = "M"; + var chars = rainbow; + for (var i = 0; i < 76; i++) { + chars += rainbow[i%rainbow.Length]; + } + + var msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars).Build(); + var msgEvent = await ctx.Room.SendMessageEventAsync(msg); + + Task.Run(async () => { + + int i = 0; + while (true) { + msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars, offset: i+=5).Build(); + // .SetReplaceRelation<RoomMessageEventContent>(msgEvent.EventId); + // msg.Body = ""; + // msg.FormattedBody = ""; + var sw = Stopwatch.StartNew(); + await ctx.Room.SendMessageEventAsync(msg); + await Task.Delay(sw.Elapsed); + } + + }); + + } +} \ No newline at end of file |