public void Handle(GameClient Session, ClientMessage Event)
		{
			uint uint_ = Event.PopWiredUInt();
			bool bool_ = Event.PopWiredBoolean();
			bool flag = Event.PopWiredBoolean();

            if (uint_ == Session.GetHabbo().CurrentRoomId)
            {
                return;
            }
           
            RoomData @class = Essential.GetGame().GetRoomManager().method_12(uint_);
			if (@class != null)
			{
                ServerMessage Message = new ServerMessage(Outgoing.GetGuestRoomResult); // Updated
                Message.AppendBoolean(false);
                Message.AppendUInt(@class.Id);
                Message.AppendBoolean(false);
                Message.AppendString(@class.Name);
                Message.AppendBoolean(true);
                Message.AppendInt32(@class.OwnerId);
                Message.AppendStringWithBreak(@class.Owner);
                Message.AppendInt32(@class.State); // @class state
                Message.AppendInt32(@class.UsersNow);
                Message.AppendInt32(@class.UsersMax);
                Message.AppendStringWithBreak(@class.Description);
                Message.AppendInt32(0); // dunno!
                Message.AppendInt32((@class.Category == 9) ? 2 : 0); // can trade!
                Message.AppendInt32(@class.Score);
                Message.AppendInt32(@class.Category);
                Message.AppendInt32(0);
                Message.AppendInt32(0);
                Message.AppendStringWithBreak("");
                Message.AppendInt32(@class.TagCount);

                foreach (string Tag in @class.Tags)
                {
                    Message.AppendStringWithBreak(Tag);
                }
                Message.AppendInt32(0);
                Message.AppendInt32(0);
                Message.AppendInt32(0);
                Message.AppendBoolean(true);
                Message.AppendBoolean(false);
                Message.AppendBoolean(true);
                Message.AppendString("");
                Message.AppendBoolean(false);
				Session.SendMessage(Message);
          
                Session.GetClientMessageHandler().method_5(@class.Id, "");

			}
		}
		public void Handle(GameClient Session, ClientMessage Event)
		{
			Room @class = Essential.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
			if (@class != null && @class.method_26(Session))
			{
				string string_ = Event.PopFixedString();
                bool canletin = Event.PopWiredBoolean();
				GameClient class2 = Essential.GetGame().GetClientManager().GetClientByHabbo(string_);
				if (class2 != null && class2.GetHabbo() != null && class2.GetHabbo().bool_6 && class2.GetHabbo().uint_2 == Session.GetHabbo().CurrentRoomId)
				{
					if (canletin)
					{
						class2.GetHabbo().bool_5 = true;
                        ServerMessage Message4 = new ServerMessage(Outgoing.FlatAccessible); // Updated
                        Message4.AppendString("");
                        class2.SendMessage(Message4);
					}
					else
					{
                        ServerMessage Message5 = new ServerMessage(Outgoing.DoorBellNoPerson); // Updated
                        Message5.AppendString("");
                        class2.SendMessage(Message5);
					}
				}
			}
		}
        public void Handle(GameClient Session, ClientMessage Event)
        {
            bool accept = Event.PopWiredBoolean();
            if (!accept)
            {

                Essential.GetGame().GetGuideManager().GetTicket(Session.GetHabbo().Id).SendToTicket(Essential.GetGame().GetGuideManager().DetachedMessage);
                Essential.GetGame().GetGuideManager().RemoveTicket(Session.GetHabbo().Id);
                Essential.GetGame().GetGuideManager().GetGuideById(Session.GetHabbo().Id).IsInUse = false;
                return;
            }
            ServerMessage Message = new ServerMessage(Outgoing.GuideSessionStarted); //Rootkit
            Essential.GetGame().GetGuideManager().GetTicket(Session.GetHabbo().Id).Serialize(Message);
            Essential.GetGame().GetGuideManager().GetTicket(Session.GetHabbo().Id).Answered = true;
            Essential.GetGame().GetGuideManager().GetTicket(Session.GetHabbo().Id).SendToTicket(Message);
        }
		public void Handle(GameClient Session, ClientMessage Event)
		{
            try
            {
                int pageId = Event.PopWiredInt32();
                uint itemId = Event.PopWiredUInt();
                string extraData = Event.PopFixedString();
                string giftUser = Essential.FilterString(Event.PopFixedString());
                string giftMessage = Essential.FilterString(Event.PopFixedString());
                int giftSpriteId = Event.PopWiredInt32();
                int giftLazo = Event.PopWiredInt32();
                int giftColor = Event.PopWiredInt32();
                bool undef = Event.PopWiredBoolean();
                Essential.GetGame().GetCatalog().HandlePurchase(Session, pageId, itemId, extraData, true, giftUser, giftMessage, true, 0, undef);
            }catch(Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            }
		public void Handle(GameClient Session, ClientMessage Event)
		{
			if (Session.GetHabbo().GetMessenger() != null)
			{
				bool AllRequestDecline = Event.PopWiredBoolean();
				int num2 = Event.PopWiredInt32();
                if (AllRequestDecline == false && num2 == 1)
				{
					uint uint_ = Event.PopWiredUInt();
					Session.GetHabbo().GetMessenger().method_11(uint_);
				}
				else
				{
                    if (AllRequestDecline == true)
					{
						Session.GetHabbo().GetMessenger().method_10();
					}
				}
			}
		}
        public void Handle(GameClient Session, ClientMessage Event)
        {
            int guildId = Event.PopWiredInt32();
            bool flag = Event.PopWiredBoolean();
            GroupsManager guild = Groups.GetGroupById(guildId);
           /* if (!guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                return;*/
            if (guild != null)
            {
                RoomData data = Essential.GetGame().GetRoomManager().method_11((uint)guild.RoomId);
                if (data != null)
                {
                    ServerMessage message;
                    if (!flag)
                    {
                        try
                        {
                            message = new ServerMessage(Outgoing.SendAdvGroupInit);
                            message.AppendInt32(guild.Id);
                            message.AppendBoolean(true);
                            message.AppendInt32(guild.Type);
                            message.AppendString(guild.Name);
                            message.AppendString(guild.Description);
                            message.AppendString(guild.Badge);
                            message.AppendInt32(data.Id);
                            message.AppendString(data.Name);
                            if (guild.Petitions.Contains((int)Session.GetHabbo().Id))
                                message.AppendInt32(2);
                            else if (!guild.HasMember(Session.GetHabbo().Id))
                                message.AppendInt32(0);
                            else if (guild.HasMember(Session.GetHabbo().Id))
                                message.AppendInt32(1);
                            message.AppendInt32(guild.Members.Count);
                            message.AppendBoolean(false);
                            message.AppendString(guild.Created);

                            message.AppendBoolean(guild.UserWithRanks.Contains((int)Session.GetHabbo().Id));//Session.GetHabbo().Id == guild.OwnerId);

                            if (Session.GetHabbo().InGuild(guild.Id))
                            {
                                if (guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                                    message.AppendBoolean(true);
                                else message.AppendBoolean(false);
                            }
                            else message.AppendBoolean(false);
                            message.AppendString(guild.OwnerName);
                            message.AppendBoolean(false);
                            message.AppendBoolean(false);
                            message.AppendInt32(guild.Petitions.Count);
                            Session.SendMessage(message);
                        }
                        catch { }
                    }
                    else
                    {
                        try
                        {
                            message = new ServerMessage(Outgoing.SendAdvGroupInit);
                            message.AppendInt32(guild.Id);
                            message.AppendBoolean(false);
                            message.AppendInt32(guild.Type);
                            message.AppendString(guild.Name);
                            message.AppendString(guild.Description);
                            message.AppendString(guild.Badge);
                            message.AppendInt32(data.Id);
                            message.AppendString(data.Name);
                            if (guild.Petitions.Contains((int)Session.GetHabbo().Id))
                                message.AppendInt32(2);
                            else if (!guild.HasMember(Session.GetHabbo().Id))
                                message.AppendInt32(0);
                            else if (guild.HasMember(Session.GetHabbo().Id))
                                message.AppendInt32(1);
                            message.AppendInt32(guild.Members.Count);
                            message.AppendBoolean(false);
                            message.AppendString(guild.Created);
                            message.AppendBoolean(Session.GetHabbo().Id == guild.OwnerId);
                            if (Session.GetHabbo().InGuild(guild.Id))
                            {
                                if (guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                                    message.AppendBoolean(true);
                                else message.AppendBoolean(false);
                            }
                            else message.AppendBoolean(false);
                            message.AppendString(guild.OwnerName);
                            message.AppendBoolean(true);
                            message.AppendBoolean(true);
                            message.AppendInt32(guild.Members.Contains((int)Session.GetHabbo().Id) ? guild.Petitions.Count : 0);
                            Session.SendMessage(message);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                    }
                }else
                    Console.WriteLine("Roomdata for room: " + guild.RoomId + " was null");

            }else if(guildId != 1)
                Console.WriteLine("Null group");
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            try
            {
                int num = Event.PopWiredInt32();
                bool flag = Event.PopWiredBoolean();
                DataRow habbo = null;
                DataRow userStats = null;
                DataTable userGroups = null;
                int Friends = 0;
                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                {
                    habbo = dbClient.ReadDataRow("SELECT * FROM users WHERE Id=" + num + " LIMIT 1");
                    userStats = dbClient.ReadDataRow("SELECT * FROM user_stats WHERE id=" + num + " LIMIT 1");
                    userGroups = dbClient.ReadDataTable("SELECT groupid FROM group_memberships WHERE userid=" + num);
                    Friends = dbClient.ReadInt32("SELECT COUNT(*) FROM messenger_friendships WHERE user_one_id=" + num);
                }

                if (habbo == null)
                {
                    Session.SendNotification("No Data found for User: "******"last_online"])));
                        List<GroupsManager> list = new List<GroupsManager>();
                        foreach(DataRow guild2 in userGroups.Rows)
                        {
                            if (!list.Contains(Groups.GetGroupById((int)guild2["groupid"])))
                                list.Add(Groups.GetGroupById((int)guild2["groupid"]));
                        }
                        ServerMessage Response = new ServerMessage(Outgoing.ProfileInformation);
                        Response.AppendUInt((uint)habbo["id"]);
                        Response.AppendString((string)habbo["username"]);
                        Response.AppendString((string)habbo["look"]);
                        Response.AppendString((string)habbo["motto"]);
                        Response.AppendString(UnixTimeStampToDateTime(double.Parse((string)habbo["account_created"])).ToShortDateString());
                        Response.AppendInt32((int)userStats["achievementScore"]);
                        Response.AppendInt32(Friends);
                        Response.AppendBoolean(num != Session.GetHabbo().Id);
                        Response.AppendBoolean(false);
                        Response.AppendBoolean(Essential.GetGame().GetClientManager().GetClient((uint)num) != null);
                        Response.AppendInt32(list.Count);
                        int idk = 0;
                        foreach (GroupsManager guild in list)
                        {
                            if (guild != null)
                            {
                                Response.AppendInt32(guild.Id);
                                Response.AppendString(guild.Name);
                                Response.AppendString(guild.Badge);
                                Response.AppendString(guild.ColorOne);
                                Response.AppendString(guild.ColorTwo);
                                Response.AppendBoolean((int)userStats["groupid"] == guild.Id);
                            }
                            else
                            {
                                Response.AppendInt32(idk);
                                Response.AppendString("Undefined");
                                Response.AppendString("");
                                Response.AppendString("bf2222");
                                Response.AppendString("bf2222");
                                Response.AppendBoolean(false);
                            }
                            idk++;
                        }
                        Response.AppendBoolean(false);
                        Response.AppendInt32((int)span.TotalSeconds);//(int)span.TotalSeconds);
                        Response.AppendBoolean(true);
                        Session.SendMessage(Response);
                    }
            }
            catch(Exception ex)
            {
               /* Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.ToString());
                Console.ForegroundColor = ConsoleColor.Gray;*/
            }
        }
		public void Handle(GameClient Session, ClientMessage Event)
		{
            Room room = Session.GetHabbo().CurrentRoom;
            RoomData roomData = room.RoomData;
            if ((room != null) && room.CheckRights(Session, true))
            {
                int num = Event.PopWiredInt32();
                string str = Essential.FilterString(Event.PopFixedString());
                string str2 = Essential.FilterString(Event.PopFixedString());
                int num2 = Event.PopWiredInt32();
                string str3 = Essential.FilterString(Event.PopFixedString());
                int num3 = Event.PopWiredInt32();
                int id = Event.PopWiredInt32();
                int num5 = Event.PopWiredInt32();
                List<string> tags = new List<string>();
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < num5; i++)
                {
                    if (i > 0)
                    {
                        builder.Append(",");
                    }
                    string item = Essential.FilterString(Event.PopFixedString().ToLower());
                    tags.Add(item);
                    builder.Append(item);
                }
                int num7 = Event.PopWiredInt32();
                bool k = Event.PopWiredBoolean();
                bool flag2 = Event.PopWiredBoolean();
                bool flag3 = Event.PopWiredBoolean();
                bool flag4 = Event.PopWiredBoolean();
                int num8 = Event.PopWiredInt32();
                int num9 = Event.PopWiredInt32();
                if ((num8 < -2) || (num8 > 1))
                {
                    num8 = 0;
                }
                if ((num9 < -2) || (num9 > 1))
                {
                    num9 = 0;
                }
                if (((str.Length >= 1) && ((num2 >= 0) && (num2 <= 2))) && ((num3 >= 10) && (num3 <= 500)))
                {
                    FlatCat flatCat = Essential.GetGame().GetNavigator().GetFlatCat(id);
                    if (flatCat != null)
                    {
                        if (flatCat.MinRank > Session.GetHabbo().Rank)
                        {
                            Session.SendNotification("Du hast nicht die dafür vorgegebene Rechte!");
                            id = 0;
                        }
                            room.AllowPet = k;
                            room.AllowPetsEating = flag2;
                            room.AllowWalkthrough = flag3;
                            room.Hidewall = flag4;
                            room.RoomData.AllowPet = k;
                            room.RoomData.AllowPetsEating = flag2;
                            room.RoomData.AllowWalkthrough = flag3;
                            room.RoomData.Hidewall = flag4;
                            room.Name = str;
                            room.State = num2;
                            room.Description = str2;
                            room.Category = id;
                            room.Password = str3;
                            room.RoomData.Name = str;
                            room.RoomData.State = num2;
                            room.RoomData.Description = str2;
                            room.RoomData.Category = id;
                            room.RoomData.Password = str3;
                            room.Tags.Clear();
                            room.Tags.AddRange(tags);
                            room.UsersMax = num3;
                            room.RoomData.Tags.Clear();
                            room.RoomData.Tags.AddRange(tags);
                            room.RoomData.UsersMax = num3;
                            room.Wallthick = num8;
                            room.Floorthick = num9;
                            room.RoomData.Wallthick = num8;
                            room.RoomData.Floorthick = num9;
                            string str5 = "open";
                            if (room.State == 1)
                            {
                                str5 = "locked";
                            }
                            else if (room.State > 1)
                            {
                                str5 = "password";
                            }
                            using (DatabaseClient adapter = Essential.GetDatabase().GetClient())
                            {
                                adapter.AddParamWithValue("caption", room.Name);
                                adapter.AddParamWithValue("description", room.Description);
                                adapter.AddParamWithValue("password", room.Password);
                                adapter.AddParamWithValue("tags", builder.ToString());
                                adapter.ExecuteQuery(string.Concat(new object[] { 
                                    "UPDATE rooms SET caption = @caption, description = @description, password = @password, category = '", id, "', state = '", str5, "', tags = @tags, users_max = '", num3, "', allow_pets = '", (k ? 1 : 0), "', allow_pets_eat = '", (flag2 ? 1 : 0), "', allow_walkthrough = '", (flag3 ? 1 : 0), "', allow_hidewall = '", (room.Hidewall ? 1 : 0), "', floorthick = '", room.Floorthick, 
                                    "', wallthick = '", room.Wallthick, "' WHERE id = ", room.Id
                                 }));
                            }

                            ServerMessage UpdateRoomOne = new ServerMessage(Outgoing.UpdateRoomOne);
                            UpdateRoomOne.AppendInt32(room.Id);
                            Session.SendMessage(UpdateRoomOne);

                            ServerMessage WallAndFloor = new ServerMessage(Outgoing.ConfigureWallandFloor);
                            WallAndFloor.AppendBoolean(room.Hidewall);
                            WallAndFloor.AppendInt32(room.Wallthick);
                            WallAndFloor.AppendInt32(room.Floorthick);
                            Session.GetHabbo().CurrentRoom.SendMessage(WallAndFloor,null);

                            RoomData data2 = room.RoomData;

                            ServerMessage RoomDataa = new ServerMessage(Outgoing.RoomData);
                            RoomDataa.AppendBoolean(false);
                            RoomDataa.AppendInt32(room.Id);
                            RoomDataa.AppendString(room.Name);
                            RoomDataa.AppendBoolean(true);
                            RoomDataa.AppendInt32(room.OwnerId);
                            RoomDataa.AppendString(room.Owner);
                            RoomDataa.AppendInt32(room.State);
                            RoomDataa.AppendInt32(room.UsersNow);
                            RoomDataa.AppendInt32(room.UsersMax);
                            RoomDataa.AppendString(room.Description);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32((room.Category == 0x34) ? 2 : 0);
                            RoomDataa.AppendInt32(room.Score);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(room.Category);

                            if (room.RoomData.GuildId == 0)
                            {
                                RoomDataa.AppendInt32(0);
                                RoomDataa.AppendInt32(0);
                            }
                            else
                            {
                                GroupsManager guild = Groups.GetGroupById(room.RoomData.GuildId);
                                RoomDataa.AppendInt32(guild.Id);
                                RoomDataa.AppendString(guild.Name);
                                RoomDataa.AppendString(guild.Badge);
                            }

                            RoomDataa.AppendString("");
                            RoomDataa.AppendInt32(room.Tags.Count);

                            foreach (string str6 in room.Tags)
                            {
                                RoomDataa.AppendString(str6);
                            }

                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendBoolean(true);
                            RoomDataa.AppendBoolean(true);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendBoolean(false);
                            RoomDataa.AppendBoolean(false);
                            RoomDataa.AppendBoolean(false);

                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendInt32(0);
                            RoomDataa.AppendBoolean(false);
                            RoomDataa.AppendBoolean(true);
                            Session.GetHabbo().CurrentRoom.SendMessage(RoomDataa,null);
                    }
                }
            }
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            try
            {
                Room @class = Essential.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                uint uint_ = Event.PopWiredUInt();
                RoomItem class2 = @class.method_28(uint_);
                string text = class2.GetBaseItem().InteractionType.ToLower();
                switch (text)
                {
                    case "wf_act_give_phx":
                        {
                            Event.PopWiredInt32();
                            string text2 = Event.PopFixedString();
                            text2 = Essential.DoFilter(text2, false, true);
                            text2 = ChatCommandHandler.ApplyFilter(text2);
                            if (!(text2 == class2.string_2))
                            {
                                string string_ = text2.Split(new char[]
						{
							':'
						})[0].ToLower();
                                if (Essential.GetGame().GetRoleManager().HasSuperWiredFXFuse(string_, Session))
                                {
                                    class2.string_2 = text2;
                                }
                                else
                                {
                                    Session.GetHabbo().Whisper(EssentialEnvironment.GetExternalText("wired_error_permissions"));
                                }
                            }
                            break;
                        }
                    case "wf_cnd_phx":
                        {
                            Event.PopWiredInt32();
                            string text2 = Event.PopFixedString();
                            text2 = Essential.DoFilter(text2, false, true);
                            text2 = ChatCommandHandler.ApplyFilter(text2);
                            if (!(text2 == class2.string_2))
                            {
                                string string_ = text2.Split(new char[]
						        {
							        ':'
						        })[0].ToLower();
                                if (Essential.GetGame().GetRoleManager().HasSuperWiredcndFuse(string_, Session))
                                {
                                    class2.string_2 = text2;
                                }
                                else
                                {
                                    Session.GetHabbo().Whisper(EssentialEnvironment.GetExternalText("wired_error_permissions"));
                                }
                            }
                            break;
                        }
                    case "wf_act_saymsg":
                        {
                            Event.PopWiredInt32();
                            string text2 = Event.PopFixedString();
                            text2 = Essential.DoFilter(text2, false, true);
                            if (text2.Length > 100)
                            {
                                text2 = text2.Substring(0, 100);
                            }
                            class2.string_2 = text2;
                            break;
                        }
                    case "wf_act_kick_user":
                        {
                            Event.PopWiredInt32();
                            string text2 = Event.PopFixedString();
                            text2 = Essential.DoFilter(text2, false, true);
                            if (text2.Length > 200)
                            {
                                text2 = text2.Substring(0, 200);
                            }
                            class2.string_2 = text2;
                            break;
                        }
                    case "wf_trg_furnistate":
                    case "wf_trg_onfurni":
                    case "wf_trg_offfurni":
                    case "wf_act_moveuser":
                    case "wf_act_togglefurni":
                        {
                            Event.PopWiredInt32();
                           Event.PopFixedString();
                        /*    class2.string_2 = Event.ToString().Substring(Event.Length - (Event.RemainingLength - 2));
                            class2.string_2 = class2.string_2.Substring(0, class2.string_2.Length - 2);
                            Event.ResetPointer();
                            class2 = @class.method_28(Event.PopWiredUInt());
                            Event.PopWiredBoolean();
                            Event.PopFixedString();
                            */
                            int num2 = Event.PopWiredInt32();
                            class2.string_3 = "";
                            for (int i = 0; i < num2; i++)
                            {
                                class2.string_3 = class2.string_3 + "," + Convert.ToString(Event.PopWiredUInt());
                            }
                           
                            if (class2.string_3.Length > 0)
                            {
                                class2.string_3 = class2.string_3.Substring(1);
                            }
                            class2.string_2 = (Convert.ToDouble(Event.PopWiredInt32()) / 2) +"";
                            break;
                        }
                    case "wf_act_givepoints":
                        Event.PopWiredInt32();
                        class2.string_2 = Convert.ToString(Event.PopWiredInt32());
                        class2.string_3 = Convert.ToString(Event.PopWiredInt32());
                        break;
                    case "wf_act_moverotate":
                        {
                            Event.PopWiredInt32();
                            class2.string_2 = Convert.ToString(Event.PopWiredInt32());
                            class2.string_3 = Convert.ToString(Event.PopWiredInt32());
                            Event.PopWiredBoolean();
                            Event.PopWiredBoolean();
                            int num2 = Event.PopWiredInt32();
                            class2.string_4 = "";
                            class2.string_5 = "";
                            if (num2 > 0)
                            {
                                class2.string_5 = OldEncoding.encodeVL64(num2);
                                for (int i = 0; i < num2; i++)
                                {
                                    int num3 = Event.PopWiredInt32();
                                    class2.string_5 += OldEncoding.encodeVL64(num3);
                                    class2.string_4 = class2.string_4 + "," + Convert.ToString(num3);
                                }
                                class2.string_4 = class2.string_4.Substring(1);
                            }
                            class2.string_6 = Convert.ToString(Event.PopWiredInt32());
                            break;
                        }
                    case "wf_act_matchfurni":
                        {
                            Event.PopWiredInt32();
                            Event.PopWiredBoolean();
                                Event.PopWiredBoolean();
                          
                            class2.string_3 = "";
                         
                                RoomItem expr_4A8 = class2;
                                expr_4A8.string_3 += "I";
                           
                           
                                RoomItem expr_4E1 = class2;
                                expr_4E1.string_3 += "I";
                         
                                RoomItem expr_51A = class2;
                                expr_51A.string_3 += "I";
                           
                           // Event.PopFixedString();
                            int num2 = Event.PopWiredInt32();
                            class2.string_2 = "";
                            class2.string_4 = "";
                            class2.string_5 = "";
                            if (num2 > 0)
                            {
                                class2.string_5 = OldEncoding.encodeVL64(num2);
                                for (int i = 0; i < num2; i++)
                                {
                                    int num3 = Event.PopWiredInt32();
                                    class2.string_5 += OldEncoding.encodeVL64(num3);
                                    class2.string_4 = class2.string_4 + "," + Convert.ToString(num3);
                                    RoomItem class3 = @class.method_28(Convert.ToUInt32(num3));
                                    RoomItem expr_5E6 = class2;
                                    object string_2 = expr_5E6.string_2;
                                    expr_5E6.string_2 = string.Concat(new object[]
							        {
								        string_2,
								        ";",
								        class3.GetX,
								        ",",
								        class3.Int32_1,
								        ",",
								        class3.Double_0,
								        ",",
								        class3.int_3,
								        ",",
								        class3.ExtraData
							        });
                                }
                                class2.string_4 = class2.string_4.Substring(1);
                                class2.string_2 = class2.string_2.Substring(1);
                            }
                            class2.string_6 = Convert.ToString(Event.PopWiredInt32());
                            break;
                        }
                }
                Session.SendMessage(new ServerMessage(Outgoing.SaveWired)); // NEW
                class2.UpdateState(true, false);
            }
            catch
            {
            }
        }
		public void Handle(GameClient Session, ClientMessage Event)
		{
			int num = Event.PopWiredInt32();
            bool InWindow = false;
            InWindow = Event.PopWiredBoolean();
            string OwnerName = "Rootkit";
			if (num > 0 && (Session != null && Session.GetHabbo() != null))
			{
				GroupsManager @class = Groups.GetGroupById(num);
				if (@class != null)
				{
                    ServerMessage Message = new ServerMessage(Outgoing.GroupInfo); // Updated
					Message.AppendInt32(@class.Id);
                    Message.AppendBoolean(true);
                    Message.AppendInt32(@class.Locked == "open" ? 0 : 1);
					Message.AppendStringWithBreak(@class.Name);
                    Message.AppendStringWithBreak(@class.Description);
                    Message.AppendStringWithBreak(@class.Badge);
                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
						{
                            OwnerName = dbClient.ReadString("SELECT username FROM users WHERE id = '" + @class.OwnerId + "' LIMIT 1");
                        }
                    if (@class.RoomId > 0u)
					{
                        Message.AppendUInt(@class.RoomId);
                        if (Essential.GetGame().GetRoomManager().GetRoom(@class.RoomId) != null)
						{
                            Message.AppendStringWithBreak(Essential.GetGame().GetRoomManager().GetRoom(@class.RoomId).Name);
							goto IL_15A;
						}
						using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
						{
							try
							{
                                DataRow dataRow_ = class2.ReadDataRow("SELECT * FROM rooms WHERE Id = " + @class.RoomId + " LIMIT 1;");
                                string string_ = Essential.GetGame().GetRoomManager().method_17(@class.RoomId, dataRow_).Name;
								Message.AppendStringWithBreak(string_);
							}
							catch
							{
								Message.AppendInt32(-1);
								Message.AppendStringWithBreak("");
							}
							goto IL_15A;
						}
					}
					Message.AppendInt32(-1);
					Message.AppendStringWithBreak("");
					IL_15A:
					bool flag = false;
					foreach (DataRow dataRow in Session.GetHabbo().dataTable_0.Rows)
					{
						if ((int)dataRow["groupid"] == @class.Id)
						{
							flag = true;
						}
					}
					if (Session.GetHabbo().list_0.Contains(@class.Id))
					{
						Message.AppendInt32(2);
					}
					else
					{
						if (flag)
						{
							Message.AppendInt32(1);
						}
						else
						{
                      
								if (@class.Members.Contains((int)Session.GetHabbo().Id))
								{
									Message.AppendInt32(1);
								}
								else
								{
									Message.AppendInt32(0);
								}
							
						}
					}
					Message.AppendInt32(@class.Members.Count);

						Message.AppendBoolean(true);
				
                    Message.AppendString(@class.Created);
                    Message.AppendBoolean((@class.OwnerId == Session.GetHabbo().Id));
                    Message.AppendBoolean(false);
                    Message.AppendString(OwnerName);
                    Message.AppendBoolean(InWindow);
                    Message.AppendBoolean(true);
                    Message.AppendInt32(0); // Pending
					Session.SendMessage(Message);
				}
			}
		}