コード例 #1
0
ファイル: SongManager.cs プロジェクト: nightwolf93/Bfly
        private static void AddToPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null || !Instance.CheckRights(Session, true) || !Instance.GotMusicController() ||
                Instance.GetRoomMusicController().PlaylistSize >= Instance.GetRoomMusicController().PlaylistCapacity)
            {
                return;
            }

            UserItem DiskUserItem = Session.GetHabbo().GetInventoryComponent().GetItem(Message.PopWiredUInt());

            if (DiskUserItem == null || DiskUserItem.GetBaseItem().InteractionType != InteractionType.musicdisc)
            {
                return;
            }

            SongItem item = new SongItem(DiskUserItem);

            int NewOrder = Instance.GetRoomMusicController().AddDisk(item);

            if (NewOrder < 0)
            {
                return;
            }

            Session.GetHabbo().GetInventoryComponent().RemoveItem(item.itemID, true);

            Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
                                                        Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
コード例 #2
0
ファイル: SoundMachine.cs プロジェクト: BjkGkh/R106
        internal void AddPlaylistItem()
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentRoom == null)
                return;

            Room currentRoom = Session.GetHabbo().CurrentRoom;

            if (!currentRoom.CheckRights(Session, true))
                return;

            RoomMusicController musicController = currentRoom.GetRoomMusicController();


            if (musicController.PlaylistSize >= musicController.PlaylistCapacity)
                return;

            uint itemID = Request.ReadUInt();
            UserItem item = Session.GetHabboDataContainer().GetInventoryComponent().GetItem(itemID);
            if (item == null || item.GetBaseItem().InteractionType != InteractionType.musicdisc)
                return;

            //RoomItem roomItem = new RoomItem(item.Id, currentRoom.RoomId, item.BaseItem, item.ExtraData, 0, 0, 0, 0, currentRoom);
            SongItem sitem = new SongItem(item);

            int NewOrder = musicController.AddDisk(sitem);
            if (NewOrder < 0)
            {
                return;
            }
            sitem.SaveToDatabase(currentRoom.RoomId);
            Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(itemID, true);
            //Session.SendMessage(JukeboxComposer.Compose(musicController.PlaylistCapacity, musicController.Playlist.Values.ToList()));
        }
コード例 #3
0
ファイル: SongManager.cs プロジェクト: nightwolf93/Bfly
        private static void RemoveFromPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null || !Instance.GotMusicController() || !Instance.CheckRights(Session, true))
            {
                return;
            }

            SongItem TakenItem = Instance.GetRoomMusicController().RemoveDisk(Message.PopWiredInt32());

            // playlist will skip to the next item automatically if it has to

            if (TakenItem == null)
            {
                return;
            }

            Session.GetHabbo().GetInventoryComponent().AddNewItem(TakenItem.itemID, TakenItem.baseItem.ItemId, TakenItem.songID.ToString(), true, true);


            Session.SendMessage(JukeboxComposer.Compose(Session));
            Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
                                                        Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
コード例 #4
0
        public int AddDisk(SongItem DiskItem)
        {
            uint SongId = (uint)DiskItem.songID;


            if (SongId == 0)
            {
                return(-1);
            }

            SongData SongData = SongManager.GetSong(SongId);

            if (SongData == null)
            {
                return(-1);
            }

            if (mLoadedDisks.ContainsKey(DiskItem.itemID))
            {
                return(-1);
            }

            mLoadedDisks.Add(DiskItem.itemID, DiskItem);

            int NewPlaylistId = mPlaylist.Count;

            lock (mPlaylist)
            {
                mPlaylist.Add(NewPlaylistId, new SongInstance(DiskItem, SongData));
            }

            return(NewPlaylistId);
        }
コード例 #5
0
ファイル: SongInstance.cs プロジェクト: BjkGkh/R106
 public SongInstance(SongItem Item, SongData SongData)
 {
     mDiskItem = Item;
     mSongData = SongData;
 }
コード例 #6
0
ファイル: RoomMusicController.cs プロジェクト: habb0/Bfly
        public int AddDisk(SongItem DiskItem)
        {
            uint SongId = (uint)DiskItem.songID;

            if (SongId == 0)
            {
                return -1;
            }

            SongData SongData = SongManager.GetSong(SongId);

            if (SongData == null)
            {
                return -1;
            }

            if (mLoadedDisks.ContainsKey(DiskItem.itemID))
                return -1;

            mLoadedDisks.Add(DiskItem.itemID, DiskItem);

            int NewPlaylistId = mPlaylist.Count;

            lock (mPlaylist)
            {
                mPlaylist.Add(NewPlaylistId, new SongInstance(DiskItem, SongData));
            }

            return NewPlaylistId;
        }
コード例 #7
0
ファイル: Room.cs プロジェクト: habb0/Bfly
        internal void LoadMusic()
        {
            DataTable dTable;
            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT items_rooms_songs.songid,items.* FROM items_rooms_songs LEFT JOIN items ON items.item_id = items_rooms_songs.itemid WHERE items_rooms_songs.roomid = " + this.RoomId);
                dTable = dbClient.getTable();
            }

            int songID;
            uint itemID;
            int baseID;

            foreach (DataRow dRow in dTable.Rows)
            {
                songID = (int)dRow[0];
                itemID = Convert.ToUInt32(dRow[1]);
                baseID = Convert.ToInt32(dRow[2]);

                SongItem item = new SongItem(itemID, songID, baseID);
                GetRoomMusicController().AddDisk(item);
            }
        }
コード例 #8
0
ファイル: SongManager.cs プロジェクト: BjkGkh/R106
        private static void AddToPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null || !Instance.CheckRights(Session, true) || !Instance.GotMusicController() ||
                Instance.GetRoomMusicController().PlaylistSize >= Instance.GetRoomMusicController().PlaylistCapacity)
            {
                return;
            }

            UserItem DiskUserItem = Session.GetHabboDataContainer().GetInventoryComponent().GetItem(Message.ReadUInt());

            if (DiskUserItem == null || DiskUserItem.GetBaseItem().InteractionType != InteractionType.musicdisc)
            {
                return;
            }

            SongItem item = new SongItem(DiskUserItem);

            int NewOrder = Instance.GetRoomMusicController().AddDisk(item);

            if (NewOrder < 0)
            {
                return;
            }

            Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(item.itemID, true);

            //Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
            //    Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
コード例 #9
0
ファイル: SongInstance.cs プロジェクト: nightwolf93/Bfly
 public SongInstance(SongItem Item, SongData SongData)
 {
     mDiskItem = Item;
     mSongData = SongData;
 }