private static void RemoveFromPlaylist(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || Instance.MusicController == null || !Instance.CheckUserRights(Session, true)) { return; } Item TakenItem = Instance.MusicController.RemoveDisk(Message.PopWiredInt32()); // playlist will skip to the next item automatically if it has to if (TakenItem == null) { return; } Session.InventoryCache.Add(TakenItem); using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { TakenItem.MoveToUserInventory(MySqlClient, Session.CharacterId); } Session.SendData(InventoryItemAddedComposer.Compose(TakenItem)); Session.SendData(JukeboxDisksComposer.Compose(Session)); Session.SendData(JukeboxPlaylistComposer.Compose(Instance.MusicController.PlaylistCapacity, Instance.MusicController.Playlist.Values.ToList())); }
private static void AddToPlaylist(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || !Instance.CheckUserRights(Session, true) || Instance.MusicController == null || Instance.MusicController.PlaylistSize >= Instance.MusicController.PlaylistCapacity) { return; } Item DiskItem = Session.InventoryCache.GetItem(Message.PopWiredUInt32()); if (DiskItem == null || DiskItem.Definition.Behavior != ItemBehavior.MusicDisk) { return; } int NewOrder = Instance.MusicController.AddDisk(DiskItem); if (NewOrder < 0) { return; } Session.InventoryCache.RemoveItem(DiskItem.Id); using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { DiskItem.MoveToSoundManager(MySqlClient, Instance.MusicController.LinkedItemId, NewOrder); } Session.SendData(InventoryItemRemovedComposer.Compose(DiskItem.Id)); Session.SendData(JukeboxPlaylistComposer.Compose(Instance.MusicController.PlaylistCapacity, Instance.MusicController.Playlist.Values.ToList())); }
private static void GetPlaylist(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || !Instance.CheckUserRights(Session, true)) { return; } Session.SendData(JukeboxPlaylistComposer.Compose(Instance.MusicController.PlaylistCapacity, Instance.MusicController.Playlist.Values.ToList())); }