Events and delegate functions †[edit]
- 略号
- MM -> Money Module, MS -> Money Server, VW -> Viewer
- RS -> Region(Robust) Server, US -> User(Robust) Server, SC -> External Script
- OpenSim では IClientAPI.cs の event は EventManager からアクセス可
MoneyTransferRequest †[edit]
- 他のアバターへの直接的な支払い,ギフト (Gift: 5001)
- event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs)
MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
- オブジェクトを経由した,他のアバターへの間接的な支払い (PayObject: 5008)
- LSL の money イベントが発生する
MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
EconomyDataRequest †[edit]
- event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs)
MoneyBalanceRequest †[edit]
- event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs)
ParcelBuy †[edit]
- event ParcelBuy OnParcelBuy; (IClientAPI.cs)
ParcelBuyPass †[edit]
- event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs)
RequestPayPrice †[edit]
- event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs)
OnObjectBuy †[edit]
- オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008)
- event ObjectBuy OnObjectBuy; (IClientAPI.cs)
MM.OnObjectBuy() -> MM.BuyObject()
-> MM.Transfer() => XML RPC to MS ("TransferMoney")
- BuyObject(): OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
BuyObjectInventory †[edit]
- event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs)
MoneyTransferEvent †[edit]
- event MoneyTransferEvent OnMoneyTransfer; (EventManager.cs)
- event LandBuy OnValidateLandBuy; (EventManager.cs)
- event LandBuy OnLandBuy; (EventManager.cs)
Calling Sequence of Functions †[edit]
llGiveMoney() †[edit]
MM.ObjectGiveMoney() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
-> MM.ForceTransferMoney() => XML RPC to MS ("ForceTransferMoney")
Buy Money from System †[edit]
1. VW => XML RPC to helper SC ("getCurrencyQuote") => Response to VW
2. VW => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS
=> Response to VW
Buy Land †[edit]
1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW
2. MM.OnValidateLandBuy event -> MM.ValidateLandBuy()
3. MM.OnLandBuy event -> MM.processLandBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
2. VW => XML RPC to helper SC ("buyLandPrep") => SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS
=> Response to VW
Upload Inventory †[edit]
1. event -> RS.NewAgentInventoryRequest() -> MM.UploadCovered()
2. event -> RS.AddUploadedInventoryItem() -> MM.ApplyUploadCharge()
- OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
- NewAgentInventoryRequest() --> UploadCovered()
- UploadCompleteHandler() -->
- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs:AddUploadedInventoryItem() --> ApplyUploadCharge()
OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs
NewAgentInventoryRequest() --> UploadCovered()
OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
HandleUDPUploadRequest() --> UploadCovered()
Create Group †[edit]
event -> CreateGroup() -> MM.AmountCharge()
-> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge")
- OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs: CreateGroup()
XML RPC (from MoneyServer): †[edit]
XML RPC from MS ("OnMoneyTransfered") => MM.OnMoneyTransferedHandler() -> money() event
XML RPC from MS ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW
XML RPC (from external script) †[edit]
XML RPC from SC ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW
XML RPC from SC ("GetBalance") => MM.GetBalanceHandler() => XML RPC to MS ("GetBalance")
=> Response to SC
XML RPC from SC ("UserAlert") => MM.UserAlertHandler() => Message to VW
- SC.AddBankerMoney: Transaction Type is BuyMoney (5010)
- SC.SendMoney: Transaction Type is ReferBonus (5003)
XML RPC from SC ("AddBankerMoney") => MM.AddBankerMoneyHandler() -> MM.AddBankerMoney() => XML RPC to MS ("AddBankerMoney") => MS.handleAddBankerMoney()
XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney")