Found this on another Forum (Credits to Sledmore)
Open up the emulator source and search for the following:
PHP Code:
internal ServerMessage SerializeSearchResults(string SearchQuery)
Replace the whole ServerMessage with the following:
PHP Code:
internal ServerMessage SerializeSearchResults(string SearchQuery)
{
DataTable Data = new DataTable();
using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
if (SearchQuery.Length > 0)
{
if (SearchQuery.Contains("owner:"))
{
string[] splitSearch = SearchQuery.Split(':');
dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = [MENTION=190253]query[/MENTION] AND roomtype = 'private' " + "ORDER BY active_users DESC LIMIT 50");
dbClient.addParameter("query", splitSearch[1]);
Data = dbClient.getTable();
}
else
{
dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = [MENTION=190253]query[/MENTION] AND roomtype = 'private' " +
"UNION ALL " + "SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE caption = [MENTION=190253]query[/MENTION] AND roomtype = 'private' " + "ORDER BY active_users DESC LIMIT 50");
dbClient.addParameter("query", SearchQuery);
Data = dbClient.getTable();
}
}
}
List<RoomData> list = new List<RoomData>();
if (Data != null)
{
foreach (DataRow row in Data.Rows)
{
RoomData item = ButterflyEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToUInt32(row["id"]), row);
list.Add(item);
}
}
ServerMessage message = new ServerMessage(Outgoing.NavigatorPacket);
message.AppendInt32(8);
message.AppendString(SearchQuery);
message.AppendInt32(list.Count);
foreach (RoomData data2 in list)
{
data2.Serialize(message, false);
}
message.AppendBoolean(false);
return message;
}