Example #1
0
        public async Task CountAss()
        {
            LmaoBotUser userSettings = await Database.GetUserSettings().GetUserSettings((long)Context.User.Id);

            if (userSettings.Settings.LmaoCount == 0)
            {
                await ReplyAsync(Context.User.Mention + " You have yet to laugh your ass off");
            }
            else if (userSettings.Settings.LmaoCount == 1)
            {
                await ReplyAsync(Context.User.Mention + " You have laughed your ass off " + userSettings.Settings.LmaoCount + " time");
            }
            else
            {
                await ReplyAsync(Context.User.Mention + " You have laughed your ass off " + userSettings.Settings.LmaoCount + " times");
            }
        }
        /// <summary>
        /// Get the bot settings of the specified user
        /// </summary>
        /// <param name="userID">the ID of the user to get</param>
        /// <returns>The UserSettings model of the user</returns>
        public async Task <LmaoBotUser> GetUserSettings(long userID)
        {
            var filter = Builders <LmaoBotUser> .Filter.Eq("UserID", userID);

            if (await Collection.CountDocumentsAsync(filter) == 1)
            {
                LmaoBotUser settings = await Collection.Find(filter).FirstAsync();

                return(settings);
            }
            else
            {
                await CreateUserSettings(userID);

                LmaoBotUser user = await Collection.Find(filter).FirstAsync();

                return(user);
            }
        }
        public async Task AddReminder(Reminder reminder, long userID)
        {
            LmaoBotUser user = await GetUserSettings(userID);

            var filter = Builders <LmaoBotUser> .Filter.Eq("UserID", userID);

            //A one-time fix for legacy users who didn't have their reminder object initialized properly.
            if (user.Reminders == null)
            {
                List <Reminder> reminders = new List <Reminder>();
                reminders.Add(reminder);
                var update = Builders <LmaoBotUser> .Update.Set(settings => settings.Reminders, reminders);

                await Collection.FindOneAndUpdateAsync(filter, update);
            }
            else
            {
                var update = Builders <LmaoBotUser> .Update.Push <Reminder>(f => f.Reminders, reminder);

                await Collection.FindOneAndUpdateAsync(filter, update);
            }
        }