public ServerMessage method_12(GameClient Session, int int_0) { Func <RoomData, bool> func = null; Func <Room, bool> func2 = null; Navigator.Class219 @class = new Navigator.Class219(); @class.int_0 = int_0; ServerMessage Message = new ServerMessage(451u); if (@class.int_0 >= -1) { Message.AppendInt32(@class.int_0); Message.AppendInt32(1); } else { if (@class.int_0 == -2) { Message.AppendInt32(0); Message.AppendInt32(2); } else { if (@class.int_0 == -3) { Message.AppendInt32(0); Message.AppendInt32(5); } else { if (@class.int_0 == -4) { Message.AppendInt32(0); Message.AppendInt32(3); } else { if (@class.int_0 == -5) { Message.AppendInt32(0); Message.AppendInt32(4); } } } } } Message.AppendStringWithBreak(""); List <RoomData> list = new List <RoomData>(); switch (@class.int_0) { case -5: case -4: break; case -3: goto IL_3A2; case -2: goto IL_3E5; case -1: goto IL_47E; default: { Dictionary <Room, int> dictionary = GoldTree.GetGame().GetRoomManager().method_21(); IEnumerable <RoomData> arg_11F_0 = GoldTree.GetGame().GetRoomManager().list_3; if (func == null) { func = new Func <RoomData, bool>(@class.method_0); } IEnumerable <RoomData> enumerable = arg_11F_0.Where(func); IEnumerable <Room> arg_13E_0 = dictionary.Keys; if (func2 == null) { func2 = new Func <Room, bool>(@class.method_1); } IEnumerable <Room> arg_160_0 = arg_13E_0.Where(func2); if (Navigator.func_2 == null) { Navigator.func_2 = new Func <Room, int>(Navigator.smethod_3); } IOrderedEnumerable <Room> orderedEnumerable = arg_160_0.OrderByDescending(Navigator.func_2); new List <RoomData>(); int num = 0; foreach (Room current in orderedEnumerable) { if (num > 40) { break; } list.Add(current.Class27_0); num++; } using (IEnumerator <RoomData> enumerator2 = enumerable.GetEnumerator()) { while (enumerator2.MoveNext()) { RoomData current2 = enumerator2.Current; if (num > 40) { break; } if (list.Contains(current2)) { list.Remove(current2); } list.Add(current2); num++; } goto IL_508; } } } List <string> list2 = new List <string>(); Dictionary <int, Room> dictionary2 = new Dictionary <int, Room>(); Hashtable hashtable = Session.GetHabbo().GetMessenger().method_26().Clone() as Hashtable; Dictionary <RoomData, int> dictionary3 = new Dictionary <RoomData, int>(); foreach (MessengerBuddy class2 in hashtable.Values) { if (class2.Boolean_0 && class2.Boolean_1) { GameClient class3 = GoldTree.GetGame().GetClientManager().method_2(class2.UInt32_0); if (class3 != null && class3.GetHabbo() != null && class3.GetHabbo().CurrentRoom != null) { RoomData class27_ = class3.GetHabbo().CurrentRoom.Class27_0; if (!dictionary3.ContainsKey(class27_)) { dictionary3.Add(class27_, class27_.UsersNow); } } } } IEnumerable <RoomData> arg_344_0 = dictionary3.Keys; if (Navigator.func_0 == null) { Navigator.func_0 = new Func <RoomData, int>(Navigator.smethod_1); } IOrderedEnumerable <RoomData> orderedEnumerable2 = arg_344_0.OrderByDescending(Navigator.func_0); list2.Clear(); dictionary2.Clear(); hashtable.Clear(); dictionary3.Clear(); using (IEnumerator <RoomData> enumerator2 = orderedEnumerable2.GetEnumerator()) { while (enumerator2.MoveNext()) { RoomData current3 = enumerator2.Current; list.Add(current3); } goto IL_508; } IL_3A2: using (List <RoomData> .Enumerator enumerator4 = Session.GetHabbo().list_6.GetEnumerator()) { while (enumerator4.MoveNext()) { RoomData current3 = enumerator4.Current; list.Add(current3); } goto IL_508; } IL_3E5: DataTable dataTable; using (DatabaseClient class4 = GoldTree.GetDatabase().GetClient()) { dataTable = class4.ReadDataTable("SELECT * FROM rooms WHERE score > 0 AND roomtype = 'private' ORDER BY score DESC LIMIT 40"); } IEnumerator enumerator3 = dataTable.Rows.GetEnumerator(); try { while (enumerator3.MoveNext()) { DataRow dataRow = (DataRow)enumerator3.Current; list.Add(GoldTree.GetGame().GetRoomManager().method_17((uint)dataRow["Id"], dataRow)); } goto IL_508; } finally { IDisposable disposable = enumerator3 as IDisposable; if (disposable != null) { disposable.Dispose(); } } IL_47E: Dictionary <Room, int> dictionary4 = GoldTree.GetGame().GetRoomManager().method_21(); IEnumerable <Room> arg_4B3_0 = dictionary4.Keys; if (Navigator.func_1 == null) { Navigator.func_1 = new Func <Room, int>(Navigator.smethod_2); } IOrderedEnumerable <Room> orderedEnumerable3 = arg_4B3_0.OrderByDescending(Navigator.func_1); int num2 = 0; foreach (Room current4 in orderedEnumerable3) { if (num2 >= 40) { break; } num2++; list.Add(current4.Class27_0); } IL_508: Message.AppendInt32(list.Count); foreach (RoomData current5 in list) { current5.method_3(Message, false, false); } Random random = new Random(); Message.AppendStringWithBreak(""); this.dictionary_1.ElementAt(random.Next(0, this.dictionary_1.Count)).Value.method_0(Message); return(Message); }
public ServerMessage method_12(GameClient Session, int int_0) { Func<RoomData, bool> func = null; Func<Room, bool> func2 = null; Navigator.Class219 @class = new Navigator.Class219(); @class.int_0 = int_0; ServerMessage Message = new ServerMessage(451u); if (@class.int_0 >= -1) { Message.AppendInt32(@class.int_0); Message.AppendInt32(1); } else { if (@class.int_0 == -2) { Message.AppendInt32(0); Message.AppendInt32(2); } else { if (@class.int_0 == -3) { Message.AppendInt32(0); Message.AppendInt32(5); } else { if (@class.int_0 == -4) { Message.AppendInt32(0); Message.AppendInt32(3); } else { if (@class.int_0 == -5) { Message.AppendInt32(0); Message.AppendInt32(4); } } } } } Message.AppendStringWithBreak(""); List<RoomData> list = new List<RoomData>(); switch (@class.int_0) { case -5: case -4: break; case -3: goto IL_3A2; case -2: goto IL_3E5; case -1: goto IL_47E; default: { Dictionary<Room, int> dictionary = GoldTree.GetGame().GetRoomManager().method_21(); IEnumerable<RoomData> arg_11F_0 = GoldTree.GetGame().GetRoomManager().list_3; if (func == null) { func = new Func<RoomData, bool>(@class.method_0); } IEnumerable<RoomData> enumerable = arg_11F_0.Where(func); IEnumerable<Room> arg_13E_0 = dictionary.Keys; if (func2 == null) { func2 = new Func<Room, bool>(@class.method_1); } IEnumerable<Room> arg_160_0 = arg_13E_0.Where(func2); if (Navigator.func_2 == null) { Navigator.func_2 = new Func<Room, int>(Navigator.smethod_3); } IOrderedEnumerable<Room> orderedEnumerable = arg_160_0.OrderByDescending(Navigator.func_2); new List<RoomData>(); int num = 0; foreach (Room current in orderedEnumerable) { if (num > 40) { break; } list.Add(current.Class27_0); num++; } using (IEnumerator<RoomData> enumerator2 = enumerable.GetEnumerator()) { while (enumerator2.MoveNext()) { RoomData current2 = enumerator2.Current; if (num > 40) { break; } if (list.Contains(current2)) { list.Remove(current2); } list.Add(current2); num++; } goto IL_508; } } } List<string> list2 = new List<string>(); Dictionary<int, Room> dictionary2 = new Dictionary<int, Room>(); Hashtable hashtable = Session.GetHabbo().GetMessenger().method_26().Clone() as Hashtable; Dictionary<RoomData, int> dictionary3 = new Dictionary<RoomData, int>(); foreach (MessengerBuddy class2 in hashtable.Values) { if (class2.Boolean_0 && class2.Boolean_1) { GameClient class3 = GoldTree.GetGame().GetClientManager().method_2(class2.UInt32_0); if (class3 != null && class3.GetHabbo() != null && class3.GetHabbo().CurrentRoom != null) { RoomData class27_ = class3.GetHabbo().CurrentRoom.Class27_0; if (!dictionary3.ContainsKey(class27_)) { dictionary3.Add(class27_, class27_.UsersNow); } } } } IEnumerable<RoomData> arg_344_0 = dictionary3.Keys; if (Navigator.func_0 == null) { Navigator.func_0 = new Func<RoomData, int>(Navigator.smethod_1); } IOrderedEnumerable<RoomData> orderedEnumerable2 = arg_344_0.OrderByDescending(Navigator.func_0); list2.Clear(); dictionary2.Clear(); hashtable.Clear(); dictionary3.Clear(); using (IEnumerator<RoomData> enumerator2 = orderedEnumerable2.GetEnumerator()) { while (enumerator2.MoveNext()) { RoomData current3 = enumerator2.Current; list.Add(current3); } goto IL_508; } IL_3A2: using (List<RoomData>.Enumerator enumerator4 = Session.GetHabbo().list_6.GetEnumerator()) { while (enumerator4.MoveNext()) { RoomData current3 = enumerator4.Current; list.Add(current3); } goto IL_508; } IL_3E5: DataTable dataTable; using (DatabaseClient class4 = GoldTree.GetDatabase().GetClient()) { dataTable = class4.ReadDataTable("SELECT * FROM rooms WHERE score > 0 AND roomtype = 'private' ORDER BY score DESC LIMIT 40"); } IEnumerator enumerator3 = dataTable.Rows.GetEnumerator(); try { while (enumerator3.MoveNext()) { DataRow dataRow = (DataRow)enumerator3.Current; list.Add(GoldTree.GetGame().GetRoomManager().method_17((uint)dataRow["Id"], dataRow)); } goto IL_508; } finally { IDisposable disposable = enumerator3 as IDisposable; if (disposable != null) { disposable.Dispose(); } } IL_47E: Dictionary<Room, int> dictionary4 = GoldTree.GetGame().GetRoomManager().method_21(); IEnumerable<Room> arg_4B3_0 = dictionary4.Keys; if (Navigator.func_1 == null) { Navigator.func_1 = new Func<Room, int>(Navigator.smethod_2); } IOrderedEnumerable<Room> orderedEnumerable3 = arg_4B3_0.OrderByDescending(Navigator.func_1); int num2 = 0; foreach (Room current4 in orderedEnumerable3) { if (num2 >= 40) { break; } num2++; list.Add(current4.Class27_0); } IL_508: Message.AppendInt32(list.Count); foreach (RoomData current5 in list) { current5.method_3(Message, false, false); } Random random = new Random(); Message.AppendStringWithBreak(""); this.dictionary_1.ElementAt(random.Next(0, this.dictionary_1.Count)).Value.method_0(Message); return Message; }