public static void getCounter(ulong GuildId, ulong UserId, Databases.GuildUserDatabase.Counters counter)
            {
                switch (counter)
                {
                case Databases.GuildUserDatabase.Counters.Commands:
                    break;

                case Databases.GuildUserDatabase.Counters.Images:
                    break;

                case Databases.GuildUserDatabase.Counters.Links:
                    break;

                case Databases.GuildUserDatabase.Counters.Messages:
                    break;

                case Databases.GuildUserDatabase.Counters.YoutubeLinks:
                    break;
                }
            }
Example #2
0
        private async Task HandleCommands(Discord.WebSocket.SocketMessage arg)
        {
            //Handle Commands right here
            var message = arg as SocketUserMessage;

            if (message == null)
            {
                return;
            }
            //Track where the command prefix ends and where the command begins
            int argPos = 0;

            //Check if author is a bot
            if (message.Author.IsBot)
            {
                return;
            }
            //Determine if the message is a command or a mention
            if (!(message.HasCharPrefix(CoreProgram.prefix, ref argPos) || message.HasMentionPrefix(_client.CurrentUser, ref argPos)))
            {
                //check if message is a private message
                if (message.Channel.Name == $"@{message.Author.Username}#{message.Author.DiscriminatorValue}")
                {
                    //Case private message
                    string text = "";
                    text = message.Attachments.Count > 0 ? $"[{message.Channel.Name}|{message.Author.Username}] whispered: {message.Content} 'FILE ATTACHED'" : $"[{message.Channel.Name}|{message.Author.Username}] whispered: {message.Content}";
                    //Send message to the logHandler
                    await _errorHandler._client_Log(new LogMessage(LogSeverity.Warning, "DM Chat", text));
                }
                else
                {
                    //Create SocketGuildUser
                    var chat_context = arg.Author as SocketGuildUser;
                    //Case public message
                    string text = "";
                    text = message.Attachments.Count > 0 ? $"[{chat_context.Guild.Name}|{message.Channel.Name}|{message.Author.Username}] wrote: {message.Content} 'FILE ATTACHED'" : $"[{chat_context.Guild.Name}|{message.Channel.Name}|{message.Author.Username}] wrote: {message.Content}";
                    //Check the type of the message
                    Databases.GuildUserDatabase.Counters messageType = Databases.GuildUserDatabase.CheckMessageType(message.Content);
                    //increase statistic counter for the user
                    Databases.GuildUserDatabase.IncreaseCount(chat_context, chat_context.Guild.Id, messageType);
                    //Send message to the logHandler
                    await _errorHandler._client_Log(new LogMessage(LogSeverity.Debug, "Discord Chat", text));

                    chat_context = null;
                }
                return;
            }
            ;

            //Create CommandContext
            var context = new SocketCommandContext(_client, message);

            /*
             * CHECK IF THE COMMAND IS ENABLE ON THE CONTEXT SERVER
             */
            //Execute the Command
            var result = await _commands.ExecuteAsync(context, argPos, _services);

            //If command is not private - increase counter
            if (!context.IsPrivate)
            {
                Databases.GuildUserDatabase.IncreaseCount(context.User, context.Guild.Id, Databases.GuildUserDatabase.Counters.Commands, context.Message.Content);
            }

            //Send commanmd to the logHandler
            await _errorHandler._client_Log(new LogMessage(LogSeverity.Verbose, "Discord Chat", $"[{message.Channel.Name}|{message.Author.Username}] Command: {message.Content}"));

            //If error occures - direct them to the ErrorHandler
            if (!result.IsSuccess)
            {
                await _errorHandler.HandleCommandError(context, result, "HandleCommands");
            }
        }