diff options
Diffstat (limited to 'LibMatrix.ExampleBot/Bot/Commands')
-rw-r--r-- | LibMatrix.ExampleBot/Bot/Commands/CmdCommand.cs | 18 | ||||
-rw-r--r-- | LibMatrix.ExampleBot/Bot/Commands/HelpCommand.cs | 18 | ||||
-rw-r--r-- | LibMatrix.ExampleBot/Bot/Commands/PingCommand.cs | 10 |
3 files changed, 20 insertions, 26 deletions
diff --git a/LibMatrix.ExampleBot/Bot/Commands/CmdCommand.cs b/LibMatrix.ExampleBot/Bot/Commands/CmdCommand.cs index 7b54b0c..ca10326 100644 --- a/LibMatrix.ExampleBot/Bot/Commands/CmdCommand.cs +++ b/LibMatrix.ExampleBot/Bot/Commands/CmdCommand.cs @@ -1,23 +1,23 @@ using LibMatrix.ExampleBot.Bot.Interfaces; +using LibMatrix.StateEventTypes.Spec; namespace LibMatrix.ExampleBot.Bot.Commands; public class CmdCommand : ICommand { - public string Name { get; } = "cmd"; - public string Description { get; } = "Runs a command on the host system"; + public string Name => "cmd"; + public string Description => "Runs a command on the host system"; - public async Task<bool> CanInvoke(CommandContext ctx) { - return ctx.MessageEvent.Sender.EndsWith(":rory.gay"); + public Task<bool> CanInvoke(CommandContext ctx) { + return Task.FromResult(ctx.MessageEvent.Sender.EndsWith(":rory.gay")); } public async Task Invoke(CommandContext ctx) { - var cmd = "\""; - foreach (var arg in ctx.Args) cmd += arg + " "; + var cmd = ctx.Args.Aggregate("\"", (current, arg) => current + arg + " "); cmd = cmd.Trim(); cmd += "\""; - await ctx.Room.SendMessageEventAsync("m.room.message", new() { + await ctx.Room.SendMessageEventAsync("m.room.message", new RoomMessageEventData { Body = $"Command being executed: `{cmd}`" }); @@ -34,7 +34,7 @@ public class CmdCommand : ICommand { msg += output[0] + "\n"; output.RemoveAt(0); if ((output.Count > 0 && (msg + output[0]).Length > 64000) || output.Count == 0) { - await ctx.Room.SendMessageEventAsync("m.room.message", new() { + await ctx.Room.SendMessageEventAsync("m.room.message", new RoomMessageEventData { FormattedBody = $"```ansi\n{msg}\n```", // Body = Markdig.Markdown.ToHtml(msg), Format = "org.matrix.custom.html" @@ -43,4 +43,4 @@ public class CmdCommand : ICommand { } } } -} \ No newline at end of file +} diff --git a/LibMatrix.ExampleBot/Bot/Commands/HelpCommand.cs b/LibMatrix.ExampleBot/Bot/Commands/HelpCommand.cs index a259b3e..69766d1 100644 --- a/LibMatrix.ExampleBot/Bot/Commands/HelpCommand.cs +++ b/LibMatrix.ExampleBot/Bot/Commands/HelpCommand.cs @@ -1,28 +1,24 @@ using System.Text; using LibMatrix.ExampleBot.Bot.Interfaces; +using LibMatrix.StateEventTypes.Spec; using Microsoft.Extensions.DependencyInjection; -namespace LibMatrix.ExampleBot.Bot.Commands; - -public class HelpCommand : ICommand { - private readonly IServiceProvider _services; - public HelpCommand(IServiceProvider services) { - _services = services; - } +namespace LibMatrix.ExampleBot.Bot.Commands; +public class HelpCommand(IServiceProvider services) : ICommand { public string Name { get; } = "help"; public string Description { get; } = "Displays this help message"; public async Task Invoke(CommandContext ctx) { var sb = new StringBuilder(); sb.AppendLine("Available commands:"); - var commands = _services.GetServices<ICommand>().ToList(); + var commands = services.GetServices<ICommand>().ToList(); foreach (var command in commands) { sb.AppendLine($"- {command.Name}: {command.Description}"); } - await ctx.Room.SendMessageEventAsync("m.room.message", new() { - Body = sb.ToString(), + await ctx.Room.SendMessageEventAsync("m.room.message", new RoomMessageEventData { + Body = sb.ToString() }); } -} \ No newline at end of file +} diff --git a/LibMatrix.ExampleBot/Bot/Commands/PingCommand.cs b/LibMatrix.ExampleBot/Bot/Commands/PingCommand.cs index 664dc53..a7c65b5 100644 --- a/LibMatrix.ExampleBot/Bot/Commands/PingCommand.cs +++ b/LibMatrix.ExampleBot/Bot/Commands/PingCommand.cs @@ -1,17 +1,15 @@ using LibMatrix.ExampleBot.Bot.Interfaces; +using LibMatrix.StateEventTypes.Spec; -namespace LibMatrix.ExampleBot.Bot.Commands; +namespace LibMatrix.ExampleBot.Bot.Commands; public class PingCommand : ICommand { - public PingCommand() { - } - public string Name { get; } = "ping"; public string Description { get; } = "Pong!"; public async Task Invoke(CommandContext ctx) { - await ctx.Room.SendMessageEventAsync("m.room.message", new() { + await ctx.Room.SendMessageEventAsync("m.room.message", new RoomMessageEventData { Body = "pong!" }); } -} \ No newline at end of file +} |