示例#1
0
        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); }
        }
示例#2
0
        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);
            }
        }