diff options
Diffstat (limited to 'OpenSim/Region')
7 files changed, 109 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs index f14beb0..d397893 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | |||
@@ -320,7 +320,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
320 | 320 | ||
321 | m_HostCapsObj.HttpListener.AddStreamHandler( | 321 | m_HostCapsObj.HttpListener.AddStreamHandler( |
322 | new BinaryStreamHandler( | 322 | new BinaryStreamHandler( |
323 | "POST", capsBase + uploaderPath, uploader.uploaderCaps, "BunchOfCaps", null)); | 323 | "POST", capsBase + uploaderPath, uploader.uploaderCaps, "TaskInventoryScriptUpdater", null)); |
324 | 324 | ||
325 | string protocol = "http://"; | 325 | string protocol = "http://"; |
326 | 326 | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index bb76717..b354cc0 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -12109,21 +12109,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12109 | protected void MakeAssetRequest(TransferRequestPacket transferRequest, UUID taskID) | 12109 | protected void MakeAssetRequest(TransferRequestPacket transferRequest, UUID taskID) |
12110 | { | 12110 | { |
12111 | UUID requestID = UUID.Zero; | 12111 | UUID requestID = UUID.Zero; |
12112 | if (transferRequest.TransferInfo.SourceType == (int)SourceType.Asset) | 12112 | int sourceType = transferRequest.TransferInfo.SourceType; |
12113 | |||
12114 | if (sourceType == (int)SourceType.Asset) | ||
12113 | { | 12115 | { |
12114 | requestID = new UUID(transferRequest.TransferInfo.Params, 0); | 12116 | requestID = new UUID(transferRequest.TransferInfo.Params, 0); |
12115 | } | 12117 | } |
12116 | else if (transferRequest.TransferInfo.SourceType == (int)SourceType.SimInventoryItem) | 12118 | else if (sourceType == (int)SourceType.SimInventoryItem) |
12117 | { | 12119 | { |
12118 | requestID = new UUID(transferRequest.TransferInfo.Params, 80); | 12120 | requestID = new UUID(transferRequest.TransferInfo.Params, 80); |
12119 | } | 12121 | } |
12120 | else if (transferRequest.TransferInfo.SourceType == (int)SourceType.SimEstate) | 12122 | else if (sourceType == (int)SourceType.SimEstate) |
12121 | { | 12123 | { |
12122 | requestID = taskID; | 12124 | requestID = taskID; |
12123 | } | 12125 | } |
12124 | 12126 | ||
12125 | 12127 | // m_log.DebugFormat( | |
12126 | // m_log.DebugFormat("[CLIENT]: {0} requesting asset {1}", Name, requestID); | 12128 | // "[LLCLIENTVIEW]: Received transfer request for {0} in {1} type {2} by {3}", |
12129 | // requestID, taskID, (SourceType)sourceType, Name); | ||
12127 | 12130 | ||
12128 | 12131 | ||
12129 | //Note, the bool returned from the below function is useless since it is always false. | 12132 | //Note, the bool returned from the below function is useless since it is always false. |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 0089c7d..0837ca5 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -300,6 +300,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
300 | AssetBase asset = CreateAsset(item.Name, item.Description, (sbyte)AssetType.LSLText, data, remoteClient.AgentId); | 300 | AssetBase asset = CreateAsset(item.Name, item.Description, (sbyte)AssetType.LSLText, data, remoteClient.AgentId); |
301 | AssetService.Store(asset); | 301 | AssetService.Store(asset); |
302 | 302 | ||
303 | // m_log.DebugFormat( | ||
304 | // "[PRIM INVENTORY]: Stored asset {0} when updating item {1} in prim {2} for {3}", | ||
305 | // asset.ID, item.Name, part.Name, remoteClient.Name); | ||
306 | |||
303 | if (isScriptRunning) | 307 | if (isScriptRunning) |
304 | { | 308 | { |
305 | part.Inventory.RemoveScriptInstance(item.ItemID, false); | 309 | part.Inventory.RemoveScriptInstance(item.ItemID, false); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index ca14399..5bd781c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5953,6 +5953,91 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5953 | m_host.AddScriptLPS(1); | 5953 | m_host.AddScriptLPS(1); |
5954 | return "en-us"; | 5954 | return "en-us"; |
5955 | } | 5955 | } |
5956 | /// <summary> | ||
5957 | /// http://wiki.secondlife.com/wiki/LlGetAgentList | ||
5958 | /// The list of options is currently not used in SL | ||
5959 | /// scope is one of:- | ||
5960 | /// AGENT_LIST_REGION - all in the region | ||
5961 | /// AGENT_LIST_PARCEL - all in the same parcel as the scripted object | ||
5962 | /// AGENT_LIST_PARCEL_OWNER - all in any parcel owned by the owner of the | ||
5963 | /// current parcel. | ||
5964 | /// </summary> | ||
5965 | public LSL_List llGetAgentList(LSL_Integer scope, LSL_List options) | ||
5966 | { | ||
5967 | m_host.AddScriptLPS(1); | ||
5968 | |||
5969 | // the constants are 1, 2 and 4 so bits are being set, but you | ||
5970 | // get an error "INVALID_SCOPE" if it is anything but 1, 2 and 4 | ||
5971 | bool regionWide = scope == ScriptBaseClass.AGENT_LIST_REGION; | ||
5972 | bool parcelOwned = scope == ScriptBaseClass.AGENT_LIST_PARCEL_OWNER; | ||
5973 | bool parcel = scope == ScriptBaseClass.AGENT_LIST_PARCEL; | ||
5974 | |||
5975 | LSL_List result = new LSL_List(); | ||
5976 | |||
5977 | if (!regionWide && !parcelOwned && !parcel) | ||
5978 | { | ||
5979 | result.Add("INVALID_SCOPE"); | ||
5980 | return result; | ||
5981 | } | ||
5982 | |||
5983 | ILandObject land; | ||
5984 | Vector3 pos; | ||
5985 | UUID id = UUID.Zero; | ||
5986 | if (parcel || parcelOwned) | ||
5987 | { | ||
5988 | pos = m_host.ParentGroup.RootPart.GetWorldPosition(); | ||
5989 | land = World.LandChannel.GetLandObject(pos.X, pos.Y); | ||
5990 | if (land == null) | ||
5991 | { | ||
5992 | id = UUID.Zero; | ||
5993 | } | ||
5994 | else | ||
5995 | { | ||
5996 | if (parcelOwned) | ||
5997 | { | ||
5998 | id = land.LandData.OwnerID; | ||
5999 | } | ||
6000 | else | ||
6001 | { | ||
6002 | id = land.LandData.GlobalID; | ||
6003 | } | ||
6004 | } | ||
6005 | } | ||
6006 | List<UUID> presenceIds = new List<UUID>(); | ||
6007 | |||
6008 | World.ForEachRootScenePresence( | ||
6009 | delegate (ScenePresence ssp) | ||
6010 | { | ||
6011 | // Gods are not listed in SL | ||
6012 | if (!ssp.IsDeleted && ssp.GodLevel == 0.0 && !ssp.IsChildAgent) | ||
6013 | { | ||
6014 | if (!regionWide) | ||
6015 | { | ||
6016 | pos = ssp.AbsolutePosition; | ||
6017 | land = World.LandChannel.GetLandObject(pos.X, pos.Y); | ||
6018 | if (land != null) | ||
6019 | { | ||
6020 | if (parcelOwned && land.LandData.OwnerID == id || | ||
6021 | parcel && land.LandData.GlobalID == id) | ||
6022 | { | ||
6023 | result.Add(ssp.UUID.ToString()); | ||
6024 | } | ||
6025 | } | ||
6026 | } | ||
6027 | else | ||
6028 | { | ||
6029 | result.Add(ssp.UUID.ToString()); | ||
6030 | } | ||
6031 | } | ||
6032 | // Maximum of 100 results | ||
6033 | if (result.Length > 99) | ||
6034 | { | ||
6035 | return; | ||
6036 | } | ||
6037 | } | ||
6038 | ); | ||
6039 | return result; | ||
6040 | } | ||
5956 | 6041 | ||
5957 | public void llAdjustSoundVolume(double volume) | 6042 | public void llAdjustSoundVolume(double volume) |
5958 | { | 6043 | { |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs index 2ecc455..048124d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs | |||
@@ -109,6 +109,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
109 | LSL_Vector llGetAccel(); | 109 | LSL_Vector llGetAccel(); |
110 | LSL_Integer llGetAgentInfo(string id); | 110 | LSL_Integer llGetAgentInfo(string id); |
111 | LSL_String llGetAgentLanguage(string id); | 111 | LSL_String llGetAgentLanguage(string id); |
112 | LSL_List llGetAgentList(LSL_Integer scope, LSL_List options); | ||
112 | LSL_Vector llGetAgentSize(string id); | 113 | LSL_Vector llGetAgentSize(string id); |
113 | LSL_Float llGetAlpha(int face); | 114 | LSL_Float llGetAlpha(int face); |
114 | LSL_Float llGetAndResetTime(); | 115 | LSL_Float llGetAndResetTime(); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index 9d830c8..5c6ad8a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -503,6 +503,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
503 | public const int OBJECT_STREAMING_COST = 15; | 503 | public const int OBJECT_STREAMING_COST = 15; |
504 | public const int OBJECT_PHYSICS_COST = 16; | 504 | public const int OBJECT_PHYSICS_COST = 16; |
505 | 505 | ||
506 | // for llGetAgentList | ||
507 | public const int AGENT_LIST_PARCEL = 1; | ||
508 | public const int AGENT_LIST_PARCEL_OWNER = 2; | ||
509 | public const int AGENT_LIST_REGION = 4; | ||
510 | |||
506 | // Can not be public const? | 511 | // Can not be public const? |
507 | public static readonly vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0); | 512 | public static readonly vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0); |
508 | public static readonly rotation ZERO_ROTATION = new rotation(0.0, 0.0, 0.0, 1.0); | 513 | public static readonly rotation ZERO_ROTATION = new rotation(0.0, 0.0, 0.0, 1.0); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index 8db4006..2d23d30 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | |||
@@ -396,6 +396,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
396 | return m_LSL_Functions.llGetAgentLanguage(id); | 396 | return m_LSL_Functions.llGetAgentLanguage(id); |
397 | } | 397 | } |
398 | 398 | ||
399 | public LSL_List llGetAgentList(LSL_Integer scope, LSL_List options) | ||
400 | { | ||
401 | return m_LSL_Functions.llGetAgentList(scope, options); | ||
402 | } | ||
403 | |||
399 | public LSL_Vector llGetAgentSize(string id) | 404 | public LSL_Vector llGetAgentSize(string id) |
400 | { | 405 | { |
401 | return m_LSL_Functions.llGetAgentSize(id); | 406 | return m_LSL_Functions.llGetAgentSize(id); |