Esempio n. 1
0
        private async Task OnMessageReceivedAsync(SocketMessage MsgParam)
        {
            var msg = MsgParam as SocketUserMessage;

            if (msg == null)
            {
                return;
            }
            var context = new CyanCommandContext(cyanClient, msg);

            int    argPos = 0;
            string prefix = cyanConfig["globalprefix"];

            if (context.Guild != null)
            {
                prefix = await cyanManager.GetPrefixAsync(context.Guild.Id);
            }

            bool hasStringPrefix = prefix == null ? false : msg.HasStringPrefix(prefix, ref argPos);

            if (hasStringPrefix || msg.HasStringPrefix(cyanConfig["globalprefix"], ref argPos))
            {
                var ts = context.Channel.EnterTypingState();
                await ExecuteAsync(context, cyanProvider, argPos);

                ts.Dispose();
                GC.Collect();
            }
        }
Esempio n. 2
0
        private async Task ResultAsync(CyanCommandContext context, IResult result)
        {
            if (result.IsSuccess)
            {
                return;
            }

            switch (result)
            {
            case ExecuteResult exr:
                await cyanLogger.LogAsync(LogSeverity.Error, "Commands", exr.Exception?.ToString() ?? exr.ErrorReason);

                break;

            default:
                await context.Channel.SendMessageAsync(result.ErrorReason);

                break;
            }
        }
Esempio n. 3
0
        public async Task ExecuteAsync(CyanCommandContext context, IServiceProvider provider, string input)
        {
            var result = await cyanCommands.ExecuteAsync(context, input, provider);

            await ResultAsync(context, result);
        }
Esempio n. 4
0
        public async Task ExecuteAsync(CyanCommandContext context, IServiceProvider provider, int argPos)
        {
            var result = await cyanCommands.ExecuteAsync(context, argPos, provider);

            await ResultAsync(context, result);
        }