public static async Task RouteSystemMsg(UpdateEventArgs e) { // copy update so easier to call Update Upd = e.Update; User Self = await Vars.BotInstance.GetMeAsync(); foreach (User Usr in e.Update.Message.NewChatMembers) { Log("Processing incoming update (SysRoute), ID: " + Upd.Id + ", user: "******" " + Usr.LastName + ", UID: " + Usr.Id, "BOT"); if (Usr == Self) { goto SkipFor; // skip bot itself } // check user Settings.User DBUser = DB.GetUserByID(Upd.Message.From.Id); if (DBUser == null || DBUser.Verified != true) { // the user is not verified // perform action Log("User not verified, performing action...", "BOT"); if (Vars.CurrentSettings.KickUnverified) { await Vars.BotInstance.KickChatMemberAsync(Upd.Message.Chat.Id, Usr.Id, DateTime.UtcNow.AddSeconds(60)); Log("Kicked user for 1 minute.", "BOT"); } else { await Vars.BotInstance.RestrictChatMemberAsync(Upd.Message.Chat.Id, Usr.Id, DateTime.UtcNow, false, false, false, false); Settings.Message Msg = new Settings.Message(); Msg.ChatID = Upd.Message.Chat.Id; Msg.MessageID = Upd.Message.MessageId; DBUser.Messages.Add(Msg); Log("Limited user permanently.", "BOT"); } } SkipFor :; } }
public static async Task RouteUserMsg(object Sender, UpdateEventArgs e) { // copy update so easier to call Update Upd = e.Update; User Usr = e.Update.Message.From; Log("Processing incoming update (UserRoute), ID: " + Upd.Id + ", user: "******" " + Usr.LastName + ", UID: " + Usr.Id, "BOT"); if (Upd.Message.Chat.Type != ChatType.Private) { return; } // check if user exists Settings.User DBUser = DB.GetUserByID(Upd.Message.From.Id); if (DBUser == null) { // the user does not exist! // create user Log("Adding unfamiliar user to database...", "BOT"); DBUser = new Settings.User(Usr.Id); Vars.CurrentSettings.Users.Add(DBUser); Log("Done, currently we have " + Vars.CurrentSettings.Users.Count + " users on record."); // continue } if (DBUser.Verified) { // user has already passed verification Log("User already passed verification.", "BOT"); await Vars.BotInstance.SendTextMessageAsync(Usr.Id, "💤 Your account is already verified!", ParseMode.Markdown); return; } // user hasn't passed verification yet await Vars.BotInstance.SendTextMessageAsync(Usr.Id, "🔒 *Verification*\n\nWelcome!\n\nTo verify that you're not a robot, visit the page below.\n\n" + Vars.CurrentSettings.ServerURL + "landing?g=" + DBUser.GUID.ToString(), ParseMode.Markdown); }