internal async Task UserJoinedAsync(SocketGuildUser User) { var Config = GuildHandler.GetGuild(User.Guild.Id); await WebhookService.SendMessageAsync(new WebhookOptions { Name = Client.CurrentUser.Username, Webhook = Config.JoinWebhook, Message = !Config.JoinMessages.Any() ? $"**{User.Username}** is here to rock our world! Yeah, baby!" : StringHelper.Replace(Config.JoinMessages[Random.Next(0, Config.JoinMessages.Count)], User.Guild.Name, User.Mention) }); var Role = User.Guild.GetRole(Config.Mod.JoinRole); if (Role != null) { await User.AddRoleAsync(Role).ConfigureAwait(false); } }
internal async Task MessageDeletedAsync(Cacheable <IMessage, ulong> Cache, ISocketMessageChannel Channel) { var Config = GuildHandler.GetGuild((Channel as SocketGuildChannel).Guild.Id); var Message = await Cache.GetOrDownloadAsync(); if (Message == null || Config == null || !Config.Mod.LogDeletedMessages || Message.Author.IsBot) { return; } Config.DeletedMessages.Add(new MessageWrapper { ChannelId = Channel.Id, MessageId = Message.Id, AuthorId = Message.Author.Id, DateTime = Message.Timestamp.DateTime, Content = Message.Content ?? Message.Attachments.FirstOrDefault()?.Url }); GuildHandler.Save(Config); }
internal Task GuildAvailable(SocketGuild Guild) => Task.Run(() => GuildHandler.AddGuild(Guild.Id, Guild.Name));
internal Task LeftGuild(SocketGuild Guild) => Task.Run(() => GuildHandler.RemoveGuild(Guild.Id, Guild.Name));
internal async Task JoinedGuildAsync(SocketGuild Guild) { GuildHandler.AddGuild(Guild.Id, Guild.Name); await Guild.DefaultChannel.SendMessageAsync(ConfigHandler.Config.JoinMessage ?? "Thank you for inviting me to your server!"); }