public async Task HandleCommand(IListener listener, IRespondable respondTo, IList <string> args, LinkedMessage e) { SendOptions opts = new SendOptions(); try{ opts.Parse(args); string msg = opts.Parameters.Count > 0 ? LilGUtil.ArgJoiner(opts.Parameters.ToArray()) : opts.Parameters[0]; if (opts.Raw) { LinkedIrcMessage message = (LinkedIrcMessage)e; message.Client.SendRawMessage(msg); return; } if (opts.channelId != 0) { DiscordChannel channel = await Program.Config.DiscordSocketClient.GetChannelAsync(opts.channelId); await channel.SendMessageAsync(msg); return; } if (opts.channel != null) { LinkedIrcMessage message = (LinkedIrcMessage)e; if (message.Client.Channels.Contains(opts.channel)) { message.Client.SendMessage(msg, opts.channel); } } } catch (GetOptException) { await Help(listener, respondTo, args, e); } }
public async Task HandleCommand(IListener listener, IRespondable respondTo, IList <string> args, LinkedMessage e) { var opts = new ReplOptions(); try{ opts.Parse(args); string code; if (opts.Parameters.Count > 1) { code = LilGUtil.ArgJoiner(opts.Parameters.ToArray()); } else { code = opts.Parameters[0]; } Globals.e = e; Globals.args = args; Globals.listener = listener; Globals.respondTo = respondTo; Globals.server = e.server; Globals.channel = e.channel; Globals.author = e.author; Task <object> task = CSharpScriptEngine.Execute(code, Globals); await respondTo.respond((await task).ToString(), e.author); } catch (GetOptException) { await Help(listener, respondTo, args, e); } }