From 06967e230f50fbeee24176f3df8cda8a067544e4 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Thu, 10 Apr 2008 09:36:55 +0000 Subject: * Updates BetaGridLikeMoneyModule * Several people have asked for a way to limit uploads, so I've decided to show people how to do this in the BetaGridLikeMoneyModule. * Configure it in OpenSim.ini using the [Economy] header. See the bottom of the OpenSim.ini.example for more information. * This also fleshes out the Economy API a bit more. --- OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 11 +++++++++++ OpenSim/Region/Environment/Scenes/Scene.cs | 14 ++++++++++++++ OpenSim/Region/Environment/Scenes/SceneEvents.cs | 14 ++++++++++++++ OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | 9 ++++++++- 4 files changed, 47 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index bc8fb59..97d09aa 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -73,6 +73,17 @@ namespace OpenSim.Region.Environment.Scenes { userInfo.AddItem(remoteClient.AgentId, item); remoteClient.SendInventoryItemCreateUpdate(item); + + int userlevel = 0; + if (PermissionsMngr.IsEstateManager(remoteClient.AgentId)) + { + userlevel = 1; + } + if (m_regInfo.MasterAvatarAssignedUUID == remoteClient.AgentId) + { + userlevel = 2; + } + EventManager.TriggerOnNewInventoryItemUploadComplete(remoteClient.AgentId, item.AssetID, item.Name, userlevel); } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 8f4c332..4a57c5d 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -219,6 +219,8 @@ namespace OpenSim.Region.Environment.Scenes set { m_innerScene.RestorePresences = value; } } + public int objectCapacity = 45000; + #endregion #region Constructors @@ -299,6 +301,9 @@ namespace OpenSim.Region.Environment.Scenes m_statsReporter = new SimStatsReporter(regInfo); m_statsReporter.OnSendStatsResult += SendSimStatsPackets; + + m_statsReporter.SetObjectCapacity(objectCapacity); + string OSString = ""; if (System.Environment.OSVersion.Platform != PlatformID.Unix) @@ -2016,6 +2021,15 @@ namespace OpenSim.Region.Environment.Scenes } } + public void SetObjectCapacity(int objects) + { + if (m_statsReporter != null) + { + m_statsReporter.SetObjectCapacity(objects); + } + objectCapacity = objects; + } + #endregion #region Other Methods diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs index c916009..02c9f3f 100644 --- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs +++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs @@ -137,6 +137,10 @@ namespace OpenSim.Region.Environment.Scenes public event OnNewPresenceDelegate OnMakeChildAgent; + public delegate void NewInventoryItemUploadComplete(LLUUID avatarID, LLUUID assetID, string name, int userlevel); + + public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete; + /// /// RegisterCapsEvent is called by Scene after the Caps object /// has been instantiated and before it is return to the @@ -207,6 +211,7 @@ namespace OpenSim.Region.Environment.Scenes private OnTerrainTickDelegate handlerTerrainTick = null; // OnTerainTick; private RegisterCapsEvent handlerRegisterCaps = null; // OnRegisterCaps; private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps; + private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null; public void TriggerOnScriptChangedEvent(uint localID, uint change) { @@ -462,5 +467,14 @@ namespace OpenSim.Region.Environment.Scenes handlerDeregisterCaps(agentID, caps); } } + + public void TriggerOnNewInventoryItemUploadComplete(LLUUID agentID, LLUUID AssetID, String AssetName, int userlevel) + { + handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete; + if (handlerNewInventoryItemUpdateComplete != null) + { + handlerNewInventoryItemUpdateComplete(agentID, AssetID, AssetName, userlevel); + } + } } } diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs index ef741d4..d72bee0 100644 --- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs @@ -100,6 +100,8 @@ namespace OpenSim.Region.Environment.Scenes private int m_pendingUploads = 0; private int m_activeScripts = 0; private int m_scriptLinesPerSecond = 0; + + private int objectCapacity = 45000; SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[21]; @@ -152,7 +154,7 @@ namespace OpenSim.Region.Environment.Scenes { statpack.Region.RegionFlags = (uint) 0; } - statpack.Region.ObjectCapacity = (uint) 45000; + statpack.Region.ObjectCapacity = (uint) objectCapacity; #region various statistic googly moogly @@ -389,6 +391,11 @@ namespace OpenSim.Region.Environment.Scenes m_activeScripts = count; } + public void SetObjectCapacity(int objects) + { + objectCapacity = objects; + } + #endregion } } -- cgit v1.1