using System; using System.Collections.Generic; using System.Linq; using System.Text; using Blizzard.HabboHotel.Users; namespace Blizzard.HabboHotel.Music { class JukeBox { internal Habbo User; internal JukeBox(Habbo cUser) { User = cUser; } internal void PlayPreviewFromCatalog() { AnalyzeMessages Mess = new AnalyzeMessages(); string Cleaned = User.ActualPacket.Substring(2); Cleaned = Cleaned.Replace(Convert.ToChar("2").ToString(), ""); string[] AnalyzeMessag = Mess.SepareOnVL64Vars(Cleaned); int PreviewId = HabboEncode.decodeVL64(AnalyzeMessag[1]); ServerMessage Music = new ServerMessage("Dl"); Music.AddBoolean(true); // Can? Music.AddInt(PreviewId); SoundTrackData S = SoundTrackData.GetSoundTrack(PreviewId); if (S == null) { User.SendAlert("Esta canción (ID: " + PreviewId + ") no se encuentra en nuestro listado, prueba más tarde...", 2); return; } Music.AddStringWithBreak(S.Title); Music.AddStringWithBreak(S.SoundTrack); Music.AddInt(S.CreatorId); Music.AddStringWithBreak(S.CreatorName); User.SendMessage(Music); } internal void ShowMyDisk() { List U = UserItemsData.GetItemsForUser(User.Id); List JukeCD = new List(); foreach (UserItemsData u in U) { if (u.FurniId == 1007) JukeCD.Add(u); else continue; } AnalyzeMessages Mess = new AnalyzeMessages(); string Cleaned = User.ActualPacket.Substring(2, User.ActualPacket.Length - 3); int JukeId = HabboEncode.decodeVL64(Cleaned); RoomItem rI = RoomItem.RegisteredItems[JukeId]; int Max = 10; if (rI.FurniId == 2626) Max = 20; ServerMessage Init = new ServerMessage("EM"); Init.AddInt(JukeCD.Count); Init.AddInt(JukeId); foreach (UserItemsData u in JukeCD) { Init.AddInt(u.Id); } User.SendMessage(Init); ServerMessage Limiter = new ServerMessage("EN"); Limiter.AddInt(Max); Limiter.AddInt(0); // Songs on jukebox User.SendMessage(Limiter); ServerMessage MyCD = new ServerMessage("Dl"); MyCD.AddInt(JukeCD.Count); foreach (UserItemsData u in JukeCD) { MyCD.AddInt(u.Id); SoundTrackData S = SoundTrackData.GetSoundTrack(int.Parse(u.ExtraData)); if (S == null) { User.SendAlert("Esta canción (ID: " + int.Parse(u.ExtraData) + ") no se encuentra en nuestro listado, prueba más tarde...", 2); return; } MyCD.AddStringWithBreak(S.Title); MyCD.AddStringWithBreak(S.SoundTrack); MyCD.AddInt(S.CreatorId); MyCD.AddStringWithBreak(S.CreatorName); } User.SendMessage(MyCD); } } }