libomv:
* Renaming ObjectPropertiesRequestType to ReportType, filling out the enum Simian: * Added UUIDNameRequest, MultipleObjectUpdate, ObjectDeselect, and RequestObjectPropertiesFamily handlers * Fixed some bugs in object-object collision * Slightly improved prim spawn location (will always be hacky until we have a collision system) git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2177 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -25,6 +25,7 @@ namespace Simian.Extensions
|
||||
Server.UDPServer.RegisterPacketCallback(PacketType.AgentSetAppearance, new UDPServer.PacketCallback(AgentSetAppearanceHandler));
|
||||
Server.UDPServer.RegisterPacketCallback(PacketType.AgentAnimation, new UDPServer.PacketCallback(AgentAnimationHandler));
|
||||
Server.UDPServer.RegisterPacketCallback(PacketType.ViewerEffect, new UDPServer.PacketCallback(ViewerEffectHandler));
|
||||
Server.UDPServer.RegisterPacketCallback(PacketType.UUIDNameRequest, new UDPServer.PacketCallback(UUIDNameRequestHandler));
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
@@ -232,6 +233,45 @@ namespace Simian.Extensions
|
||||
}
|
||||
}
|
||||
|
||||
void UUIDNameRequestHandler(Packet packet, Agent agent)
|
||||
{
|
||||
UUIDNameRequestPacket request = (UUIDNameRequestPacket)packet;
|
||||
Dictionary<UUID, Agent> replies = new Dictionary<UUID, Agent>(request.UUIDNameBlock.Length);
|
||||
|
||||
// FIXME: This is messy/slow until we get a proper ISceneProvider
|
||||
for (int i = 0; i < request.UUIDNameBlock.Length; i++)
|
||||
{
|
||||
lock (Server.Agents)
|
||||
{
|
||||
foreach (Agent curAgent in Server.Agents.Values)
|
||||
{
|
||||
if (curAgent.AgentID == request.UUIDNameBlock[i].ID)
|
||||
{
|
||||
replies[curAgent.AgentID] = curAgent;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (replies.Count > 0)
|
||||
{
|
||||
UUIDNameReplyPacket reply = new UUIDNameReplyPacket();
|
||||
reply.UUIDNameBlock = new UUIDNameReplyPacket.UUIDNameBlockBlock[replies.Count];
|
||||
|
||||
int i = 0;
|
||||
foreach (KeyValuePair<UUID, Agent> kvp in replies)
|
||||
{
|
||||
reply.UUIDNameBlock[i] = new UUIDNameReplyPacket.UUIDNameBlockBlock();
|
||||
reply.UUIDNameBlock[i].ID = kvp.Key;
|
||||
reply.UUIDNameBlock[i].FirstName = Utils.StringToBytes(kvp.Value.FirstName);
|
||||
reply.UUIDNameBlock[i].LastName = Utils.StringToBytes(kvp.Value.LastName);
|
||||
}
|
||||
|
||||
agent.SendPacket(reply);
|
||||
}
|
||||
}
|
||||
|
||||
public static AvatarAppearancePacket BuildAppearancePacket(Agent agent)
|
||||
{
|
||||
AvatarAppearancePacket appearance = new AvatarAppearancePacket();
|
||||
|
||||
Reference in New Issue
Block a user