public async Task <List <EventMessageObject> > GetMessage(IDiscordGuild guild, EventMessageType type, IDiscordUser user) { var channels = await guild.GetChannelsAsync(); var channelIds = channels.Select(x => x.Id.ToDbLong()); IDiscordGuildUser owner = await guild.GetOwnerAsync(); var ownerMention = owner.Mention; var ownerName = owner.Username; List <EventMessageObject> output = new List <EventMessageObject>(); using (var context = new MikiContext()) { var messageObjects = await context.EventMessages .Where(x => channelIds.Contains(x.ChannelId) && (short)type == x.EventType) .ToListAsync(); var allUsers = await guild.GetMembersAsync(); foreach (var c in messageObjects) { if (c == null) { continue; } if (string.IsNullOrEmpty(c.Message)) { continue; } string modifiedMessage = c.Message; modifiedMessage = modifiedMessage.Replace("-um", user.Mention); modifiedMessage = modifiedMessage.Replace("-uc", guild.MemberCount.ToString()); modifiedMessage = modifiedMessage.Replace("-u", user.Username); modifiedMessage = modifiedMessage.Replace("-ru", allUsers.ElementAt(MikiRandom.Next(0, allUsers.Count())).Username); modifiedMessage = modifiedMessage.Replace("-now", DateTime.Now.ToShortDateString()); modifiedMessage = modifiedMessage.Replace("-s", guild.Name); modifiedMessage = modifiedMessage.Replace("-om", ownerMention); modifiedMessage = modifiedMessage.Replace("-o", ownerName); modifiedMessage = modifiedMessage.Replace("-cc", channels.Count.ToString()); modifiedMessage = modifiedMessage.Replace("-vc", channels.Count.ToString()); output.Add(new EventMessageObject() { message = modifiedMessage, destinationChannel = channels.FirstOrDefault(x => x.Id.ToDbLong() == c.ChannelId) }); } return(output); } }
public async Task <List <EventMessageObject> > GetMessageAsync( DbContext db, IDiscordGuild guild, EventMessageType type, IDiscordUser user) { var channels = (await guild.GetChannelsAsync()).ToList(); var channelIds = channels.Select(x => (long)x.Id); IDiscordGuildUser owner = await guild.GetOwnerAsync(); var ownerMention = owner.Mention; var ownerName = owner.Username; List <EventMessageObject> output = new List <EventMessageObject>(); short t = (short)type; var messageObjects = await db.Set <EventMessage>() .Where(x => channelIds.Contains(x.ChannelId) && t == x.EventType) .ToListAsync(); foreach (var c in messageObjects) { if (c == null) { continue; } if (string.IsNullOrEmpty(c.Message)) { continue; } string modifiedMessage = c.Message; modifiedMessage = modifiedMessage.Replace("-um", user.Mention); modifiedMessage = modifiedMessage.Replace("-uc", guild.MemberCount.ToString()); modifiedMessage = modifiedMessage.Replace("-u", user.Username); modifiedMessage = modifiedMessage.Replace("-now", DateTime.Now.ToShortDateString()); modifiedMessage = modifiedMessage.Replace("-s", guild.Name); modifiedMessage = modifiedMessage.Replace("-om", ownerMention); modifiedMessage = modifiedMessage.Replace("-o", ownerName); modifiedMessage = modifiedMessage.Replace("-cc", channels.Count().ToString()); modifiedMessage = modifiedMessage.Replace("-vc", channels.Count().ToString()); output.Add(new EventMessageObject { Message = modifiedMessage, DestinationChannel = channels.FirstOrDefault( x => (long)x.Id == c.ChannelId) as IDiscordTextChannel }); } return(output); }
public async Task <ScriptUser> GetOwnerAsync() { return(owner ??= new ScriptUser(await guild.GetOwnerAsync())); }