using LibMatrix.Helpers; using LibMatrix.RoomTypes; using LibMatrix.Utilities.Bot.Interfaces; using MiniUtils.Classes; using MiniUtils.Services; namespace MiniUtils.Commands; public class SpamCommand(IgnoreListManager ignoreListManager) : ICommand { public string Name => "spam"; public string[]? Aliases => []; public string Description => "Redact all user's events"; public bool Unlisted => true; public async Task Invoke(CommandContext ctx) { var tasks = Enumerable.Range(0, 10000) .Select(i => SendMessage(ctx.Room, i.ToString())) .ToList(); await Task.WhenAll(tasks); await ctx.Room.SendMessageEventAsync(new MessageBuilder().WithBody($"{Emojis.Recycle}").Build()); } private async Task SendMessage(GenericRoom room, string content) { bool success; do { try { await room.SendMessageEventAsync(new MessageBuilder().WithBody(content).Build()); success = true; } catch (Exception e) { success = false; Console.WriteLine($"Failed to send event {content}: {e}"); } } while (!success); } }