Example #1
0
        public async Task MockAsync(IMessage message)
        {
            var webhooks = await Context.Channel.GetWebhooksAsync();

            var webhook = webhooks.FirstOrDefault() ?? await Context.Channel.CreateWebhookAsync("Espeon Webhook");

            var webhookClient = new RestWebhookClient(webhook);
Example #2
0
        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);
            }
        }