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."); } } }
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(); } }
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(); }