using System; using System.Collections.Generic; using System.Linq; using System.Text; using Chop.Game.Messages.IDs; using Chop.Game.Rooms; namespace Chop.Game.Messages.Incoming.navigator { class GetOfficialRoomsMessageComposer: IMessageHandler { public void Handle(GameClient client, RequestParser parser) { List rooms = Core.NavigatorManager.GetOfficialRooms(); ResponseBuilder message = new ResponseBuilder(OutgoingMessages.OfficialRoomsEvent); message.AppendInt32(rooms.Count); // entryLength foreach (OfficialRoom room in rooms) { if(room._folderID != 0) // We don't deal with childs here! continue; room.AddToPacket(message); if (room._type == OfficialRoom.TYPE_CATEGORY) { foreach (OfficialRoom child in rooms) { if (child._folderID != room._index) continue; child.AddToPacket(message); } } } message.AppendInt32(0); // adRoom client.SendMessage(message); } } }