From 5d6f92fb9697dc09d26bba236846809c737fc5c0 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 23 Aug 2008 00:44:06 +0000 Subject: Patch #9171 Disallow bulk uploads if money module is present and upload cost is set and the user hasn't got sufficient funds. --- .../Currency/SampleMoney/SampleMoneyModule.cs | 37 +++++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/Avatar') diff --git a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs index f038975..e31770f 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Currency/SampleMoney/SampleMoneyModule.cs @@ -266,11 +266,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney scene.SetObjectCapacity(ObjectCapacity); } - /// - /// New Client Event Handler - /// - /// - private void OnNewClient(IClientAPI client) + private void GetClientFunds(IClientAPI client) { // Here we check if we're in grid mode // I imagine that the 'check balance' @@ -343,6 +339,16 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney CheckExistAndRefreshFunds(client.AgentId); } + } + + /// + /// New Client Event Handler + /// + /// + private void OnNewClient(IClientAPI client) + { + GetClientFunds(client); + // Subscribe to Money messages client.OnEconomyDataRequest += EconomyDataRequestHandler; client.OnMoneyBalanceRequest += SendMoneyBalance; @@ -1525,6 +1531,27 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Currency.SampleMoney DeadAvatar.Scene.TeleportClientHome(DeadAvatar.UUID, DeadAvatar.ControllingClient); } + public int GetBalance(IClientAPI client) + { + GetClientFunds(client); + + lock(m_KnownClientFunds) + { + if (!m_KnownClientFunds.ContainsKey(client.AgentId)) + return 0; + + return m_KnownClientFunds[client.AgentId]; + } + } + + public bool UploadCovered(IClientAPI client) + { + if (GetBalance(client) < PriceUpload) + return false; + + return true; + } + #endregion } -- cgit v1.1