public override async Task ButtonAction(SocketReaction action) { switch (action.Emote.ToString()) { case ReactionHandler.CHECK_STR: // Time for security checks /// These checks were done when the command was called - Arcy BanDataNode ban = new BanDataNode(Context.User, Reason); if (notifyTarget) { bool sent = await BotUtils.DMUserAsync(BotUtils.GetGUser(Target.Id), new BanNotifyEmbed(ban.Reason).GetEmbed()); if (!sent) { await Context.Channel.SendMessageAsync(BotUtils.BadDMResponse); } } AdminDataManager.AddBan(Target, ban); await Context.Channel.SendMessageAsync(BotUtils.KamtroAngry($"User {BotUtils.GetFullUsername(Target)} has been banned.")); await ServerData.Server.AddBanAsync(Target.Id, 0, Reason); break; case diamond: notifyTarget = !notifyTarget; await UpdateEmbed(); break; } }
/// <summary> /// Happens whenever a user joins a server the bot is in /// </summary> /// <param name="user">The user that joined</param> /// <returns></returns> public async Task OnMemberJoin(SocketGuildUser user) { // Add default roles await user.AddRoleAsync(ServerData.Kamexican); await user.AddRoleAsync(ServerData.Retropolitan); // For cross ban. if(CrossBan != null && CrossBan.ContainsKey(user.Id)) { await BotUtils.AdminLog($"Cross-banned user {BotUtils.GetFullUsername(user)}. " + CrossBan[user.Id].GetInfoText()); AdminDataManager.AddBan(user, new BanDataNode(Program.Client.CurrentUser, $"[X-ban | {CrossBan[user.Id].GetServer()}] {CrossBan[user.Id].Reason}")); await ServerData.Server.AddBanAsync(user); KLog.Info($"Cross-banned user {BotUtils.GetFullUsername(user)}"); return; } // welcome user Embed e = new EmbedBuilder().WithTitle("Welcome to Kamtro!").WithColor(BotUtils.Kamtro).WithDescription(Program.Settings.WelcomeMessageTemplate).Build(); await BotUtils.DMUserAsync(user, e); }
private void HandleConfirm() { LastPage = PageNum; switch (PageNum) { case 1: switch (OpCursor + 1) { case 1: PageNum = 2; break; case 2: PageNum = 4; break; case 3: PageNum = 9; break; } break; case 2: // autofill if (Autofill != null) { InputFields[3][1].SetValue(Parse(Autofill.Id.ToString())); InputFields[3][2].SetValue(Parse(BotUtils.GetFullUsername(Autofill))); InputFields[3][3].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 1))); InputFields[3][4].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 2))); InputFields[3][5].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 3))); } PageNum = 3; break; case 3: ulong id; if (!string.IsNullOrWhiteSpace(UserId) && ulong.TryParse(UserId, out id)) { bool strike1Added = false; bool strike2Added = false; if (!string.IsNullOrWhiteSpace(Strike1Reason) && Strike1Reason != DefaultText) { AdminDataManager.AddStrike(id, new StrikeDataNode(Context.User, Strike1Reason), BotUtils.GetFullUsername(BotUtils.GetGUser(id)), AdminDataManager.GetStrikes(id) >= 1); strike1Added = true; } if (!string.IsNullOrWhiteSpace(Strike2Reason) && Strike2Reason != DefaultText) { if (!strike1Added && AdminDataManager.GetStrikes(id) == 0) { // Add strike 1 if it wasn't added a few lines ago, and it isn't already there AdminDataManager.AddStrike(id, new StrikeDataNode(Context.User, Strike1Reason), BotUtils.GetFullUsername(BotUtils.GetGUser(id)), AdminDataManager.GetStrikes(id) >= 1); strike1Added = true; } // Add strike 2 AdminDataManager.AddStrike(id, new StrikeDataNode(Context.User, Strike2Reason), BotUtils.GetFullUsername(BotUtils.GetGUser(id)), AdminDataManager.GetStrikes(id) >= 2); strike2Added = true; } if (!string.IsNullOrWhiteSpace(BanReason) && BanReason != DefaultText) { if (!strike1Added && AdminDataManager.GetStrikes(id) == 0) { // Add strike 1 if it wasn't added a few lines ago, and it isn't already there AdminDataManager.AddStrike(id, new StrikeDataNode(Context.User, Strike1Reason), BotUtils.GetFullUsername(BotUtils.GetGUser(id)), AdminDataManager.GetStrikes(id) >= 1); } if (!strike2Added && AdminDataManager.GetStrikes(id) == 1) { AdminDataManager.AddStrike(id, new StrikeDataNode(Context.User, Strike2Reason), BotUtils.GetFullUsername(BotUtils.GetGUser(id)), AdminDataManager.GetStrikes(id) >= 2); } AdminDataManager.AddBan(id, new BanDataNode(Context.User, BanReason), BotUtils.GetFullUsername(BotUtils.GetGUser(id))); } PageNum = 14; } break; case 4: // autofill if (Autofill != null) { UserId = Autofill.Id.ToString(); FullUsername = BotUtils.GetFullUsername(Autofill); InputFields[6][1].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 1))); InputFields[7][1].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 2))); InputFields[8][1].SetValue(Parse(AdminDataManager.GetStrikeReason(Autofill.Id, 3))); } else { return; // you must specify a user } PageNum = 5; break; case 5: switch (OpCursor + 1) { case 1: PageNum = 6; break; case 2: PageNum = 7; break; case 3: PageNum = 8; break; } break; case 6: // handle confirm AdminDataManager.SetStrikeReason(Autofill.Id, 1, Strike1Reason6, BotUtils.GetGUser(Context)); PageNum = 14; break; case 7: // handle confirm AdminDataManager.SetStrikeReason(Autofill.Id, 2, Strike2Reason7, BotUtils.GetGUser(Context)); PageNum = 14; break; case 8: // handle confirm AdminDataManager.SetStrikeReason(Autofill.Id, 3, BanReason8, BotUtils.GetGUser(Context)); PageNum = 14; break; case 9: // HC if (Autofill != null) { UserId = Autofill.Id.ToString(); FullUsername = BotUtils.GetFullUsername(Autofill); Strike1Reason11 = AdminDataManager.GetStrikeReason(Autofill.Id, 1); Strike2Reason12 = AdminDataManager.GetStrikeReason(Autofill.Id, 2); BanReason13 = AdminDataManager.GetStrikeReason(Autofill.Id, 3); } else { return; // you must specify a user } PageNum = 10; break; case 10: switch (OpCursor + 1) { case 1: PageNum = 11; break; case 2: PageNum = 12; break; case 3: PageNum = 13; break; } break; case 11: // handle confirm AdminDataManager.DeleteStrike(Autofill.Id, 1); PageNum = 14; break; case 12: // handle confirm AdminDataManager.DeleteStrike(Autofill.Id, 2); PageNum = 14; break; case 13: // handle confirm AdminDataManager.DeleteStrike(Autofill.Id, 3); PageNum = 14; break; } }