From 14b659e550b4e24ecffa87fc28ee0196c36c73e3 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 2 Oct 2012 01:17:46 +0100
Subject: Send money() events to the clicked prim. Reverting a change I made
over a year ago.
---
OpenSim/Region/ScriptEngine/XEngine/EventManager.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
index cee10df..74baaf9 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
@@ -98,7 +98,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_log.Debug("Paid: " + objectID + " from " + agentID + ", amount " + amount);
- part = part.ParentGroup.RootPart;
+// part = part.ParentGroup.RootPart;
money(part.LocalId, agentID, amount);
}
--
cgit v1.1
From 54ec8b197b9119d0443bed0797563a88bdf49f6f Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 2 Oct 2012 01:25:55 +0100
Subject: Add money event routing to the script engine.
---
OpenSim/Region/ScriptEngine/XEngine/EventManager.cs | 3 +++
1 file changed, 3 insertions(+)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
index 74baaf9..9405075 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs
@@ -96,6 +96,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (part == null)
return;
+ if ((part.ScriptEvents & scriptEvents.money) == 0)
+ part = part.ParentGroup.RootPart;
+
m_log.Debug("Paid: " + objectID + " from " + agentID + ", amount " + amount);
// part = part.ParentGroup.RootPart;
--
cgit v1.1
From 35b7c80e0ba876649c606d5d047fcb59754372ea Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 31 Jul 2012 14:45:23 +0100
Subject: implementing osDropAttachment & osDropAttachmentAt
---
.../Shared/Api/Implementation/OSSL_Api.cs | 33 ++++++++++++++++++++--
.../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 12 ++++++++
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 10 +++++++
3 files changed, 53 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 8b73cd9..fec8a67 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3549,6 +3549,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (m_UrlModule != null)
m_UrlModule.HttpContentType(new UUID(id),type);
}
-
- }
+
+ public void osDropAttachment()
+ {
+ CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachment");
+ m_host.AddScriptLPS(1);
+
+ IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
+ ScenePresence sp = attachmentsModule == null ? null : m_host.ParentGroup.Scene.GetScenePresence(m_host.ParentGroup.OwnerID);
+
+ if (attachmentsModule != null && sp != null)
+ {
+ attachmentsModule.DetachSingleAttachmentToGround(sp, m_host.ParentGroup.LocalId);
+ }
+ }
+
+ public void osDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
+ {
+ CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachment");
+ m_host.AddScriptLPS(1);
+
+ IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
+ ScenePresence sp = attachmentsModule == null ? null : m_host.ParentGroup.Scene.GetScenePresence(m_host.ParentGroup.OwnerID);
+
+ if (attachmentsModule != null && sp != null)
+ {
+ Vector3 omvPos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z);
+ Quaternion omvRot = LSL_Api.Rot2Quaternion(rot);
+ attachmentsModule.DetachSingleAttachmentToGround(sp, m_host.ParentGroup.LocalId, omvPos, omvRot);
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 3985e66..e28473d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -394,5 +394,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
///
///
void osSetContentType(LSL_Key id, string type);
+
+ ///
+ /// Attempts to drop an attachment to the ground
+ ///
+ void osDropAttachment();
+
+ ///
+ /// Attempts to drop an attachment at the specified coordinates.
+ ///
+ ///
+ ///
+ void osDropAttachmentAt(vector pos, rotation rot);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 52ca3da..bae5594 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -972,5 +972,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{
m_OSSL_Functions.osSetContentType(id,type);
}
+
+ public void osDropAttachment()
+ {
+ m_OSSL_Functions.osDropAttachment();
+ }
+
+ public void osDropAttachmentAt(vector pos, rotation rot)
+ {
+ m_OSSL_Functions.osDropAttachmentAt(pos, rot);
+ }
}
}
--
cgit v1.1
From c677c04f10bf0ec9ed66799effe2b3d4c881f5dd Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Tue, 31 Jul 2012 15:24:15 +0100
Subject: fixing copypasta
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index fec8a67..02b97e8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3566,7 +3566,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public void osDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
{
- CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachment");
+ CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachmentAt");
m_host.AddScriptLPS(1);
IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
--
cgit v1.1
From ce7694c108e8abf2e52a0b0167eab3d550f364ab Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Wed, 1 Aug 2012 10:28:58 +0100
Subject: added perms checking, duplicated functionality to methods that do not
require perms and have higher threat level
---
.../Shared/Api/Implementation/OSSL_Api.cs | 70 ++++++++++++++++++++--
.../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 12 ++++
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 10 ++++
3 files changed, 86 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 02b97e8..d0db15f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3538,7 +3538,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return new LSL_Key(m_host.ParentGroup.FromPartID.ToString());
}
-
+
///
/// Sets the response type for an HTTP request/response
///
@@ -3549,11 +3549,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (m_UrlModule != null)
m_UrlModule.HttpContentType(new UUID(id),type);
}
-
- public void osDropAttachment()
+ /// Shout an error if the object owner did not grant the script the specified permissions.
+ ///
+ ///
+ /// boolean indicating whether an error was shouted.
+ protected bool ShoutErrorOnLackingOwnerPerms(int perms, string errorPrefix)
{
CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachment");
m_host.AddScriptLPS(1);
+ bool fail = false;
+ if (m_item.PermsGranter != m_host.OwnerID)
+ {
+ fail = true;
+ OSSLShoutError(string.Format("{0}. Permissions not granted to owner.", errorPrefix));
+ }
+ else if ((m_item.PermsMask & perms) == 0)
+ {
+ fail = true;
+ OSSLShoutError(string.Format("{0}. Permissions not granted.", errorPrefix));
+ }
+
+ return fail;
+ }
+
+ protected void DropAttachment(bool checkPerms)
+ {
+ if (checkPerms && ShoutErrorOnLackingOwnerPerms(ScriptBaseClass.PERMISSION_ATTACH, "Cannot drop attachment"))
+ {
+ return;
+ }
IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
ScenePresence sp = attachmentsModule == null ? null : m_host.ParentGroup.Scene.GetScenePresence(m_host.ParentGroup.OwnerID);
@@ -3564,10 +3588,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
- public void osDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
+ protected void DropAttachemntAt(bool checkPerms, LSL_Vector pos, LSL_Rotation rot)
{
- CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachmentAt");
- m_host.AddScriptLPS(1);
+ if (checkPerms && ShoutErrorOnLackingOwnerPerms(ScriptBaseClass.PERMISSION_ATTACH, "Cannot drop attachment"))
+ {
+ return;
+ }
IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
ScenePresence sp = attachmentsModule == null ? null : m_host.ParentGroup.Scene.GetScenePresence(m_host.ParentGroup.OwnerID);
@@ -3579,5 +3605,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
attachmentsModule.DetachSingleAttachmentToGround(sp, m_host.ParentGroup.LocalId, omvPos, omvRot);
}
}
+
+ public void osDropAttachment()
+ {
+ CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachment");
+ m_host.AddScriptLPS(1);
+
+ DropAttachment(true);
+ }
+
+ public void osForceDropAttachment()
+ {
+ CheckThreatLevel(ThreatLevel.High, "osForceDropAttachment");
+ m_host.AddScriptLPS(1);
+
+ DropAttachment(false);
+ }
+
+ public void osDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
+ {
+ CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachmentAt");
+ m_host.AddScriptLPS(1);
+
+ DropAttachemntAt(true, pos, rot);
+ }
+
+ public void osForceDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
+ {
+ CheckThreatLevel(ThreatLevel.High, "osForceDropAttachmentAt");
+ m_host.AddScriptLPS(1);
+
+ DropAttachemntAt(false, pos, rot);
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index e28473d..93188c9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -401,10 +401,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void osDropAttachment();
///
+ /// Attempts to drop an attachment to the ground while bypassing the script permissions
+ ///
+ void osForceDropAttachment();
+
+ ///
/// Attempts to drop an attachment at the specified coordinates.
///
///
///
void osDropAttachmentAt(vector pos, rotation rot);
+
+ ///
+ /// Attempts to drop an attachment at the specified coordinates while bypassing the script permissions
+ ///
+ ///
+ ///
+ void osForceDropAttachmentAt(vector pos, rotation rot);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index bae5594..dee1b28 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -978,9 +978,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_OSSL_Functions.osDropAttachment();
}
+ public void osForceDropAttachment()
+ {
+ m_OSSL_Functions.osForceDropAttachment();
+ }
+
public void osDropAttachmentAt(vector pos, rotation rot)
{
m_OSSL_Functions.osDropAttachmentAt(pos, rot);
}
+
+ public void osForceDropAttachmentAt(vector pos, rotation rot)
+ {
+ m_OSSL_Functions.osForceDropAttachmentAt(pos, rot);
+ }
}
}
--
cgit v1.1
From f555febdb7c6bbd9ef8b98f897e6c296a62b23fe Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Mon, 20 Aug 2012 10:19:39 +0100
Subject: taking into account the recent introduction of implicit operators
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index d0db15f..e56a36f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3600,9 +3600,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (attachmentsModule != null && sp != null)
{
- Vector3 omvPos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z);
- Quaternion omvRot = LSL_Api.Rot2Quaternion(rot);
- attachmentsModule.DetachSingleAttachmentToGround(sp, m_host.ParentGroup.LocalId, omvPos, omvRot);
+ attachmentsModule.DetachSingleAttachmentToGround(sp, m_host.ParentGroup.LocalId, pos, rot);
}
}
--
cgit v1.1
From a1679517d39f11591c89203eba914f52c09838ea Mon Sep 17 00:00:00 2001
From: SignpostMarv
Date: Sun, 30 Sep 2012 12:27:53 +0100
Subject: correcting typo
---
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index e56a36f..31be450 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -3588,7 +3588,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
- protected void DropAttachemntAt(bool checkPerms, LSL_Vector pos, LSL_Rotation rot)
+ protected void DropAttachmentAt(bool checkPerms, LSL_Vector pos, LSL_Rotation rot)
{
if (checkPerms && ShoutErrorOnLackingOwnerPerms(ScriptBaseClass.PERMISSION_ATTACH, "Cannot drop attachment"))
{
@@ -3625,7 +3625,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
CheckThreatLevel(ThreatLevel.Moderate, "osDropAttachmentAt");
m_host.AddScriptLPS(1);
- DropAttachemntAt(true, pos, rot);
+ DropAttachmentAt(true, pos, rot);
}
public void osForceDropAttachmentAt(LSL_Vector pos, LSL_Rotation rot)
@@ -3633,7 +3633,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
CheckThreatLevel(ThreatLevel.High, "osForceDropAttachmentAt");
m_host.AddScriptLPS(1);
- DropAttachemntAt(false, pos, rot);
+ DropAttachmentAt(false, pos, rot);
}
}
}
\ No newline at end of file
--
cgit v1.1
From 653a98e891dcd97b55010900bacc4d033958756a Mon Sep 17 00:00:00 2001
From: Melanie
Date: Wed, 3 Oct 2012 17:39:13 +0100
Subject: Fix a viewer crash issue
Conflicts:
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
---
.../ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/ScriptEngine')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 52d96bc..7fa6f05 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4006,7 +4006,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
Vector3 av3 = Util.Clip(color, 0.0f, 1.0f);
- m_host.SetText(text.Length > 254 ? text.Remove(254) : text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
+ if (text.Length > 254)
+ text = text.Remove(254);
+
+ byte[] data;
+ do
+ {
+ data = Util.UTF8.GetBytes(text);
+ if (data.Length > 254)
+ text = text.Substring(0, text.Length - 1);
+ } while (data.Length > 254);
+
+ m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
//m_host.ParentGroup.HasGroupChanged = true;
//m_host.ParentGroup.ScheduleGroupForFullUpdate();
}
--
cgit v1.1