internal RoomData GenerateRoomData(UInt32 RoomId) { if (loadedRoomData.ContainsKey(RoomId)) { return((RoomData)loadedRoomData[RoomId]); } RoomData Data = new RoomData(); if (IsRoomLoaded(RoomId)) { return(GetRoom(RoomId).RoomData); } else { DataRow Row = null; using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE id = " + RoomId); Row = dbClient.getRow(); } if (Row == null) { return(null); } Data.Fill(Row); loadedRoomData.Add(RoomId, Data); } return(Data); }
public RoomData GenerateRoomData(int RoomId) { Room Room; if (TryGetRoom(RoomId, out Room)) { return(Room.RoomData); } DataRow Row = (DataRow)null; using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) { queryreactor.SetQuery("SELECT * FROM rooms WHERE id = " + RoomId); Row = queryreactor.GetRow(); } if (Row == null) { return((RoomData)null); } RoomData roomData = new RoomData(); roomData.Fill(Row); //if (!_loadedRoomData.ContainsKey(RoomId) && AddCache) //_loadedRoomData.TryAdd(RoomId, roomData); return(roomData); }
internal RoomData FetchRoomData(UInt32 RoomId, DataRow dRow) { if (loadedRoomData.ContainsKey(RoomId)) { return((RoomData)loadedRoomData[RoomId]); } else { RoomData data = new RoomData(); if (IsRoomLoaded(RoomId)) { data.Fill(GetRoom(RoomId)); } else { data.Fill(dRow); } loadedRoomData.Add(RoomId, data); return(data); } }
public RoomData FetchRoomData(int roomID, DataRow dRow) { Room room = GetRoom(roomID); if (room != null) { return(room.RoomData); } else { RoomData data = new RoomData(); data.Fill(dRow); return(data); } }
internal RoomData FetchRoomData(UInt32 RoomId, DataRow dRow) { if (loadedRoomData.ContainsKey(RoomId)) { return(loadedRoomData[RoomId]); } else { var data = new RoomData(); data.Fill(dRow); if (!loadedRoomData.ContainsKey(RoomId)) { loadedRoomData.Add(RoomId, data); } return(data); } }
internal RoomData GenerateRoomData(UInt32 RoomId) { if (loadedRoomData.ContainsKey(RoomId)) { return(loadedRoomData[RoomId]); } var Data = new RoomData(); if (IsRoomLoaded(RoomId)) { return(GetRoom(RoomId).RoomData); } else { DataRow Row = null; using (var dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT * FROM rooms WHERE id = " + RoomId); Row = dbClient.getRow(); } if (Row == null) { return(null); } Data.Fill(Row); if (!loadedRoomData.ContainsKey(RoomId)) { loadedRoomData.Add(RoomId, Data); } return(Data); } }
internal RoomData FetchRoomData(uint roomID, DataRow dRow) { if (CachedRoomdata.ContainsKey(roomID)) return (RoomData)CachedRoomdata[roomID]; else { RoomData data = new RoomData(); data.Fill(dRow); CachedRoomdata.Add(roomID, data); return data; } }
internal RoomData GenerateRoomData(UInt32 RoomId, bool fromcache = true) { if (CachedRoomdata.ContainsKey(RoomId) && fromcache) return (RoomData)CachedRoomdata[RoomId]; RoomData Data = new RoomData(); using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT rooms.*, room_active.active_users, users.id AS ownerid FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) JOIN users ON (users.username = rooms.owner) WHERE rooms.id = " + RoomId); DataRow Row = dbClient.getRow(); if (Row == null) return null; Data.Fill(Row); CachedRoomdata.Add(RoomId, Data); } return Data; }
internal ServerMessage SerializeNavigator(GameClient session, int mode) { if (mode > -1) return SerializeActiveRooms(mode); ServerMessage reply = PacketHandelingManager.GetRecycledItem(OutputCode.GuestRoomSearchResultEvent); switch (mode) { case -5: { reply.AddInt32(mode); List<RoomData> activeFriends = session.GetHabboDataContainer().GetChatMessenger().GetActiveFriendsRooms().OrderByDescending(p => p.UsersNow).ToList(); SerializeNavigatorRooms(ref reply, activeFriends); return reply; } case -4: { reply.AddInt32(mode); List<string> FriendsNames = session.GetHabboDataContainer().GetChatMessenger().GetFriendUsernames().ToList(); if (FriendsNames.Count == 0) { SerializeNavigatorRooms(ref reply, new List<RoomData>()); return reply; } QueryChunk Query = new QueryChunk("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE"); int i = 0; foreach (string Name in FriendsNames) { if (i > 0) Query.AddSpecialRawQuery(" OR"); Query.AddSpecialRawQuery(" owner = '" + ButterflyEnvironment.FilterInjectionChars(Name, true) + "'"); i++; } Query.AddQuery(" ORDER BY room_active.active_users DESC LIMIT 40;"); using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { Query.Execute(dbClient); DataTable dTable = dbClient.getTable(); List<RoomData> parsedRoomData = new List<RoomData>(); foreach (DataRow dRow in dTable.Rows) { RoomData data = new RoomData(); data.Fill(dRow); bool any = false; foreach (RoomData p in parsedRoomData) { if (p.Id == data.Id) { any = true; break; } if (p.Name == data.Name) { any = true; break; } } if (any) continue; parsedRoomData.Add(data); } SerializeNavigatorRooms(ref reply, parsedRoomData); Query.Dispose(); } FriendsNames = null; return reply; } case -3: { reply.AddInt32(mode); SerializeNavigatorRooms(ref reply, session.GetHabbo().UsersRooms); return reply; } case -2: { reply.AddInt32(mode); int count = 0; ISortable<RoomData>[] rooms = ButterflyEnvironment.GetGame().GetRoomManager().GetActiveRooms(out count); SerializeNavigatorRooms(reply, rooms, count); rooms = null; return reply; } case -1: { reply.AddInt32(mode); int count = 0; ISortable<RoomData>[] rooms = ButterflyEnvironment.GetGame().GetRoomManager().GetActiveRooms(out count); SerializeNavigatorRooms(reply, rooms, count); rooms = null; return reply; } } return reply; }