aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs61
1 files changed, 45 insertions, 16 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 788e80a..8419399 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -34,16 +34,8 @@ namespace OpenSim.Region.Environment.Scenes
34{ 34{
35 public partial class Scene 35 public partial class Scene
36 { 36 {
37 /// <summary> 37 protected void SimChat(byte[] message, ChatTypeEnum type, int channel, LLVector3 fromPos, string fromName,
38 /// 38 LLUUID fromID, bool fromAgent, bool broadcast)
39 /// </summary>
40 /// <param name="message"></param>
41 /// <param name="type"></param>
42 /// <param name="fromPos"></param>
43 /// <param name="fromName"></param>
44 /// <param name="fromAgentID"></param>
45 public void SimChat(byte[] message, ChatTypeEnum type, int channel, LLVector3 fromPos, string fromName,
46 LLUUID fromAgentID)
47 { 39 {
48 ChatFromViewerArgs args = new ChatFromViewerArgs(); 40 ChatFromViewerArgs args = new ChatFromViewerArgs();
49 41
@@ -51,19 +43,56 @@ namespace OpenSim.Region.Environment.Scenes
51 args.Channel = channel; 43 args.Channel = channel;
52 args.Type = type; 44 args.Type = type;
53 args.Position = fromPos; 45 args.Position = fromPos;
54 args.SenderUUID = fromAgentID; 46 args.SenderUUID = fromID;
55 args.Scene = this; 47 args.Scene = this;
56 48
57 ScenePresence user = GetScenePresence(fromAgentID); 49 if (fromAgent)
58 if (user != null) 50 {
59 args.Sender = user.ControllingClient; 51 ScenePresence user = GetScenePresence(fromID);
52 if (user != null)
53 args.Sender = user.ControllingClient;
54 }
60 else 55 else
61 args.Sender = null; 56 {
57 SceneObjectPart obj = GetSceneObjectPart(fromID);
58 args.SenderObject = obj;
59 }
62 60
63 args.From = fromName; 61 args.From = fromName;
64 //args. 62 //args.
65 63
66 EventManager.TriggerOnChatFromWorld(this, args); 64 if (broadcast)
65 EventManager.TriggerOnChatBroadcast(this, args);
66 else
67 EventManager.TriggerOnChatFromWorld(this, args);
68
69 }
70 /// <summary>
71 ///
72 /// </summary>
73 /// <param name="message"></param>
74 /// <param name="type"></param>
75 /// <param name="fromPos"></param>
76 /// <param name="fromName"></param>
77 /// <param name="fromAgentID"></param>
78 public void SimChat(byte[] message, ChatTypeEnum type, int channel, LLVector3 fromPos, string fromName,
79 LLUUID fromID, bool fromAgent)
80 {
81 SimChat(message, type, channel, fromPos, fromName, fromID, fromAgent, false);
82 }
83
84 /// <summary>
85 ///
86 /// </summary>
87 /// <param name="message"></param>
88 /// <param name="type"></param>
89 /// <param name="fromPos"></param>
90 /// <param name="fromName"></param>
91 /// <param name="fromAgentID"></param>
92 public void SimChatBroadcast(byte[] message, ChatTypeEnum type, int channel, LLVector3 fromPos, string fromName,
93 LLUUID fromID, bool fromAgent)
94 {
95 SimChat(message, type, channel, fromPos, fromName, fromID, fromAgent, true);
67 } 96 }
68 97
69 /// <summary> 98 /// <summary>