public void Handle(GameClient session, ClientMessage message)
        {
            Room room = session.GetHabbo().GetRoomSession().GetRoom();

            if (room != null && room.HaveOwnerRights(session))
            {
                if (room.RoomItemManager.Jukebox != null && room.RoomItemManager.Jukebox.Playlist.Count < room.RoomItemManager.Jukebox.PlaylistCapacity)
                {
                    MusicDisc disc = room.RoomItemManager.Jukebox.RemoveDisc(message.PopWiredInt32());
                    if (disc != null)
                    {
                        session.GetHabbo().GetInventoryManager().AddItem(disc.ItemId, disc.BaseItem, disc.SongID.ToString(), true);

                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.JukeboxPlaylist);
                        message_.AppendInt32(room.RoomItemManager.Jukebox.PlaylistCapacity);
                        message_.AppendInt32(room.RoomItemManager.Jukebox.Playlist.Count);
                        foreach (MusicDisc disc_ in room.RoomItemManager.Jukebox.Playlist)
                        {
                            message_.AppendUInt(disc_.ItemId);
                            message_.AppendInt32(disc_.SongID);
                        }
                        session.SendMessage(message_);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public ServerMessage GetSongData()
        {
            ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);

            message.Init(r63aOutgoing.SongPlaying);
            if (!this.IsPlaying)
            {
                message.AppendInt32(-1);
                message.AppendInt32(-1);
                message.AppendInt32(-1);
                message.AppendInt32(-1);
                message.AppendInt32(-1);
            }
            else
            {
                MusicDisc disc = this.GetCurrentSong();

                message.AppendInt32(disc.SongID);
                message.AppendInt32(this.SongQueuePosition);
                message.AppendInt32(disc.SongID);
                message.AppendInt32(0);
                message.AppendInt32((int)this.TimePlaying * 1000);
            }
            return(message);
        }
Ejemplo n.º 3
0
        public MusicDisc RemoveDisc(int playlistIndex)
        {
            if (this.Playlist.Count > playlistIndex)
            {
                MusicDisc disc = this.Playlist[playlistIndex];
                this.Playlist.RemoveAt(playlistIndex);
                this.Room.RoomItemManager.ItemDataChanged.AddOrUpdate(this.ID, this, (key, oldValue) => this);

                if (this.SongQueuePosition == playlistIndex)
                {
                    this.NextSong();
                }
                return(disc);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 4
0
 public void AddDisc(MusicDisc disc)
 {
     this.Playlist.Add(disc);
     this.Room.RoomItemManager.ItemDataChanged.AddOrUpdate(this.ID, this, (key, oldValue) => this);
 }