public async Task AddUserUnBannedEventAsync(GuildBanRemoveEventArgs args) { UserEvent userEvent = new UserEvent() { UserId = args.Member.Id, Username = args.Member.Username, Nickname = args.Member.Nickname, Discriminator = args.Member.Discriminator, AvatarId = args.Member.AvatarHash.ToString(), AccountCreated = args.Member.CreationTimestamp.UtcDateTime, Bot = args.Member.IsBot, Event = Event.Unbanned, Timestamp = DateTime.Now, }; try { using IServiceScope scope = this.scopeFactory.CreateScope(); using AnalyticsContext db = scope.ServiceProvider.GetRequiredService <AnalyticsContext>(); db.UserEvents.Add(userEvent); await db.SaveChangesAsync(); } catch (Exception e) { Log.Error(e, $"Failed to add new user event {userEvent.Username}#{userEvent.Discriminator} | {userEvent.UserId}"); return; } }
private async Task GuildBanRemoved(DiscordClient sender, GuildBanRemoveEventArgs e) { var unbanEntry = await GetNewEntryAsync() as DiscordAuditLogBanEntry; _entryBuilder = EmbedBuilderExtensions.CreateForAudit(unbanEntry, "Разбан", $"Пользователь {unbanEntry.Target.Username} был разбанен"); await SendMessageToAuditAsync(embed : _entryBuilder); }
private async Task OnGuildBanRemoved(GuildBanRemoveEventArgs e) { if (GuildBanRemoved != null) { await GuildBanRemoved(e); } }
private async Task DBLogBanRemoved(DiscordClient sender, GuildBanRemoveEventArgs args) { if (IsSBG(args.Guild.Id)) { await this.userEventService.AddUserUnBannedEventAsync(args); } }
private async Task GuildBanRemoved(DiscordClient c, GuildBanRemoveEventArgs e) { Task.Run(async() => { await logService.GuildLogger(c, e.Guild, e, LogType.Ban).ConfigureAwait(true); this.logger.Information($"'{e.Member.GetUsertag()}' ({e.Member.Id}) has been unbanned from '{e.Guild.Name}' ({e.Guild.Id})."); }); }
public static async Task CommandError(ModCoreShard bot, GuildBanRemoveEventArgs e) { var t = Timers.FindNearestTimer(TimerActionType.Unban, e.Member.Id, 0, e.Guild.Id, bot.Database); if (t != null) { await Timers.UnscheduleTimerAsync(t, bot.Client, bot.Database, bot.SharedData); } }
private async Task Client_GuildBanRemoved(GuildBanRemoveEventArgs e) { _logger.Trace($"FilterBot::Client_GuildBanRemoved [Guild={e.Guild.Name}, Username={e.Member.Username}]"); var channel = await _client.GetChannel(_config.CommandsChannelId); if (channel == null) { _logger.Error($"Failed to find channel {_config.CommandsChannelId}."); return; } await channel.SendMessageAsync($"Zeus was feeling nice today and unbanned {e.Member.Mention}, welcome back! Hopefully you'll learn to behave this time around. ;)"); }
private async Task Unban(GuildBanRemoveEventArgs e) { if (e.Client != Client) { var emoji = DiscordEmoji.FromName(this.Client, ":dove:"); // let's wrap the response into an embed var embed = new DiscordEmbedBuilder { Title = $"Unban {emoji}", Description = $"User {e.Client.CurrentUser.Username}.", Color = new DiscordColor(0xFF0000) // red // there are also some pre-defined colors available // as static members of the DiscordColor struct }; await e.Guild.GetChannel(334793139661570058).SendMessageAsync("", embed: embed); } }
public static async Task OnGuildBanRemoved(DiscordClient sender, GuildBanRemoveEventArgs args) { var data = DataContext.GetUserData(args.Guild.Id, args.Member.Id); var lastBan = data.Sanctions.LastOrDefault(s => s.Type == Sanction.SanctionType.Ban); if (lastBan != null) { lastBan.Type = Sanction.SanctionType.Unban; lastBan.ExpiresAt = DateTimeOffset.Now; DataContext.SaveUserData(data); } var unbans = await args.Guild.GetAuditLogsAsync(1, action_type : AuditLogActionType.Unban); var responsible = unbans[0].UserResponsible; sender.Logger.LogInformation(EventIds.Unban, "'{RUsername}#{RDiscriminator}' unbanned '{UMUsername}#{UMDiscriminator}'", responsible.Username, responsible.Discriminator, args.Member.Username, args.Member.Discriminator); }
internal static Task BanRemoved(DiscordClient _1, GuildBanRemoveEventArgs e) { _ = Task.Run(async() => { if (e.Guild.Id != 699555747591094344) { return; } DiscordAuditLogBanEntry auditLog = (await e.Guild.GetAuditLogsAsync(limit: 5, action_type: AuditLogActionType.Unban)) .First(x => ((DiscordAuditLogBanEntry)x).Target == e.Member) as DiscordAuditLogBanEntry; DiscordEmbedBuilder embed = new DiscordEmbedBuilder() .WithTimestamp(auditLog.CreationTimestamp) .WithDescription($":leaves: {Formatter.Bold("User unbanned:")} {e.Member.Username}#{e.Member.Discriminator} ({e.Member.Id})\n" + $"{Formatter.Bold("By user:"******" + $"\n{Formatter.Bold("Reason:")} {auditLog.Reason}") .WithColor(DiscordColor.Green); await DiscordObjectService.Instance.LogsChannel.SendMessageAsync(embed); }); return(Task.CompletedTask); }
async Task Client_BanRemoved(GuildBanRemoveEventArgs e) { }
private Task GuildBanRemoved(GuildBanRemoveEventArgs e) { _logger.Information($"'{e.Member.GetUsertag()}' ({e.Member.Id}) has been unbanned from '{e.Guild.Name}' ({e.Guild.Id})."); return(Task.CompletedTask); }
private Task Client_GuildBanRemoved(GuildBanRemoveEventArgs e) { e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", e.ToString(), DateTime.Now); return(Task.CompletedTask); }
public static async Task GuildUnbanEventHandlerAsync(TheGodfatherShard shard, GuildBanRemoveEventArgs e) { DiscordChannel logchn = shard.SharedData.GetLogChannelForGuild(shard.Client, e.Guild); if (logchn == null) { return; } DiscordEmbedBuilder emb = FormEmbedBuilder(EventOrigin.KickOrBan, "Member unbanned"); var entry = await e.Guild.GetFirstAuditLogEntryAsync(AuditLogActionType.Unban); if (entry == null || !(entry is DiscordAuditLogBanEntry bentry)) { emb.WithDescription(e.Member?.ToString() ?? _unknown); emb.AddField("Error", "Failed to read audit log information. Please check my permissions"); } else { emb.WithDescription(bentry.Target.ToString()); emb.AddField("User responsible", bentry.UserResponsible.Mention, inline: true); if (!string.IsNullOrWhiteSpace(bentry.Reason)) { emb.AddField("Reason", bentry.Reason); } emb.WithFooter(bentry.CreationTimestamp.ToUtcTimestamp(), bentry.UserResponsible.AvatarUrl); } await logchn.SendMessageAsync(embed : emb.Build()); }
private Task Event_GuildBanRemoved(DiscordClient d, GuildBanRemoveEventArgs e) { d.Logger.LogDebug(BotEventId, "Event_GuildBanRemoved."); return(Task.CompletedTask); }