diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs | 42 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 8 |
2 files changed, 29 insertions, 21 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs index cd59bdb..5c24f03 100644 --- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs | |||
@@ -266,25 +266,29 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat | |||
266 | } | 266 | } |
267 | 267 | ||
268 | // m_log.DebugFormat("[CHAT] Broadcast: fromID {0} fromName {1}, cType {2}, sType {3}", fromID, fromName, cType, sourceType); | 268 | // m_log.DebugFormat("[CHAT] Broadcast: fromID {0} fromName {1}, cType {2}, sType {3}", fromID, fromName, cType, sourceType); |
269 | 269 | if (c.Scene != null) | |
270 | ((Scene)c.Scene).ForEachScenePresence( | 270 | { |
271 | delegate(ScenePresence presence) | 271 | ((Scene)c.Scene).ForEachScenePresence |
272 | { | 272 | ( |
273 | // ignore chat from child agents | 273 | delegate(ScenePresence presence) |
274 | if (presence.IsChildAgent) return; | 274 | { |
275 | 275 | // ignore chat from child agents | |
276 | IClientAPI client = presence.ControllingClient; | 276 | if (presence.IsChildAgent) return; |
277 | 277 | ||
278 | // don't forward SayOwner chat from objects to | 278 | IClientAPI client = presence.ControllingClient; |
279 | // non-owner agents | 279 | |
280 | if ((c.Type == ChatTypeEnum.Owner) && | 280 | // don't forward SayOwner chat from objects to |
281 | (null != c.SenderObject) && | 281 | // non-owner agents |
282 | (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId)) | 282 | if ((c.Type == ChatTypeEnum.Owner) && |
283 | return; | 283 | (null != c.SenderObject) && |
284 | 284 | (((SceneObjectPart)c.SenderObject).OwnerID != client.AgentId)) | |
285 | client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, | 285 | return; |
286 | (byte)sourceType, (byte)ChatAudibleLevel.Fully); | 286 | |
287 | }); | 287 | client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, |
288 | (byte)sourceType, (byte)ChatAudibleLevel.Fully); | ||
289 | } | ||
290 | ); | ||
291 | } | ||
288 | } | 292 | } |
289 | 293 | ||
290 | 294 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 66fb918..83208e9 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -840,8 +840,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
840 | public void RemoveTaskInventory(IClientAPI remoteClient, UUID itemID, uint localID) | 840 | public void RemoveTaskInventory(IClientAPI remoteClient, UUID itemID, uint localID) |
841 | { | 841 | { |
842 | SceneObjectPart part = GetSceneObjectPart(localID); | 842 | SceneObjectPart part = GetSceneObjectPart(localID); |
843 | SceneObjectGroup group = part.ParentGroup; | 843 | SceneObjectGroup group = null; |
844 | if (group != null) | 844 | if (part != null) |
845 | { | ||
846 | group = part.ParentGroup; | ||
847 | } | ||
848 | if (part != null && group != null) | ||
845 | { | 849 | { |
846 | TaskInventoryItem item = group.GetInventoryItem(localID, itemID); | 850 | TaskInventoryItem item = group.GetInventoryItem(localID, itemID); |
847 | if (item == null) | 851 | if (item == null) |