using System; using System.Collections.Generic; using System.Linq; using System.Text; using Chop.Game.Messages.IDs; using Chop.Rooms; namespace Chop.Game.Messages.Incoming.room.engine { internal class GetRoomEntryDataMessageComposer : IMessageHandler { public void Handle(GameClient client, RequestParser parser) { NavigatorRoom room = Core.NavigatorManager.GetRoom(client.mRoomUser.mEnteringRoomID); if (room == null) return; ResponseBuilder message = new ResponseBuilder(OutgoingMessages.RoomEntryInfoMessageEvent); message.AppendBoolean(!room.IsPublic); // privateRoom if (room.IsPublic) { // unitPropertySet [string] // worldId [int] message.AppendString(room.mModel); message.AppendInt32(0); } else { message.AppendInt32(room.mID); // guestRoomId message.AppendBoolean(room.mOwnerID == client.mHabbo.mID); // owner } client.SendMessage(message); string items = Core.RoomTemplateManager.GetTemplate(room.mModel).Publicroom_items; message = new ResponseBuilder(OutgoingMessages.PublicRoomObjectsMessageEvent); //if (string.IsNullOrEmpty(items)) message.AppendInt32(0); //else //{ // string[] publicItems = items.Split('\r'); // foreach (string publicItem in publicItems) // { // string[] itemProperties = publicItem.Split(' '); // // unk1 [int/bool] (flag for furnis using multiple squares?) // // name [string] // // type [string] // // x [int] // // y [int] // // z [int] // // dir [int] // // OR (depends on unk1 flag) // // sizeX [int] // // sizeY [int] // } //} client.SendMessage(message); } } }