Пример #1
0
        private async Task ShowUser(string args, ShowUserEnum su)
        {
            if (!ReadChannelGeneralAdmin())
            {
                return;
            }

            if (ModRoleID == 0)
            {
                await SendToGeneralChannelAdminAsync("Die Mod rolle wurde noch nicht gesetzt, bitte dem SeverAdministrator bescheid geben!");

                return;
            }

            if (args == null)
            {
                if (su == ShowUserEnum.Today)
                {
                    await SendToGeneralChannelAdminAsync(Context.User.Mention + " Du hast zu wenige Argumente angegeben. Bitte nutze den Befehl wie folgt:\n>>> `" +
                                                         Prefix + "showusertoday <UserID>`");
                }
                else if (su == ShowUserEnum.Yesterday)
                {
                    await SendToGeneralChannelAdminAsync(Context.User.Mention + " Du hast zu wenige Argumente angegeben. Bitte nutze den Befehl wie folgt:\n>>> `" +
                                                         Prefix + "showuseryesterday <UserID>`");
                }
                return;
            }
            args = args.ToLower();
            string[] countArgs = args.Split(' ');

            if (countArgs.Length > 1)
            {
                await SendToGeneralChannelAdminAsync(Context.User.Mention + " Zu viele Agumente!");
            }
            else
            {
                bool memberHasModRole = false;
                foreach (var item in Context.Guild.GetRole(ModRoleID).Members)
                {
                    if (item.Id == Context.User.Id)
                    {
                        memberHasModRole = true;
                    }
                }

                if (memberHasModRole || Context.Guild.GetUser(Context.User.Id).GuildPermissions.Administrator)
                {
                    var          db      = new DatabaseInit().connect();
                    TablesHeader dbTable = new TablesHeader(db);

                    Table1337   updateUserToday     = new Table1337();
                    Table1337_2 updateUserYesterday = new Table1337_2();

                    try
                    {
                        // Check if UserID is number
                        ulong userID = 0;
                        try
                        {
                            userID = Convert.ToUInt64(countArgs[0]);
                        }
                        catch (Exception)
                        {
                            await SendToGeneralChannelAdminAsync("<UserID> war keine Zahl!");

                            return;
                        }
                        // Get User from Database
                        if (su == ShowUserEnum.Today)
                        {
                            updateUserToday = dbTable.Table1337.Single((item) => item.userid == userID);
                        }
                        else if (su == ShowUserEnum.Yesterday)
                        {
                            updateUserYesterday = dbTable.Table1337_2.Single((item) => item.userid == userID);
                        }
                    }
                    catch (Exception)
                    {
                        await SendToGeneralChannelAdminAsync("Es wurde kein User mit der ID: " + countArgs[0] + " gefunden");

                        return;
                    }
                    if (su == ShowUserEnum.Today)
                    {
                        await SendToGeneralChannelAdminAsync("User Informationen\n" +
                                                             ">>> Name: `" + updateUserToday.username + "`\n" +
                                                             "ID: `" + updateUserToday.userid.ToString() + "`\n" +
                                                             "Counter Streak: `" + updateUserToday.counter_streak + "`\n" +
                                                             "Counter Longest Streak: `" + updateUserToday.counter_longest_streak + "`\n" +
                                                             "Counter All: `" + updateUserToday.counter_all + "`\n" +
                                                             "Date Begin: `" + updateUserToday.date_begin + "`\n" +
                                                             "Date Last: `" + updateUserToday.date_last + "`");
                    }
                    else if (su == ShowUserEnum.Yesterday)
                    {
                        await SendToGeneralChannelAdminAsync("User Informationen\n" +
                                                             ">>> Name: `" + updateUserYesterday.username + "`\n" +
                                                             "ID: `" + updateUserYesterday.userid.ToString() + "`\n" +
                                                             "Counter Streak: `" + updateUserYesterday.counter_streak + "`\n" +
                                                             "Counter Longest Streak: `" + updateUserYesterday.counter_longest_streak + "`\n" +
                                                             "Counter All: `" + updateUserYesterday.counter_all + "`\n" +
                                                             "Date Begin: `" + updateUserYesterday.date_begin + "`\n" +
                                                             "Date Last: `" + updateUserYesterday.date_last + "`");
                    }
                }
                else
                {
                    await SendToGeneralChannelAdminAsync("Du hast keine Berechtigung. Du musst im besitz der `" + Context.Guild.GetRole(ModRoleID).Name + "` Rolle sein.");
                }
            }
        }
Пример #2
0
        private async Task Message1337(SocketMessage rawMessage)
        {
            // Ignore system messages and messages from bots
            if (!(rawMessage is SocketUserMessage message))
            {
                return;
            }
            if (message.Source != MessageSource.User)
            {
                return;
            }

            var  context = new SocketCommandContext(this._client, message);
            bool check   = _c.ReadChannel1337Listen(context);

            if (!check)
            {
                return;
            }

            // Get Time to Check if we are on right time and prepare the string for it
            string timeNowAsString = DateTime.Now.ToString(formatTime);
            string result          = t.RemoveSpecificCharFromString(timeNowAsString, ':');
            int    timeNowAsInt    = Convert.ToInt32(result);

            // check if message contains a mention and get this mention as id to string
            string rolles = " ";

            if (message.MentionedRoles.Count == 1)
            {
                foreach (var item in message.MentionedRoles)
                {
                    if (item.Name == "1337")
                    {
                        rolles = item.Id.ToString();
                    }
                }
            }

            // Split Message and count every 1337 and @1337
            string[] userMessage  = message.Content.Split(' ');
            int      counter1337  = 0;
            int      counterM1337 = 0;

            // count
            foreach (var item in userMessage)
            {
                if (item == "1337")
                {
                    counter1337++;
                }
                else if (item == "<@&" + rolles + ">")
                {
                    counterM1337++;
                }
            }

            // check if message has 1337 or @1337 ones!
            if (counter1337 == 1 && counterM1337 != 1 || counter1337 != 1 && counterM1337 == 1)
            {
                //Check if it is the right time! 133700 - 133800 otherwise break
                if (!(133700 <= timeNowAsInt && 133800 >= timeNowAsInt))
                {
                    if (this._devMode)
                    {
                        await _c.SendTo1337ChannelAsync(context.Guild.GetUser(message.Author.Id).Mention +
                                                        " Nicht in der richtigen Zeit!", context);
                    }
                    LogMain("1 " + context.Guild.GetUser(message.Author.Id).Username + " Nicht in der richtigen Zeit!", LogLevel.Log);
                    return;
                }

                this.db = this.dbClass.connect();
                TablesHeader dbTable = new TablesHeader(this.db);

                // select the curent users userid from database
                var table1337 = dbTable.Table1337;
                var userID    = from table in table1337
                                where table.userid == message.Author.Id
                                select table.userid;

                // Check if this user is in Database
                if (userID.Count() == 0)
                {
                    // Add new User to Database if not exist
                    Table1337 addNewUser = new Table1337()
                    {
                        userid                 = message.Author.Id,
                        username               = context.Guild.GetUser(message.Author.Id).Username,
                        counter_all            = 1,
                        counter_streak         = 1,
                        counter_longest_streak = 1,
                        date_begin             = DateTime.Today.ToString(formatDate),
                        date_last              = DateTime.Today.ToString(formatDate)
                    };

                    dbTable.Table1337.InsertOnSubmit(addNewUser);
                    dbTable.SubmitChanges();
                    // Counts User for bot respons
                    counterUserPerDay++;
                    if (this._devMode)
                    {
                        await _c.SendTo1337ChannelAsync(context.Guild.GetUser(message.Author.Id).Mention +
                                                        " Hab dich gezählt :P", context);
                    }
                    LogMain("2 " + context.Guild.GetUser(message.Author.Id).Username + " Hab dich gezählt :P ", LogLevel.Log);
                }
                else // Update user if allready exist
                {
                    //get colum from current user by id
                    var userID2 = from table in table1337
                                  where table.userid == message.Author.Id
                                  select table;

                    // temp variable for changes
                    uint   counter_allQ           = 0;
                    uint   counter_streakQ        = 0;
                    uint   counter_logest_streakQ = 0;
                    string date_lastQ             = " ";

                    // get current data from user
                    foreach (var item in userID2)
                    {
                        counter_allQ           = item.counter_all;
                        counter_streakQ        = item.counter_streak + 1;
                        counter_logest_streakQ = item.counter_longest_streak;
                        date_lastQ             = item.date_last;
                    }

                    if (date_lastQ != DateTime.Today.ToString(formatDate))
                    {
                        // update counter longest streak if user got higher streak
                        if (counter_streakQ > counter_logest_streakQ)
                        {
                            counter_logest_streakQ = counter_streakQ;
                        }

                        // get the user which should be updated by id
                        var updateTable = dbTable.Table1337.Single((item) => item.userid == message.Author.Id);

                        // update values for user
                        updateTable.username    = context.Guild.GetUser(message.Author.Id).Username;
                        updateTable.counter_all = counter_allQ + 1;
                        if (date_lastQ != DateTime.Today.AddDays(-1).ToString(formatDate))
                        {
                            updateTable.counter_streak = 1;
                        }
                        else
                        {
                            updateTable.counter_streak = counter_streakQ;
                        }
                        // Muss noch angepasst werden | An Tag anpassen
                        updateTable.counter_longest_streak = counter_logest_streakQ;
                        updateTable.date_last = DateTime.Today.ToString(formatDate);

                        // send data to database when SubmitChanges() is called.
                        dbTable.SubmitChanges();
                        // Counts User for bot respons
                        counterUserPerDay++;
                        if (_devMode)
                        {
                            await _c.SendTo1337ChannelAsync(context.Guild.GetUser(message.Author.Id).Mention +
                                                            " Hab dich gezählt :P", context);
                        }
                        LogMain("3 " + context.Guild.GetUser(message.Author.Id).Username + " Hab dich gezählt :P ", LogLevel.Log);
                    }
                    else
                    {
                        if (this._devMode)
                        {
                            await _c.SendTo1337ChannelAsync(context.Guild.GetUser(message.Author.Id).Mention +
                                                            " Du wurdest heute schon gezählt. Schummeln gilt nicht!! <:pandabulle:327873024017563649>", context);
                        }
                        LogMain("4 " + context.Guild.GetUser(message.Author.Id).Username +
                                " Du wurdest heute schon gezählt. Schummeln gilt nicht!! <:pandabulle:327873024017563649> ", LogLevel.Log);
                    }
                }
                this.db.Close();
            }
        }
Пример #3
0
        public async Task countuser(SocketGuildUser user)
        {
            if (!ReadChannelGeneralAdmin())
            {
                return;
            }

            if (ModRoleID == 0)
            {
                await SendToGeneralChannelAdminAsync("Die Mod rolle wurde noch nicht gesetzt, bitte dem SeverAdministrator bescheid geben!");

                return;
            }

            string           formatDate = "dd.MM.yyyy";
            SQLiteConnection db         = this.dbClass.connect();
            TablesHeader     dbTable    = new TablesHeader(db);

            // select the curent users userid from database
            var table1337 = dbTable.Table1337;
            var userID    = from table in table1337
                            where table.userid == user.Id
                            select table.userid;

            if (userID.Count() == 0)
            {
                // Add new User to Database if not exist
                Table1337 addNewUser = new Table1337()
                {
                    userid                 = user.Id,
                    username               = user.Username,
                    counter_all            = 1,
                    counter_streak         = 1,
                    counter_longest_streak = 1,
                    date_begin             = DateTime.Today.ToString(formatDate),
                    date_last              = DateTime.Today.ToString(formatDate)
                };

                dbTable.Table1337.InsertOnSubmit(addNewUser);
                dbTable.SubmitChanges();

                await SendToGeneralChannelAdminAsync(user.Username + " gezählt und neu in der Datenbank angelegt.");
            }
            else
            {
                var userID2 = from table in table1337
                              where table.userid == user.Id
                              select table;

                // temp variable for changes
                uint   counter_allQ           = 0;
                uint   counter_streakQ        = 0;
                uint   counter_logest_streakQ = 0;
                string date_lastQ             = " ";

                // get current data from user
                foreach (var item in userID2)
                {
                    counter_allQ           = item.counter_all;
                    counter_streakQ        = item.counter_streak + 1;
                    counter_logest_streakQ = item.counter_longest_streak;
                    date_lastQ             = item.date_last;
                }

                // update counter longest streak if user got higher streak
                if (counter_streakQ > counter_logest_streakQ)
                {
                    counter_logest_streakQ = counter_streakQ;
                }

                // get the user which should be updated by id
                var updateTable = dbTable.Table1337.Single((item) => item.userid == user.Id);

                // update values for user
                updateTable.username    = user.Username;
                updateTable.counter_all = counter_allQ + 1;
                if (date_lastQ != DateTime.Today.AddDays(-1).ToString(formatDate))
                {
                    updateTable.counter_streak = 1;
                }
                else
                {
                    updateTable.counter_streak = counter_streakQ;
                }
                // Muss noch angepasst werden | An Tag anpassen
                updateTable.counter_longest_streak = counter_logest_streakQ;
                updateTable.date_last = DateTime.Today.ToString(formatDate);

                // send data to database when SubmitChanges() is called.
                dbTable.SubmitChanges();
                await SendToGeneralChannelAdminAsync(user.Username + " gezählt.");
            }
            db.Close();
        }