Ejemplo n.º 1
0
        public async Task ModulsAsync([Remainder] string args = null)
        {
            // Check if right Channel
            bool check = ReadChannelGeneralAdmin();

            if (!check)
            {
                return;
            }

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

                return;
            }

            if (args == null)
            {
                await SendToGeneralChannelAdminAsync(Context.User.Mention + " Du hast zu wenige Argumente angegeben. Bitte nutze den Befehl wie folgt:\n>>> `" +
                                                     Prefix + "edituser <UserID> <Counter_Streak> <Counter_Highest_Streak> <CounterAll> <Last_Date>` \n" +
                                                     "**BITTE BEACHTEN**: `<Last_Date>` **MUSS** im Format `DD.MM.YYYY` angegeben werden. Eine falsche Formation **WIRD** zu Fehlern bei den nächsten Zählungen führen!");

                return;
            }
            args = args.ToLower();
            string[] countArgs = args.Split(' ');

            // Check if to less or much Arguments
            if (countArgs.Length < 5)
            {
                await SendToGeneralChannelAdminAsync(Context.User.Mention + " Zu wenige Agumente!");
            }
            else if (countArgs.Length > 5)
            {
                await SendToGeneralChannelAdminAsync(Context.User.Mention + " Zu viele Agumente!");
            }
            else
            {
                // Check if Member has ModRole
                bool memberHasModRole = false;
                foreach (var item in Context.Guild.GetRole(ModRoleID).Members)
                {
                    if (item.Id == Context.User.Id)
                    {
                        memberHasModRole = true;
                    }
                }
                // User is Mod or Admin
                if (memberHasModRole || Context.Guild.GetUser(Context.User.Id).GuildPermissions.Administrator)
                {
                    var          db      = new DatabaseInit().connect();
                    TablesHeader dbTable = new TablesHeader(db);

                    var       table1337 = dbTable.Table1337;
                    Table1337 updateUser;
                    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
                        updateUser = dbTable.Table1337.Single((item) => item.userid == userID);
                    }
                    catch (Exception)
                    {
                        await SendToGeneralChannelAdminAsync("Es wurde kein User mit der ID: " + countArgs[0] + " gefunden");

                        return;
                    }
                    // Check If args are Numbers
                    // <Counter_Streak>
                    try
                    {
                        updateUser.counter_streak = Convert.ToUInt32(countArgs[1]);
                    }
                    catch (Exception e)
                    {
                        await SendToGeneralChannelAdminAsync("Meow:\n" + e);
                        await SendToGeneralChannelAdminAsync("<Counter_Streak> war keine Positive Zahl!");

                        return;
                    }
                    // <Counter_Highest_Streak>
                    try
                    {
                        updateUser.counter_longest_streak = Convert.ToUInt32(countArgs[2]);
                    }
                    catch (Exception)
                    {
                        await SendToGeneralChannelAdminAsync("<Counter_Highest_Streak> war keine Positive Zahl!");

                        return;
                    }
                    try
                    {
                        updateUser.counter_all = Convert.ToUInt32(countArgs[3]);
                    }
                    catch (Exception)
                    {
                        await SendToGeneralChannelAdminAsync("<CounterAll> war keine Positive Zahl!");

                        return;
                    }

                    updateUser.date_last = countArgs[4];
                    dbTable.SubmitChanges();
                    db.Close();

                    await SendToGeneralChannelAdminAsync("User: "******" wurde erfolgreich Editiert\n" +
                                                         "Seine neuen Werte lauten wie Folgt:\n" +
                                                         ">>> Counter Streak: `" + countArgs[1] + "`\n" +
                                                         "Counter Longest Streak: `" + countArgs[2] + "`\n" +
                                                         "Counter Alltime: `" + countArgs[3] + "`\n" +
                                                         "Date Last: `" + countArgs[4] + "`");

                    LogMain("User: "******" wurde von " + Context.User.Username + " mit der ID " + Context.User.Id + " editiert.", LogLevel.Warning);
                }
                else
                {
                    await SendToGeneralChannelAdminAsync("Du hast keine Berechtigung. Du musst im besitz der `" + Context.Guild.GetRole(ModRoleID).Name + "` Rolle sein.");
                }
            }
        }