From c893761319f7e61d13b2d2301180d0f227fde1a9 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 13 Oct 2009 12:50:59 -0700 Subject: * Unregister event handlers in LLUDPServer when a client logs out and disconnects * Move ViewerEffect handling to Scene.PacketHandlers * Removing the unused CloseAllAgents function * Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code --- .../Framework/Scenes/Scene.PacketHandlers.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 4ae4dc3..dbbf679 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs @@ -390,6 +390,32 @@ namespace OpenSim.Region.Framework.Scenes EventManager.TriggerScriptReset(part.LocalId, itemID); } } + + void ProcessViewerEffect(IClientAPI remoteClient, List args) + { + // TODO: don't create new blocks if recycling an old packet + List effectBlock = new List(); + for (int i = 0; i < args.Count; i++) + { + ViewerEffectPacket.EffectBlock effect = new ViewerEffectPacket.EffectBlock(); + effect.AgentID = args[i].AgentID; + effect.Color = args[i].Color; + effect.Duration = args[i].Duration; + effect.ID = args[i].ID; + effect.Type = args[i].Type; + effect.TypeData = args[i].TypeData; + effectBlock.Add(effect); + } + ViewerEffectPacket.EffectBlock[] effectBlockArray = effectBlock.ToArray(); + + ClientManager.ForEachClient( + delegate(IClientAPI client) + { + if (client.AgentId != remoteClient.AgentId) + client.SendViewerEffect(effectBlockArray); + } + ); + } /// /// Handle a fetch inventory request from the client -- cgit v1.1