public async Task HandleAsync(MemberLeftEventArgs args) { using var ctx = new AdminDatabaseContext(_provider); var guild = await ctx.GetOrCreateGuildAsync(args.Guild.Id); if (string.IsNullOrWhiteSpace(guild.Goodbye)) { return; } var goodbye = await guild.Goodbye.FormatPlaceHoldersAsync( AdminCommandContext.MockContext(guild.Language, _provider, args.User, args.Guild)); if (!(await ctx.GetLoggingChannelAsync(args.Guild.Id, LogType.Goodbye) is { } channel)) { return; } if (JsonEmbed.TryParse(goodbye, out var embed)) { await channel.SendMessageAsync(embed.Text ?? string.Empty, embed : embed.ToLocalEmbed()); return; } await channel.SendMessageAsync(goodbye); }
public async ValueTask HandleMemberLeft(object sender, MemberLeftEventArgs e) { foreach (var service in MemberLeftServices) { await ExecuteAsync((service, e) => service.OnMemberLeft(e), service, e).ConfigureAwait(false); } }
public ValueTask HandleAsync(MemberLeftEventArgs e) { _bot.Log("MemberLogging", LogSeverity.Information, $"Member {e.User} left guild {e.Guild.Name}."); return(new ValueTask()); }
private async Task MemberLeftAsync(MemberLeftEventArgs args) { if (RiasBot.CurrentUser != null && args.User.Id == RiasBot.CurrentUser.Id) { return; } using var scope = RiasBot.CreateScope(); var db = scope.ServiceProvider.GetRequiredService <RiasDbContext>(); var guildDb = await db.Guilds.FirstOrDefaultAsync(g => g.GuildId == args.Guild.Id); await SendByeMessageAsync(guildDb, args.User, args.Guild); }
public Task HandleAsync(MemberLeftEventArgs args) => LogKickAsync(args.User, args.Guild, null);
protected internal virtual ValueTask OnMemberLeft(MemberLeftEventArgs e) => default;
private void HandleMemberLeft(object sender, MemberLeftEventArgs args) { HandleMessage(args.Member.Host, new UpdateMessage(args.Member)); UpdateAttemptLimit(); }