public async Task SendAsync(string id, [Remainder] string message) { var isEmbed = RiasUtilities.TryParseEmbed(message, out var embed); if (id.StartsWith("c:", StringComparison.InvariantCultureIgnoreCase)) { CachedChannel channel; if (Snowflake.TryParse(id[2..], out var channelId))
private async Task SendGreetMessageAsync(GuildsEntity guildDb, CachedMember member) { if (guildDb is null) { return; } if (!guildDb.GreetNotification) { return; } if (string.IsNullOrEmpty(guildDb.GreetMessage)) { return; } if (guildDb.GreetWebhookId == 0) { return; } var guild = member.Guild; var currentMember = guild.CurrentMember; if (!currentMember.Permissions.ManageWebhooks) { return; } var guildWebhook = await guild.GetWebhookAsync(guildDb.GreetWebhookId); if (_webhooks.TryGetValue(guildDb.GreetWebhookId, out var webhook)) { if (guildWebhook is null) { _webhooks.TryRemove(guildDb.GreetWebhookId, out _); webhook.Dispose(); await DisableGreetAsync(guild); return; } } else { if (guildWebhook != null) { webhook = new RestWebhookClient(guildWebhook); _webhooks.TryAdd(guildWebhook.Id, webhook); } else { await DisableGreetAsync(guild); return; } } if (webhook is null) { return; } var greetMsg = ReplacePlaceholders(member, guildDb.GreetMessage); if (RiasUtilities.TryParseEmbed(greetMsg, out var embed)) { await webhook.ExecuteAsync(embeds : new[] { embed.Build() }); } else { await webhook.ExecuteAsync(greetMsg); } }