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_); } } } }
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); }
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); } }
public void AddDisc(MusicDisc disc) { this.Playlist.Add(disc); this.Room.RoomItemManager.ItemDataChanged.AddOrUpdate(this.ID, this, (key, oldValue) => this); }