diff options
Diffstat (limited to 'Utilities/LibMatrix.DevTestBot/Bot/Commands/DbgAniRainbowTest.cs')
-rw-r--r-- | Utilities/LibMatrix.DevTestBot/Bot/Commands/DbgAniRainbowTest.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Utilities/LibMatrix.DevTestBot/Bot/Commands/DbgAniRainbowTest.cs b/Utilities/LibMatrix.DevTestBot/Bot/Commands/DbgAniRainbowTest.cs new file mode 100644 index 0000000..c526847 --- /dev/null +++ b/Utilities/LibMatrix.DevTestBot/Bot/Commands/DbgAniRainbowTest.cs @@ -0,0 +1,53 @@ +using System.Diagnostics; +using LibMatrix.EventTypes.Spec; +using LibMatrix.ExampleBot.Bot.Interfaces; +using LibMatrix.Helpers; +using LibMatrix.RoomTypes; +using LibMatrix.Services; + +namespace ModerationBot.Commands; + +public class DbgAniRainbowTest(IServiceProvider services, HomeserverProviderService hsProvider, HomeserverResolverService hsResolver) : ICommand { + public string Name { get; } = "ani-rainbow"; + public string Description { get; } = "[Debug] animated rainbow :)"; + + public async Task<bool> CanInvoke(CommandContext ctx) { + return ctx.Room.RoomId == "!hLEefBaYvNfJwcTjmt: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]; + } + + Task.Run(async () => { + int i = 0; + var msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars).Build(); + var msgEvent = await ctx.Room.SendMessageEventAsync(msg); + + while (true) { + msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars, offset: i * 5).Build(); + if (i % 50 == 0) { + msg.NewContent = null; + msg.RelatesTo = null; + msgEvent = await ctx.Room.SendMessageEventAsync(msg); + } + else { + msg = msg.SetReplaceRelation<RoomMessageEventContent>(msgEvent.EventId); + msg.Body = ""; + msg.FormattedBody = ""; + } + + var sw = Stopwatch.StartNew(); + await + ctx.Room.SendMessageEventAsync(msg); + await Task.Delay(sw.Elapsed); + i++; + } + }); + } +} \ No newline at end of file |