public CV(CurrentUser user) { this.user = user; experienceHandler = new ExperienceHandler(user); educationHandler = new EducationHandler(user); db = Database.Open("StarterSite"); Id = FirstName = LastName = Email = PhoneNumber = Website = Address = Summary = ""; Theme = "Default"; experiences = new List <Experience>(); educations = new List <Education>(); DocumentName = "(Untitled)"; Complete = false; }
public async Task HandleCommandAsync(SocketMessage msg) { if (!(msg is SocketUserMessage message) || message.Author.IsBot) { return; } if (message.Channel.GetType() != typeof(SocketTextChannel)) { return; } Server server = await DatabaseQueries.GetOrCreateServerAsync(((SocketGuildChannel)message.Channel).Guild.Id); User user = await DatabaseQueries.GetOrCreateUserAsync(message.Author.Id); // Never blacklist the bot owner. if (user.IsBlacklisted && user.UserId != ConfigProperties.BotConfig.BotOwnerId) { return; } if (server.IsBlacklisted) { return; } var context = new ShardedCommandContext(_client, message); if (await IsFilteredPhrase(context, server, message)) { return; // If filtered phrase (and user isn't admin), return. } await ExperienceHandler.TryAddExp(user, server, context); await ServerSpecificExperienceHandler.TryAddExp(user, server, context); // If the channel is blacklisted and the user isn't an Admin, return. if (server.BlackListedChannels.Any(x => x.ChannelId == context.Channel.Id) && !context.Guild.GetUser(context.User.Id).GuildPermissions.Administrator) { return; } // Parsing of osu! beatmaps. if (server.OsuLinkParsingEnabled) { if (Regex.IsMatch(msg.Content, @"http[Ss|\s]://osu.ppy.sh/beatmapsets/[0-9]*#\b(?:osu|taiko|mania|fruits)\b/[0-9]*") || Regex.IsMatch(msg.Content, @"http[Ss|\s]://osu.ppy.sh/b/[0-9]*")) { await AutomaticBeatmapLinkParserService.LinkParserMethod(msg, context); } } int argPos = 0; if (!(message.HasStringPrefix(server.CommandPrefix, ref argPos) || message.HasMentionPrefix(_client.CurrentUser, ref argPos)) || message.Author.IsBot) { return; } await Commands.ExecuteAsync(context, argPos, _services); }