예제 #1
0
        public async Task Command(int trackNum)
        {
            User user = await DatabaseQueries.GetOrCreateUserAsync(Context.User.Id);

            List <FavoriteTrack> userFavorites = await DatabaseQueries.GetAllForUserAsync <FavoriteTrack>(user.UserId);

            if (!userFavorites.Any())
            {
                await SendBasicErrorEmbedAsync("You have not favorited any tracks. Use the `h favorite` and " +
                                               "`h favls` commands for more information on how to use this system.");

                return;
            }

            int           trackIndex = trackNum - 1;
            FavoriteTrack trackMatch;

            try
            {
                trackMatch = userFavorites[trackIndex];
            }
            catch (Exception)
            {
                await SendBasicErrorEmbedAsync($"The track number you provided doesn't match a track in " +
                                               $"your playlist.");

                return;
            }

            var s = new Search();
            await s.SearchAndPlayAsync(Context, trackMatch.TrackId, true);
        }
예제 #2
0
        public async Task Command([Remainder] string query)
        {
            Server server = await DatabaseQueries.GetOrCreateServerAsync(Context.Guild.Id);

            User user = await DatabaseQueries.GetOrCreateUserAsync(Context.User.Id);

            if (server.IsPremium || user.IsPremium)
            {
                var playInstance          = new Search();
                ReactionCallbackData?data = await playInstance.SearchAndPlayAsync(Context, query, false, SearchProvider.SOUNDCLOUD);

                if (data != null)
                {
                    await InlineReactionReplyAsync(data);
                }
            }
            else
            {
                throw new KaguyaSupportException($"This feature is restricted to `Kaguya Premium Subscribers` and " +
                                                 $"servers with `Kaguya Premium` status.");
            }
        }
예제 #3
0
파일: Play.cs 프로젝트: kaguyabot/Kaguya
 public async Task Command([Remainder] string query)
 {
     var s = new Search();
     await s.SearchAndPlayAsync(Context, query, true);
 }