public override Task InvokeAsync(Robochan robo, SocketUserMessage message, SocketTextChannel channel, string[] arguments) { if (arguments.Length != 0) { robo.ReportError(channel, "No arguments required for ping command"); return(Task.CompletedTask); } var reply = $"Pong... {(message.Timestamp - DateTime.Now).TotalMilliseconds}ms"; var builder = new EmbedBuilder { Description = reply, Color = Color.LightOrange, }; channel.SendMessageAsync(null, false, builder.Build()); return(Task.CompletedTask); }
public override Task InvokeAsync(Robochan robo, SocketUserMessage message, SocketTextChannel channel, string[] arguments) { foreach (var argument in arguments) { Console.WriteLine(argument); } if (arguments.Length == 0) { channel.SendMessageAsync($"{message.Author.Mention}'s avatar:\n{message.Author.GetAvatarUrl(ImageFormat.Png, 1024)}"); } else { foreach (var mentionedUser in message.MentionedUsers) { channel.SendMessageAsync($"{mentionedUser.Mention}'s avatar:\n{mentionedUser.GetAvatarUrl(ImageFormat.Png, 1024)}"); } } return(Task.CompletedTask); }
public override async Task InvokeAsync(Robochan robo, SocketUserMessage message, SocketTextChannel channel, string[] arguments) { if (arguments.Length != 1) { robo.ReportError(channel, "Expected single argument. (delete/archive)"); return; } var cmd = arguments[0].ToLower(); if (cmd == "delete") { await channel.DeleteAsync(); } else if (cmd == "archive") { var t = message.DeleteAsync(); await channel.ModifyAsync(x => { x.CategoryId = 834065526665379890; }); await channel.SyncPermissionsAsync(); var builder = new EmbedBuilder(); builder.Color = Color.Green; builder.Description = "Channel archived!"; await channel.SendMessageAsync(null, false, builder.Build()); await t; } else { robo.ReportError(channel, "Invalid command. Expected `delete` or `archive`"); } return; }
public override Task InvokeAsync(Robochan robo, SocketUserMessage message, SocketTextChannel channel, string[] arguments) { var builder = new EmbedBuilder(); builder.Color = Color.DarkMagenta; builder.Title = "Help"; if (arguments.Length == 0) { var commands = robo.Commands; foreach (var cmd in commands) { // @todo check permissions var field = new EmbedFieldBuilder(); field.Name = cmd.Name; field.Value = cmd.Description; field.IsInline = true; builder.AddField(field); } } else { List <string> unfound = new List <string>(); Command last_referenced_cmd = null; var commands = robo.Commands; int added = 0; foreach (var arg in arguments) { bool found = false; foreach (var cmd in commands) { if (arg.ToLower() == cmd.Name) { // @todo check permissions var field = new EmbedFieldBuilder(); field.Name = cmd.Name; field.Value = cmd.Description; field.IsInline = true; builder.AddField(field); added += 1; found = true; last_referenced_cmd = cmd; break; } } if (found == false) { unfound.Add(arg); } } if (unfound.Count > 0) { var err = "Invalid commands: "; foreach (var a in unfound) { err += $"`{a}` "; } robo.ReportError(channel, err); } if (added == 0) { return(Task.CompletedTask); } if (added == 1 && last_referenced_cmd != null) { var footer = $"Syntax: {robo.Prefix}{last_referenced_cmd.Name} {last_referenced_cmd.Syntax}"; builder.Footer = new EmbedFooterBuilder { Text = footer }; } } channel.SendMessageAsync(null, false, builder.Build()); return(Task.CompletedTask); }
public abstract Task InvokeAsync(Robochan robo, SocketUserMessage message, SocketTextChannel channel, string[] arguments);