public void Handle(GameClient Session, ClientMessage Event)
 {
     if (((Session != null) && (Session.GetHabbo() != null)) && (Session.GetHabbo().CurrentRoom != null))
     {
         Room currentRoom = Session.GetHabbo().CurrentRoom;
         if (currentRoom.CheckRights(Session, true))
         {
             RoomMusicController roomMusicController = currentRoom.GetRoomMusicController();
             if (roomMusicController.PlaylistSize < roomMusicController.PlaylistCapacity)
             {
                 int num = Event.PopWiredInt32();
                 UserItem item = Session.GetHabbo().method_23().method_10((uint)num);
                 if ((item != null) && (item.method_1().InteractionType == "musicdisc"))
                 {
                     SongItem diskItem = new SongItem(item);
                     if (roomMusicController.AddDisk(diskItem) >= 0)
                     {
                         //diskItem.SaveToDatabase((int)currentRoom.Id); // <-- old
                         diskItem.SaveToDatabase((int)roomMusicController.LinkedItemId); // <-- new
                         Session.GetHabbo().method_23().method_12((uint)num, 0u, true);
                         Session.GetHabbo().method_23().method_9(true);
                         Session.SendMessage(JukeboxDiscksComposer.Compose(roomMusicController.PlaylistCapacity, roomMusicController.Playlist.Values.ToList<SongInstance>()));
                     }
                 }
             }
         }
     }
 }
 public SongInstance(SongItem Item, SongData SongData)
 {
     this.mDiskItem = Item;
     this.mSongData = SongData;
 }
 public int AddDisk(SongItem DiskItem)
 {
     int songID = DiskItem.songID;
     if (songID == 0)
     {
         return -1;
     }
     SongData song = SongManager.GetSong(songID);
     if (song == null)
     {
         return -1;
     }
     if (this.mLoadedDisks.ContainsKey(DiskItem.itemID))
     {
         return -1;
     }
     this.mLoadedDisks.Add(DiskItem.itemID, DiskItem);
     int count = this.mPlaylist.Count;
     lock (this.mPlaylist)
     {
         this.mPlaylist.Add(count, new SongInstance(DiskItem, song));
     }
     return count;
 }
 internal void LoadMusic()
 {
     DataTable table;
     using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
     {
         table = @class.ReadDataTable("SELECT * FROM items_rooms_songs WHERE roomid = '" + uint_0 + "'");
     }
     foreach (DataRow row in table.Rows)
     {
         int songID = (int)row["songid"];
         uint num2 = (uint)row["itemid"];
         int baseItem = (int)row["baseitem"];
         SongItem diskItem = new SongItem((int)num2, songID, baseItem);
         this.GetRoomMusicController().AddDisk(diskItem);
     }
 }
        internal void LoadMusic()
        {
            DataTable table;
            DataTable table2;
            using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
            {
                table = @class.ReadDataTable("SELECT * FROM items_rooms_songs WHERE roomid = '" + uint_0 + "'"); // <-- old
                table2 = @class.ReadDataTable("SELECT * FROM items_jukebox_songs WHERE jukeboxid = '" + this.GetRoomMusicController().LinkedItemId + "'"); // <-- new
            }

            foreach (DataRow row in table.Rows)
            {
                int songID = (int)row["songid"];
                uint num2 = (uint)row["itemid"];
                int baseItem = (int)row["baseitem"];
                SongItem diskItem = new SongItem((int)num2, songID, baseItem);
                diskItem.RemoveFromDatabase();
                diskItem.SaveToDatabase(this.GetRoomMusicController().LinkedItemId);
                this.GetRoomMusicController().AddDisk(diskItem);
            }

            foreach (DataRow row in table2.Rows)
            {
                int songID = (int)row["songid"];
                uint num2 = (uint)row["itemid"];
                int baseItem = (int)row["baseitem"];
                SongItem diskItem = new SongItem((int)num2, songID, baseItem);
                this.GetRoomMusicController().AddDisk(diskItem);
            }
        }