package net.nova.habbo.message.outgoing;
import java.util.Hashtable;
import java.util.Vector;
import net.nova.core.NovaEnvironment;
import net.nova.habbo.message.OutgoingMessage;
import net.nova.habbo.messenger.Messenger;
import net.nova.habbo.messenger.MessengerBuddy;
public class HabboSearchResult extends OutgoingMessage {
@Override
public void Respond()
{
Response.Initialize(435); //??
if (mHabbo.GetMessenger() != null)
{
Vector<MessengerBuddy> Result = new Messenger(mHabbo.getID()).Search(mRequest.PopFixedString()); //TODO FILTERME
Hashtable<Integer, MessengerBuddy> Buddys = mHabbo.GetMessenger();
Vector<MessengerBuddy> Buddy = new Vector<MessengerBuddy>();
Vector<MessengerBuddy> User = new Vector<MessengerBuddy>();
for (MessengerBuddy Node : Result)
{
for (MessengerBuddy Compare : Buddys.values())
{
boolean friend = false;
if (Node.getID() == Compare.getID()) //User is a friend
{
friend = true;
}
if (friend == true)
Buddy.add(Node);
else
User.add(Node);
}
}
Response.AppendInt(Buddy.size()); // Count of friends
for (MessengerBuddy Friend : Buddy)
{
if (NovaEnvironment.IsOnline(Friend.getID()))
{
Response.AppendInt(Friend.getID());
Response.AppendString(Friend.getName());
Response.AppendString(Friend.getMotto());
Response.AppendString(""); //Online now
Response.AppendString(Friend.getFigure());
}
else
{
Response.AppendInt(Friend.getID());
Response.AppendString(Friend.getName());
Response.AppendString(Friend.getMotto());
Response.AppendString(Friend.getLastSeen()); //Online now
Response.AppendString(Friend.getFigure());
}
}
Response.AppendInt(User.size()); // Count of normal users
//Append normal users
for (MessengerBuddy Match : User)
{
if (NovaEnvironment.IsOnline(Match.getID()))
{
Response.AppendInt(Match.getID());
Response.AppendString(Match.getName());
Response.AppendString(Match.getMotto());
Response.AppendString(""); //Online now
Response.AppendString(Match.getFigure());
}
else
{
Response.AppendInt(Match.getID());
Response.AppendString(Match.getName());
Response.AppendString(Match.getMotto());
Response.AppendString(Match.getLastSeen()); //Online now
Response.AppendString(Match.getFigure());
}
}
SendResponse();
}
}
}