diff options
author | UbitUmarov | 2017-07-26 19:00:49 +0100 |
---|---|---|
committer | UbitUmarov | 2017-07-26 19:01:11 +0100 |
commit | 0bbe7bab7bb60c39b0defeff173287fc66430c26 (patch) | |
tree | a62addfa06dad2071c9a097b87620f30528fd646 | |
parent | add comments to make that more clear (diff) | |
download | opensim-SC_OLD-0bbe7bab7bb60c39b0defeff173287fc66430c26.zip opensim-SC_OLD-0bbe7bab7bb60c39b0defeff173287fc66430c26.tar.gz opensim-SC_OLD-0bbe7bab7bb60c39b0defeff173287fc66430c26.tar.bz2 opensim-SC_OLD-0bbe7bab7bb60c39b0defeff173287fc66430c26.tar.xz |
add new funtion bool MoveMoney(UUID fromUser, UUID toUser, int amount, MoneyTransactionType type, string text). this should be called async allowing time for money module to process it. If returns true, the transation did sucess, so if its use was to pay something, the payed item/service must be provided without fail, otherwise another method is needed so a refund is possible
-rw-r--r-- | OpenSim/Framework/IMoneyModule.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/OpenSim/Framework/IMoneyModule.cs b/OpenSim/Framework/IMoneyModule.cs index be45438..c72c742 100644 --- a/OpenSim/Framework/IMoneyModule.cs +++ b/OpenSim/Framework/IMoneyModule.cs | |||
@@ -41,6 +41,7 @@ namespace OpenSim.Framework | |||
41 | void ApplyCharge(UUID agentID, int amount, MoneyTransactionType type, string extraData = ""); | 41 | void ApplyCharge(UUID agentID, int amount, MoneyTransactionType type, string extraData = ""); |
42 | void ApplyUploadCharge(UUID agentID, int amount, string text); | 42 | void ApplyUploadCharge(UUID agentID, int amount, string text); |
43 | void MoveMoney(UUID fromUser, UUID toUser, int amount, string text); | 43 | void MoveMoney(UUID fromUser, UUID toUser, int amount, string text); |
44 | bool MoveMoney(UUID fromUser, UUID toUser, int amount, MoneyTransactionType type, string text); | ||
44 | 45 | ||
45 | int UploadCharge { get; } | 46 | int UploadCharge { get; } |
46 | int GroupCreationCharge { get; } | 47 | int GroupCreationCharge { get; } |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index e0152a3..1fc4609 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -617,12 +617,15 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
617 | return; | 617 | return; |
618 | } | 618 | } |
619 | 619 | ||
620 | mm.MoveMoney(remote_client.AgentId, ldata.OwnerID, cost, String.Format("Parcel '{0}' pass sell",ldata.Name)); | 620 | string regionName = m_scene.RegionInfo.RegionName; |
621 | // lets try older method | 621 | string payDescription = String.Format("Parcel '{0}' at region '{1} {2:0.###} hours access pass", ldata.Name, regionName, ldata.PassHours); |
622 | // EventManager.MoneyTransferArgs args = new EventManager.MoneyTransferArgs(remote_client.AgentId, ldata.OwnerID, | 622 | |
623 | // cost,(int)MoneyTransactionType.LandPassSale , String.Format("Parcel '{0}' pass sell",ldata.Name)); | 623 | if(!mm.MoveMoney(remote_client.AgentId, ldata.OwnerID, cost,MoneyTransactionType.LandPassSale, payDescription)) |
624 | { | ||
625 | remote_client.SendAgentAlertMessage("Sorry pass payment processing failed, please try again later", true); | ||
626 | return; | ||
627 | } | ||
624 | 628 | ||
625 | // m_scene.EventManager.TriggerMoneyTransfer(this, args); | ||
626 | if (idx != -1) | 629 | if (idx != -1) |
627 | ldata.ParcelAccessList.RemoveAt(idx); | 630 | ldata.ParcelAccessList.RemoveAt(idx); |
628 | ldata.ParcelAccessList.Add(entry); | 631 | ldata.ParcelAccessList.Add(entry); |
diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs index 47edeb9..3666c3f 100644 --- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs +++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs | |||
@@ -844,9 +844,14 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
844 | module.BuyObject(remoteClient, categoryID, localID, saleType, salePrice); | 844 | module.BuyObject(remoteClient, categoryID, localID, saleType, salePrice); |
845 | } | 845 | } |
846 | 846 | ||
847 | public void MoveMoney(UUID fromAgentID, UUID toAgentID, int amount, string text) | 847 | public void MoveMoney(UUID fromUser, UUID toUser, int amount, string text) |
848 | { | 848 | { |
849 | } | 849 | } |
850 | |||
851 | public bool MoveMoney(UUID fromUser, UUID toUser, int amount, MoneyTransactionType type, string text) | ||
852 | { | ||
853 | return true; | ||
854 | } | ||
850 | } | 855 | } |
851 | 856 | ||
852 | public enum TransactionType : int | 857 | public enum TransactionType : int |