示例#1
0
        async Task DoCommand(iCommand command, iMsgData msgData)
        {
            if (command.Multithreaded)
            {
                Thread t = new Thread(async() =>
                {
                    var d = await command.Evaluate(msgData);
                    if (d)
                    {
                        await command.DoWork(msgData);
                    }
                }
                                      );
                t.Start();
            }
            else
            {
                var d = await command.Evaluate(msgData);

                if (d)
                {
                    await command.DoWork(msgData);
                }
            }
        }
示例#2
0
 private async Task DoCommands(iMsgData md)
 {
     foreach (iCommand command in commands.ToList())
     {
         await DoCommand(command, md);
     }
 }
示例#3
0
        async Task <bool> iCommand.Evaluate(iMsgData message)
        {
            AbbybotCommandArgs aca = message as AbbybotCommandArgs;
            var  cmdI     = ++aca.commandsTested;
            bool gonnaRun = await Evaluate(aca);

            //if (gonnaRun)
            //Console.WriteLine($"[t{cmdI}]. {Command}");
            return(gonnaRun);
        }
示例#4
0
        public async Task <List <string> > GetHelp(iMsgData md)
        {
            await Reload();

            var list = new List <string>();

            foreach (var c in commands.ToList())
            {
                if (c.ShowHelp(md))
                {
                    list.Add(await c.toHelpString(md));
                }
            }
            return(await Task.FromResult(list));
        }
示例#5
0
        async Task iCommand.DoWork(iMsgData md)
        {
            var aca = md as AbbybotCommandArgs;

            try
            {
                await DoWorkIncrementations(aca);
            }
            catch { }

            try
            {
                var cmdW = aca.commandsRun++;
                //Console.WriteLine($"[c{cmdW}] {Command}");
                await DoWork(aca);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
示例#6
0
 async Task <bool> iCommand.ShowHelp(iMsgData md)
 {
     return(await ShowHelp(md as AbbybotCommandArgs));
 }
示例#7
0
 async Task iCommand.RegenHelpString(iMsgData md)
 {
     helpString = await toHelpString(md as AbbybotCommandArgs);
 }
示例#8
0
 private async Task bCute(iMsgData md)
 {
     await Reload();
     await DoCommands(md);
 }
示例#9
0
 public void Start(iMsgData md)
 {
     bCute(md).GetAwaiter().GetResult();
 }