diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 72 |
2 files changed, 48 insertions, 26 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 72dc9c0..e61a5bd 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -727,7 +727,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
727 | item.inventoryCurrentPermissions = 2147483647; | 727 | item.inventoryCurrentPermissions = 2147483647; |
728 | item.inventoryNextPermissions = nextOwnerMask; | 728 | item.inventoryNextPermissions = nextOwnerMask; |
729 | 729 | ||
730 | userInfo.ItemReceive(remoteClient.AgentId, item); | 730 | userInfo.AddItem(remoteClient.AgentId, item); |
731 | remoteClient.SendInventoryItemUpdate(item); | 731 | remoteClient.SendInventoryItemUpdate(item); |
732 | } | 732 | } |
733 | } | 733 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 4254f74..f83e43c 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -41,8 +41,9 @@ using OpenSim.Framework.Communications.Caches; | |||
41 | using OpenSim.Region.Environment.LandManagement; | 41 | using OpenSim.Region.Environment.LandManagement; |
42 | using OpenSim.Region.Scripting; | 42 | using OpenSim.Region.Scripting; |
43 | using OpenSim.Region.Terrain; | 43 | using OpenSim.Region.Terrain; |
44 | using Caps=OpenSim.Region.Capabilities.Caps; | 44 | using OpenSim.Framework.Data; |
45 | using Timer=System.Timers.Timer; | 45 | using Caps = OpenSim.Region.Capabilities.Caps; |
46 | using Timer = System.Timers.Timer; | ||
46 | 47 | ||
47 | namespace OpenSim.Region.Environment.Scenes | 48 | namespace OpenSim.Region.Environment.Scenes |
48 | { | 49 | { |
@@ -205,7 +206,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
205 | phyScene.GetResults(); | 206 | phyScene.GetResults(); |
206 | } | 207 | } |
207 | 208 | ||
208 | List<EntityBase> moveEntities = new List<EntityBase>( Entities.Values ); | 209 | List<EntityBase> moveEntities = new List<EntityBase>(Entities.Values); |
209 | 210 | ||
210 | foreach (EntityBase entity in moveEntities) | 211 | foreach (EntityBase entity in moveEntities) |
211 | { | 212 | { |
@@ -503,9 +504,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
503 | { | 504 | { |
504 | if (obj is SceneObjectGroup) | 505 | if (obj is SceneObjectGroup) |
505 | { | 506 | { |
506 | if (((SceneObjectGroup) obj).LocalId == localID) | 507 | if (((SceneObjectGroup)obj).LocalId == localID) |
507 | { | 508 | { |
508 | RemoveEntity((SceneObjectGroup) obj); | 509 | RemoveEntity((SceneObjectGroup)obj); |
509 | return; | 510 | return; |
510 | } | 511 | } |
511 | } | 512 | } |
@@ -607,8 +608,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
607 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); | 608 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); |
608 | 609 | ||
609 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); | 610 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); |
610 | 611 | ||
611 | //client.OnCreateNewInventoryItem += CreateNewInventoryItem; | 612 | //client.OnCreateNewInventoryItem += CreateNewInventoryItem; |
612 | client.OnCreateNewInventoryFolder += commsManager.UserProfiles.HandleCreateInventoryFolder; | 613 | client.OnCreateNewInventoryFolder += commsManager.UserProfiles.HandleCreateInventoryFolder; |
613 | client.OnFetchInventoryDescendents += commsManager.UserProfiles.HandleFecthInventoryDescendents; | 614 | client.OnFetchInventoryDescendents += commsManager.UserProfiles.HandleFecthInventoryDescendents; |
614 | client.OnRequestTaskInventory += RequestTaskInventory; | 615 | client.OnRequestTaskInventory += RequestTaskInventory; |
@@ -670,9 +671,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
670 | 671 | ||
671 | ForEachScenePresence( | 672 | ForEachScenePresence( |
672 | delegate(ScenePresence presence) | 673 | delegate(ScenePresence presence) |
673 | { | 674 | { |
674 | presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId); | 675 | presence.ControllingClient.SendKillObject(avatar.RegionHandle, avatar.LocalId); |
675 | }); | 676 | }); |
676 | 677 | ||
677 | lock (Avatars) | 678 | lock (Avatars) |
678 | { | 679 | { |
@@ -689,7 +690,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
689 | } | 690 | } |
690 | } | 691 | } |
691 | // TODO: Add the removal from physics ? | 692 | // TODO: Add the removal from physics ? |
692 | 693 | ||
693 | // Remove client agent from profile, so new logins will work | 694 | // Remove client agent from profile, so new logins will work |
694 | commsManager.UserServer.clearUserAgent(agentID); | 695 | commsManager.UserServer.clearUserAgent(agentID); |
695 | 696 | ||
@@ -787,7 +788,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
787 | { | 788 | { |
788 | if (ent is SceneObjectGroup) | 789 | if (ent is SceneObjectGroup) |
789 | { | 790 | { |
790 | ((SceneObjectGroup) ent).SendFullUpdateToClient(client); | 791 | ((SceneObjectGroup)ent).SendFullUpdateToClient(client); |
791 | } | 792 | } |
792 | } | 793 | } |
793 | } | 794 | } |
@@ -825,6 +826,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
825 | new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, | 826 | new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, |
826 | agent.CapsPath, agent.AgentID); | 827 | agent.CapsPath, agent.AgentID); |
827 | cap.RegisterHandlers(); | 828 | cap.RegisterHandlers(); |
829 | cap.AddNewInventoryItem = this.AddInventoryItem; | ||
828 | if (capsHandlers.ContainsKey(agent.AgentID)) | 830 | if (capsHandlers.ContainsKey(agent.AgentID)) |
829 | { | 831 | { |
830 | MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + | 832 | MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + |
@@ -1009,7 +1011,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1009 | string result = ""; | 1011 | string result = ""; |
1010 | for (int i = pos; i < commandParams.Length; i++) | 1012 | for (int i = pos; i < commandParams.Length; i++) |
1011 | { | 1013 | { |
1012 | result += commandParams[i]+ " "; | 1014 | result += commandParams[i] + " "; |
1013 | } | 1015 | } |
1014 | return result; | 1016 | return result; |
1015 | } | 1017 | } |
@@ -1020,25 +1022,45 @@ namespace OpenSim.Region.Environment.Scenes | |||
1020 | public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger) | 1022 | public void AddScriptEngine(OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine, LogBase m_logger) |
1021 | { | 1023 | { |
1022 | ScriptEngines.Add(ScriptEngine); | 1024 | ScriptEngines.Add(ScriptEngine); |
1025 | |||
1023 | ScriptEngine.InitializeEngine(this, m_logger); | 1026 | ScriptEngine.InitializeEngine(this, m_logger); |
1024 | } | 1027 | } |
1025 | #endregion | 1028 | #endregion |
1026 | 1029 | ||
1027 | public LLUUID ConvertLocalIDToFullID(uint localID) | 1030 | public LLUUID ConvertLocalIDToFullID(uint localID) |
1028 | { | 1031 | { |
1029 | bool hasPrim = false; | 1032 | bool hasPrim = false; |
1030 | foreach (EntityBase ent in Entities.Values) | 1033 | foreach (EntityBase ent in Entities.Values) |
1031 | { | 1034 | { |
1032 | if (ent is SceneObjectGroup) | 1035 | if (ent is SceneObjectGroup) |
1033 | { | 1036 | { |
1034 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); | 1037 | hasPrim = ((SceneObjectGroup)ent).HasChildPrim(localID); |
1035 | if (hasPrim != false) | 1038 | if (hasPrim != false) |
1036 | { | 1039 | { |
1037 | return ((SceneObjectGroup)ent).GetPartsFullID(localID); | 1040 | return ((SceneObjectGroup)ent).GetPartsFullID(localID); |
1038 | } | 1041 | } |
1039 | } | 1042 | } |
1040 | } | 1043 | } |
1041 | return LLUUID.Zero; | 1044 | return LLUUID.Zero; |
1045 | } | ||
1046 | |||
1047 | public void AddInventoryItem(LLUUID userID, InventoryItemBase item) | ||
1048 | { | ||
1049 | if(this.Avatars.ContainsKey(userID)) | ||
1050 | { | ||
1051 | this.AddInventoryItem(this.Avatars[userID].ControllingClient, item); | ||
1052 | } | ||
1042 | } | 1053 | } |
1054 | |||
1055 | public void AddInventoryItem(IClientAPI remoteClient, InventoryItemBase item) | ||
1056 | { | ||
1057 | CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId); | ||
1058 | if (userInfo != null) | ||
1059 | { | ||
1060 | userInfo.AddItem(remoteClient.AgentId, item); | ||
1061 | remoteClient.SendInventoryItemUpdate(item); | ||
1062 | } | ||
1063 | } | ||
1064 | |||
1043 | } | 1065 | } |
1044 | } | 1066 | } |