Пример #1
0
 public static void AddSongToPlaylist(Playlist playlist, PlaylistSong song)
 {
     playlist.songs.Add(song);
     if (playlist.playlistTitle == "Your favorite songs")
     {
         playlist.SavePlaylist();
     }
 }
 public static void AddSongToPlaylist(Playlist playlist, PlaylistSong song)
 {
     playlist.songs.Add(song);
     if (playlist.playlistTitle == "Your favorite songs")
     {
         playlist.SavePlaylist();
     }
     (SongLoader.CustomBeatmapLevelPackCollectionSO.beatmapLevelPacks.FirstOrDefault(x => x is PlaylistLevelPackSO && (x as PlaylistLevelPackSO).playlist == playlist) as PlaylistLevelPackSO)?.UpdateDataFromPlaylist();
 }
Пример #3
0
 public static void RemoveLevelFromPlaylist(Playlist playlist, string levelId)
 {
     if (playlist.songs.Where(y => y.level != null).Any(x => x.level.levelID == levelId))
     {
         PlaylistSong song = playlist.songs.First(x => x.level != null && x.level.levelID == levelId);
         song.level   = null;
         song.levelId = "";
     }
     if (playlist.playlistTitle == "Your favorite songs")
     {
         playlist.SavePlaylist();
     }
 }
        public static void RemoveLevelFromPlaylist(Playlist playlist, string levelId)
        {
            if (playlist.songs.Any(x => x.levelId == levelId || (x.level != null && x.level.levelID == levelId)))
            {
                PlaylistSong song = playlist.songs.First(x => x.levelId == levelId || (x.level != null && x.level.levelID == levelId));
                song.level = null;
                playlist.songs.Remove(song);
            }
            if (playlist.playlistTitle == "Your favorite songs")
            {
                playlist.SavePlaylist();
            }

            (SongLoader.CustomBeatmapLevelPackCollectionSO.beatmapLevelPacks.FirstOrDefault(x => x is PlaylistLevelPackSO && (x as PlaylistLevelPackSO).playlist == playlist) as PlaylistLevelPackSO)?.UpdateDataFromPlaylist();
        }
        public static void RemoveLevelFromPlaylists(string levelId)
        {
            foreach (Playlist playlist in loadedPlaylists)
            {
                if (playlist.songs.Where(y => y.level != null).Any(x => x.level.levelID == levelId))
                {
                    PlaylistSong song = playlist.songs.First(x => x.level != null && x.level.levelID == levelId);
                    song.level   = null;
                    song.levelId = "";
                }
                if (playlist.playlistTitle == "Your favorite songs")
                {
                    playlist.SavePlaylist();
                }
            }

            foreach (var pack in SongLoader.CustomBeatmapLevelPackCollectionSO.beatmapLevelPacks)
            {
                if (pack is PlaylistLevelPackSO)
                {
                    (pack as PlaylistLevelPackSO).UpdateDataFromPlaylist();
                }
            }
        }
        public Playlist(JSONNode playlistNode)
        {
            string image = playlistNode["image"].Value;

            if (!string.IsNullOrEmpty(image))
            {
                try
                {
                    icon = Sprites.Base64ToSprite(image.Substring(image.IndexOf(",") + 1));
                }
                catch
                {
                    Plugin.log.Critical("Unable to convert playlist image to sprite!");
                    icon = Sprites.BeastSaberLogo;
                }
            }
            else
            {
                icon = Sprites.BeastSaberLogo;
            }
            playlistTitle    = playlistNode["playlistTitle"];
            playlistAuthor   = playlistNode["playlistAuthor"];
            customDetailUrl  = playlistNode["customDetailUrl"];
            customArchiveUrl = playlistNode["customArchiveUrl"];
            if (!string.IsNullOrEmpty(customDetailUrl))
            {
                if (!customDetailUrl.EndsWith("/"))
                {
                    customDetailUrl += "/";
                }
                Plugin.log.Info("Found playlist with customDetailUrl! Name: " + playlistTitle + ", CustomDetailUrl: " + customDetailUrl);
            }
            if (!string.IsNullOrEmpty(customArchiveUrl) && customArchiveUrl.Contains("[KEY]"))
            {
                Plugin.log.Info("Found playlist with customArchiveUrl! Name: " + playlistTitle + ", CustomArchiveUrl: " + customArchiveUrl);
            }

            songs = new List <PlaylistSong>();

            foreach (JSONNode node in playlistNode["songs"].AsArray)
            {
                PlaylistSong song = new PlaylistSong();
                song.key      = node["key"];
                song.songName = node["songName"];
                song.hash     = node["hash"];
                song.levelId  = node["levelId"];

                songs.Add(song);
            }

            if (playlistNode["playlistSongCount"] != null)
            {
                playlistSongCount = playlistNode["playlistSongCount"].AsInt;
            }
            else
            {
                playlistSongCount = songs.Count;
            }
            if (playlistNode["fileLoc"] != null)
            {
                fileLoc = playlistNode["fileLoc"];
            }

            if (playlistNode["playlistURL"] != null)
            {
                fileLoc = playlistNode["playlistURL"];
            }
        }