diff options
Diffstat (limited to 'OpenSim/Region')
14 files changed, 649 insertions, 649 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index b0ca496..2094578 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -249,7 +249,7 @@ namespace OpenSim | |||
249 | config.Set("enabled", "false"); | 249 | config.Set("enabled", "false"); |
250 | } | 250 | } |
251 | 251 | ||
252 | if (DefaultConfig.Configs["Voice"] == null) | 252 | if (DefaultConfig.Configs["Voice"] == null) |
253 | DefaultConfig.AddConfig("Voice"); | 253 | DefaultConfig.AddConfig("Voice"); |
254 | config = DefaultConfig.Configs["Voice"]; | 254 | config = DefaultConfig.Configs["Voice"]; |
255 | if (config != null) | 255 | if (config != null) |
@@ -522,8 +522,8 @@ namespace OpenSim | |||
522 | m_log.Info("[MODULES]: Loading Region's modules"); | 522 | m_log.Info("[MODULES]: Loading Region's modules"); |
523 | 523 | ||
524 | List<IRegionModule> modules = m_moduleLoader.PickupModules(scene, "."); | 524 | List<IRegionModule> modules = m_moduleLoader.PickupModules(scene, "."); |
525 | // This needs to be ahead of the script engine load, so the | 525 | // This needs to be ahead of the script engine load, so the |
526 | // script module can pick up events exposed by a module | 526 | // script module can pick up events exposed by a module |
527 | m_moduleLoader.InitialiseSharedModules(scene); | 527 | m_moduleLoader.InitialiseSharedModules(scene); |
528 | 528 | ||
529 | //m_moduleLoader.PickupModules(scene, "ScriptEngines"); | 529 | //m_moduleLoader.PickupModules(scene, "ScriptEngines"); |
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 0a6431d..5b9bfdb 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -91,7 +91,7 @@ namespace OpenSim.Region.ClientStack | |||
91 | private readonly uint m_circuitCode; | 91 | private readonly uint m_circuitCode; |
92 | private int m_moneyBalance; | 92 | private int m_moneyBalance; |
93 | 93 | ||
94 | private int m_animationSequenceNumber = 1; | 94 | private int m_animationSequenceNumber = 1; |
95 | 95 | ||
96 | private byte[] m_channelVersion = Helpers.StringToField("OpenSimulator 0.5"); // Dummy value needed by libSL | 96 | private byte[] m_channelVersion = Helpers.StringToField("OpenSimulator 0.5"); // Dummy value needed by libSL |
97 | 97 | ||
@@ -233,8 +233,8 @@ namespace OpenSim.Region.ClientStack | |||
233 | private RequestAsset handlerRequestAsset = null; // OnRequestAsset; | 233 | private RequestAsset handlerRequestAsset = null; // OnRequestAsset; |
234 | private UUIDNameRequest handlerTeleportHomeRequest = null; | 234 | private UUIDNameRequest handlerTeleportHomeRequest = null; |
235 | 235 | ||
236 | private ScriptAnswer handlerScriptAnswer = null; | 236 | private ScriptAnswer handlerScriptAnswer = null; |
237 | private RequestPayPrice handlerRequestPayPrice = null; | 237 | private RequestPayPrice handlerRequestPayPrice = null; |
238 | private ObjectDeselect handlerObjectDetach = null; | 238 | private ObjectDeselect handlerObjectDetach = null; |
239 | 239 | ||
240 | /* Properties */ | 240 | /* Properties */ |
@@ -307,10 +307,10 @@ namespace OpenSim.Region.ClientStack | |||
307 | get { return m_moneyBalance; } | 307 | get { return m_moneyBalance; } |
308 | } | 308 | } |
309 | 309 | ||
310 | public int NextAnimationSequenceNumber | 310 | public int NextAnimationSequenceNumber |
311 | { | 311 | { |
312 | get { return m_animationSequenceNumber++; } | 312 | get { return m_animationSequenceNumber++; } |
313 | } | 313 | } |
314 | 314 | ||
315 | /* METHODS */ | 315 | /* METHODS */ |
316 | 316 | ||
@@ -793,8 +793,8 @@ namespace OpenSim.Region.ClientStack | |||
793 | 793 | ||
794 | public event UUIDNameRequest OnTeleportHomeRequest; | 794 | public event UUIDNameRequest OnTeleportHomeRequest; |
795 | 795 | ||
796 | public event ScriptAnswer OnScriptAnswer; | 796 | public event ScriptAnswer OnScriptAnswer; |
797 | public event RequestPayPrice OnRequestPayPrice; | 797 | public event RequestPayPrice OnRequestPayPrice; |
798 | 798 | ||
799 | #region Scene/Avatar to Client | 799 | #region Scene/Avatar to Client |
800 | 800 | ||
@@ -1171,28 +1171,28 @@ namespace OpenSim.Region.ClientStack | |||
1171 | OutPacket(money, ThrottleOutPacketType.Task); | 1171 | OutPacket(money, ThrottleOutPacketType.Task); |
1172 | } | 1172 | } |
1173 | 1173 | ||
1174 | public void SendPayPrice(LLUUID objectID, int[] payPrice) | 1174 | public void SendPayPrice(LLUUID objectID, int[] payPrice) |
1175 | { | 1175 | { |
1176 | if(payPrice[0] == 0 && | 1176 | if(payPrice[0] == 0 && |
1177 | payPrice[1] == 0 && | 1177 | payPrice[1] == 0 && |
1178 | payPrice[2] == 0 && | 1178 | payPrice[2] == 0 && |
1179 | payPrice[3] == 0 && | 1179 | payPrice[3] == 0 && |
1180 | payPrice[4] == 0) | 1180 | payPrice[4] == 0) |
1181 | return; | 1181 | return; |
1182 | 1182 | ||
1183 | PayPriceReplyPacket payPriceReply = (PayPriceReplyPacket)PacketPool.Instance.GetPacket(PacketType.PayPriceReply); | 1183 | PayPriceReplyPacket payPriceReply = (PayPriceReplyPacket)PacketPool.Instance.GetPacket(PacketType.PayPriceReply); |
1184 | payPriceReply.ObjectData.ObjectID = objectID; | 1184 | payPriceReply.ObjectData.ObjectID = objectID; |
1185 | payPriceReply.ObjectData.DefaultPayPrice = payPrice[0]; | 1185 | payPriceReply.ObjectData.DefaultPayPrice = payPrice[0]; |
1186 | 1186 | ||
1187 | payPriceReply.ButtonData=new PayPriceReplyPacket.ButtonDataBlock[4]; | 1187 | payPriceReply.ButtonData=new PayPriceReplyPacket.ButtonDataBlock[4]; |
1188 | payPriceReply.ButtonData[0]=new PayPriceReplyPacket.ButtonDataBlock(); | 1188 | payPriceReply.ButtonData[0]=new PayPriceReplyPacket.ButtonDataBlock(); |
1189 | payPriceReply.ButtonData[0].PayButton = payPrice[1]; | 1189 | payPriceReply.ButtonData[0].PayButton = payPrice[1]; |
1190 | payPriceReply.ButtonData[1]=new PayPriceReplyPacket.ButtonDataBlock(); | 1190 | payPriceReply.ButtonData[1]=new PayPriceReplyPacket.ButtonDataBlock(); |
1191 | payPriceReply.ButtonData[1].PayButton = payPrice[2]; | 1191 | payPriceReply.ButtonData[1].PayButton = payPrice[2]; |
1192 | payPriceReply.ButtonData[2]=new PayPriceReplyPacket.ButtonDataBlock(); | 1192 | payPriceReply.ButtonData[2]=new PayPriceReplyPacket.ButtonDataBlock(); |
1193 | payPriceReply.ButtonData[2].PayButton = payPrice[3]; | 1193 | payPriceReply.ButtonData[2].PayButton = payPrice[3]; |
1194 | payPriceReply.ButtonData[3]=new PayPriceReplyPacket.ButtonDataBlock(); | 1194 | payPriceReply.ButtonData[3]=new PayPriceReplyPacket.ButtonDataBlock(); |
1195 | payPriceReply.ButtonData[3].PayButton = payPrice[4]; | 1195 | payPriceReply.ButtonData[3].PayButton = payPrice[4]; |
1196 | 1196 | ||
1197 | OutPacket(payPriceReply, ThrottleOutPacketType.Task); | 1197 | OutPacket(payPriceReply, ThrottleOutPacketType.Task); |
1198 | } | 1198 | } |
@@ -2530,8 +2530,8 @@ namespace OpenSim.Region.ClientStack | |||
2530 | return true; | 2530 | return true; |
2531 | } | 2531 | } |
2532 | 2532 | ||
2533 | public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question) | 2533 | public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question) |
2534 | { | 2534 | { |
2535 | ScriptQuestionPacket scriptQuestion = (ScriptQuestionPacket)PacketPool.Instance.GetPacket(PacketType.ScriptQuestion); | 2535 | ScriptQuestionPacket scriptQuestion = (ScriptQuestionPacket)PacketPool.Instance.GetPacket(PacketType.ScriptQuestion); |
2536 | scriptQuestion.Data = new ScriptQuestionPacket.DataBlock(); | 2536 | scriptQuestion.Data = new ScriptQuestionPacket.DataBlock(); |
2537 | // TODO: don't create new blocks if recycling an old packet | 2537 | // TODO: don't create new blocks if recycling an old packet |
@@ -2542,7 +2542,7 @@ namespace OpenSim.Region.ClientStack | |||
2542 | scriptQuestion.Data.ObjectOwner = Helpers.StringToField(ownerName); | 2542 | scriptQuestion.Data.ObjectOwner = Helpers.StringToField(ownerName); |
2543 | 2543 | ||
2544 | OutPacket(scriptQuestion, ThrottleOutPacketType.Task); | 2544 | OutPacket(scriptQuestion, ThrottleOutPacketType.Task); |
2545 | } | 2545 | } |
2546 | 2546 | ||
2547 | protected virtual bool Logout(IClientAPI client, Packet packet) | 2547 | protected virtual bool Logout(IClientAPI client, Packet packet) |
2548 | { | 2548 | { |
@@ -3915,14 +3915,14 @@ namespace OpenSim.Region.ClientStack | |||
3915 | } | 3915 | } |
3916 | break; | 3916 | break; |
3917 | 3917 | ||
3918 | case PacketType.ScriptAnswerYes: | 3918 | case PacketType.ScriptAnswerYes: |
3919 | ScriptAnswerYesPacket scriptAnswer = (ScriptAnswerYesPacket)Pack; | 3919 | ScriptAnswerYesPacket scriptAnswer = (ScriptAnswerYesPacket)Pack; |
3920 | 3920 | ||
3921 | handlerScriptAnswer = OnScriptAnswer; | 3921 | handlerScriptAnswer = OnScriptAnswer; |
3922 | if (handlerScriptAnswer != null) | 3922 | if (handlerScriptAnswer != null) |
3923 | { | 3923 | { |
3924 | handlerScriptAnswer(this, scriptAnswer.Data.TaskID, scriptAnswer.Data.ItemID, scriptAnswer.Data.Questions); | 3924 | handlerScriptAnswer(this, scriptAnswer.Data.TaskID, scriptAnswer.Data.ItemID, scriptAnswer.Data.Questions); |
3925 | } | 3925 | } |
3926 | break; | 3926 | break; |
3927 | 3927 | ||
3928 | #endregion | 3928 | #endregion |
@@ -4613,14 +4613,14 @@ namespace OpenSim.Region.ClientStack | |||
4613 | // TODO: handle this packet | 4613 | // TODO: handle this packet |
4614 | //m_log.Warn("[CLIENT]: unhandled EconomyDataRequest packet"); | 4614 | //m_log.Warn("[CLIENT]: unhandled EconomyDataRequest packet"); |
4615 | break; | 4615 | break; |
4616 | case PacketType.RequestPayPrice: | 4616 | case PacketType.RequestPayPrice: |
4617 | RequestPayPricePacket requestPayPricePacket = (RequestPayPricePacket)Pack; | 4617 | RequestPayPricePacket requestPayPricePacket = (RequestPayPricePacket)Pack; |
4618 | handlerRequestPayPrice = OnRequestPayPrice; | 4618 | handlerRequestPayPrice = OnRequestPayPrice; |
4619 | if (handlerRequestPayPrice != null) | 4619 | if (handlerRequestPayPrice != null) |
4620 | { | 4620 | { |
4621 | handlerRequestPayPrice(this, requestPayPricePacket.ObjectData.ObjectID); | 4621 | handlerRequestPayPrice(this, requestPayPricePacket.ObjectData.ObjectID); |
4622 | } | 4622 | } |
4623 | break; | 4623 | break; |
4624 | 4624 | ||
4625 | #endregion | 4625 | #endregion |
4626 | 4626 | ||
diff --git a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs index 682763b..f3b50ae 100644 --- a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs +++ b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Region.DataSnapshot | |||
69 | #region IRegionModule | 69 | #region IRegionModule |
70 | public void Close() | 70 | public void Close() |
71 | { | 71 | { |
72 | 72 | ||
73 | } | 73 | } |
74 | 74 | ||
75 | public void Initialise(Scene scene, IConfigSource config) | 75 | public void Initialise(Scene scene, IConfigSource config) |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.DataSnapshot | |||
81 | m_configLoaded = true; | 81 | m_configLoaded = true; |
82 | m_log.Info("[DATASNAPSHOT]: Loading configuration"); | 82 | m_log.Info("[DATASNAPSHOT]: Loading configuration"); |
83 | //Read from the config for options | 83 | //Read from the config for options |
84 | lock (m_syncInit) { | 84 | lock (m_syncInit) { |
85 | try { | 85 | try { |
86 | m_enabled = config.Configs["DataSnapshot"].GetBoolean("index_sims", m_enabled); | 86 | m_enabled = config.Configs["DataSnapshot"].GetBoolean("index_sims", m_enabled); |
87 | if (config.Configs["Startup"].GetBoolean("gridmode", true)) | 87 | if (config.Configs["Startup"].GetBoolean("gridmode", true)) |
@@ -152,7 +152,7 @@ namespace OpenSim.Region.DataSnapshot | |||
152 | 152 | ||
153 | public string Name | 153 | public string Name |
154 | { | 154 | { |
155 | get { return "External Data Generator"; } | 155 | get { return "External Data Generator"; } |
156 | } | 156 | } |
157 | 157 | ||
158 | public void PostInitialise() | 158 | public void PostInitialise() |
diff --git a/OpenSim/Region/Environment/Modules/BetaGridLikeMoneyModule.cs b/OpenSim/Region/Environment/Modules/BetaGridLikeMoneyModule.cs index bd0660f..34f8238 100644 --- a/OpenSim/Region/Environment/Modules/BetaGridLikeMoneyModule.cs +++ b/OpenSim/Region/Environment/Modules/BetaGridLikeMoneyModule.cs | |||
@@ -54,20 +54,20 @@ namespace OpenSim.Region.Environment.Modules | |||
54 | /// svn co https://opensimwiredux.svn.sourceforge.net/svnroot/opensimwiredux | 54 | /// svn co https://opensimwiredux.svn.sourceforge.net/svnroot/opensimwiredux |
55 | /// </summary> | 55 | /// </summary> |
56 | 56 | ||
57 | public delegate void ObjectPaid(LLUUID objectID, LLUUID agentID, int amount); | 57 | public delegate void ObjectPaid(LLUUID objectID, LLUUID agentID, int amount); |
58 | 58 | ||
59 | public interface IMoneyModule : IRegionModule | 59 | public interface IMoneyModule : IRegionModule |
60 | { | 60 | { |
61 | bool ObjectGiveMoney(LLUUID objectID, LLUUID fromID, LLUUID toID, int amount); | 61 | bool ObjectGiveMoney(LLUUID objectID, LLUUID fromID, LLUUID toID, int amount); |
62 | 62 | ||
63 | event ObjectPaid OnObjectPaid; | 63 | event ObjectPaid OnObjectPaid; |
64 | } | 64 | } |
65 | 65 | ||
66 | public class BetaGridLikeMoneyModule: IMoneyModule | 66 | public class BetaGridLikeMoneyModule: IMoneyModule |
67 | { | 67 | { |
68 | public event ObjectPaid OnObjectPaid; | 68 | public event ObjectPaid OnObjectPaid; |
69 | 69 | ||
70 | private ObjectPaid handerOnObjectPaid; | 70 | private ObjectPaid handerOnObjectPaid; |
71 | 71 | ||
72 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 72 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
73 | 73 | ||
@@ -134,7 +134,7 @@ namespace OpenSim.Region.Environment.Modules | |||
134 | IConfig startupConfig = m_gConfig.Configs["Startup"]; | 134 | IConfig startupConfig = m_gConfig.Configs["Startup"]; |
135 | IConfig economyConfig = m_gConfig.Configs["Economy"]; | 135 | IConfig economyConfig = m_gConfig.Configs["Economy"]; |
136 | 136 | ||
137 | scene.RegisterModuleInterface<IMoneyModule>(this); | 137 | scene.RegisterModuleInterface<IMoneyModule>(this); |
138 | 138 | ||
139 | ReadConfigAndPopulate(scene, startupConfig, "Startup"); | 139 | ReadConfigAndPopulate(scene, startupConfig, "Startup"); |
140 | ReadConfigAndPopulate(scene, economyConfig, "Economy"); | 140 | ReadConfigAndPopulate(scene, economyConfig, "Economy"); |
@@ -320,7 +320,7 @@ namespace OpenSim.Region.Environment.Modules | |||
320 | // Subscribe to Money messages | 320 | // Subscribe to Money messages |
321 | client.OnEconomyDataRequest += EconomyDataRequestHandler; | 321 | client.OnEconomyDataRequest += EconomyDataRequestHandler; |
322 | client.OnMoneyBalanceRequest += SendMoneyBalance; | 322 | client.OnMoneyBalanceRequest += SendMoneyBalance; |
323 | client.OnRequestPayPrice += requestPayPrice; | 323 | client.OnRequestPayPrice += requestPayPrice; |
324 | client.OnLogout += ClientClosed; | 324 | client.OnLogout += ClientClosed; |
325 | 325 | ||
326 | 326 | ||
@@ -328,20 +328,20 @@ namespace OpenSim.Region.Environment.Modules | |||
328 | 328 | ||
329 | #region event Handlers | 329 | #region event Handlers |
330 | 330 | ||
331 | public void requestPayPrice(IClientAPI client, LLUUID objectID) | 331 | public void requestPayPrice(IClientAPI client, LLUUID objectID) |
332 | { | 332 | { |
333 | Scene scene=LocateSceneClientIn(client.AgentId); | 333 | Scene scene=LocateSceneClientIn(client.AgentId); |
334 | if(scene == null) | 334 | if(scene == null) |
335 | return; | 335 | return; |
336 | 336 | ||
337 | SceneObjectPart task=scene.GetSceneObjectPart(objectID); | 337 | SceneObjectPart task=scene.GetSceneObjectPart(objectID); |
338 | if(task == null) | 338 | if(task == null) |
339 | return; | 339 | return; |
340 | SceneObjectGroup group=task.ParentGroup; | 340 | SceneObjectGroup group=task.ParentGroup; |
341 | SceneObjectPart root=group.RootPart; | 341 | SceneObjectPart root=group.RootPart; |
342 | 342 | ||
343 | client.SendPayPrice(objectID, root.PayPrice); | 343 | client.SendPayPrice(objectID, root.PayPrice); |
344 | } | 344 | } |
345 | 345 | ||
346 | /// <summary> | 346 | /// <summary> |
347 | /// When the client closes the connection we remove their accounting info from memory to free up resources. | 347 | /// When the client closes the connection we remove their accounting info from memory to free up resources. |
@@ -380,52 +380,52 @@ namespace OpenSim.Region.Environment.Modules | |||
380 | 380 | ||
381 | private void ValidateLandBuy (Object osender, EventManager.LandBuyArgs e) | 381 | private void ValidateLandBuy (Object osender, EventManager.LandBuyArgs e) |
382 | { | 382 | { |
383 | if (m_MoneyAddress.Length == 0) | 383 | if (m_MoneyAddress.Length == 0) |
384 | { | 384 | { |
385 | lock (m_KnownClientFunds) | 385 | lock (m_KnownClientFunds) |
386 | { | 386 | { |
387 | if (m_KnownClientFunds.ContainsKey(e.agentId)) | 387 | if (m_KnownClientFunds.ContainsKey(e.agentId)) |
388 | { | 388 | { |
389 | // Does the sender have enough funds to give? | 389 | // Does the sender have enough funds to give? |
390 | if (m_KnownClientFunds[e.agentId] >= e.parcelPrice) | 390 | if (m_KnownClientFunds[e.agentId] >= e.parcelPrice) |
391 | { | 391 | { |
392 | lock(e) | 392 | lock(e) |
393 | { | 393 | { |
394 | e.economyValidated=true; | 394 | e.economyValidated=true; |
395 | } | 395 | } |
396 | } | 396 | } |
397 | } | 397 | } |
398 | } | 398 | } |
399 | } | 399 | } |
400 | else | 400 | else |
401 | { | 401 | { |
402 | if(GetRemoteBalance(e.agentId) >= e.parcelPrice) | 402 | if(GetRemoteBalance(e.agentId) >= e.parcelPrice) |
403 | { | 403 | { |
404 | lock(e) | 404 | lock(e) |
405 | { | 405 | { |
406 | e.economyValidated=true; | 406 | e.economyValidated=true; |
407 | } | 407 | } |
408 | } | 408 | } |
409 | } | 409 | } |
410 | } | 410 | } |
411 | 411 | ||
412 | private void processLandBuy(Object osender, EventManager.LandBuyArgs e) | 412 | private void processLandBuy(Object osender, EventManager.LandBuyArgs e) |
413 | { | 413 | { |
414 | lock(e) | 414 | lock(e) |
415 | { | 415 | { |
416 | if(e.economyValidated == true && e.transactionID == 0) | 416 | if(e.economyValidated == true && e.transactionID == 0) |
417 | { | 417 | { |
418 | e.transactionID=Util.UnixTimeSinceEpoch(); | 418 | e.transactionID=Util.UnixTimeSinceEpoch(); |
419 | 419 | ||
420 | if(doMoneyTransfer(e.agentId, e.parcelOwnerID, e.parcelPrice, 0, "Land purchase")) | 420 | if(doMoneyTransfer(e.agentId, e.parcelOwnerID, e.parcelPrice, 0, "Land purchase")) |
421 | { | 421 | { |
422 | lock (e) | 422 | lock (e) |
423 | { | 423 | { |
424 | e.amountDebited = e.parcelPrice; | 424 | e.amountDebited = e.parcelPrice; |
425 | } | 425 | } |
426 | } | 426 | } |
427 | } | 427 | } |
428 | } | 428 | } |
429 | } | 429 | } |
430 | 430 | ||
431 | /// <summary> | 431 | /// <summary> |
@@ -438,47 +438,47 @@ namespace OpenSim.Region.Environment.Modules | |||
438 | IClientAPI sender = null; | 438 | IClientAPI sender = null; |
439 | IClientAPI receiver = null; | 439 | IClientAPI receiver = null; |
440 | 440 | ||
441 | if(m_MoneyAddress.Length > 0) // Handled on server | 441 | if(m_MoneyAddress.Length > 0) // Handled on server |
442 | e.description=String.Empty; | 442 | e.description=String.Empty; |
443 | 443 | ||
444 | if(e.transactiontype == 5008) // Object gets paid | 444 | if(e.transactiontype == 5008) // Object gets paid |
445 | { | 445 | { |
446 | sender = LocateClientObject(e.sender); | 446 | sender = LocateClientObject(e.sender); |
447 | if (sender != null) | 447 | if (sender != null) |
448 | { | 448 | { |
449 | SceneObjectPart part=findPrim(e.receiver); | 449 | SceneObjectPart part=findPrim(e.receiver); |
450 | if(part == null) | 450 | if(part == null) |
451 | return; | 451 | return; |
452 | 452 | ||
453 | string name=resolveAgentName(part.OwnerID); | 453 | string name=resolveAgentName(part.OwnerID); |
454 | if(name == String.Empty) | 454 | if(name == String.Empty) |
455 | name="(hippos)"; | 455 | name="(hippos)"; |
456 | 456 | ||
457 | receiver = LocateClientObject(part.OwnerID); | 457 | receiver = LocateClientObject(part.OwnerID); |
458 | 458 | ||
459 | string description=String.Format("Paid {0} via object {1}", name, e.description); | 459 | string description=String.Format("Paid {0} via object {1}", name, e.description); |
460 | bool transactionresult = doMoneyTransfer(e.sender, part.OwnerID, e.amount, e.transactiontype, description); | 460 | bool transactionresult = doMoneyTransfer(e.sender, part.OwnerID, e.amount, e.transactiontype, description); |
461 | 461 | ||
462 | if(transactionresult) | 462 | if(transactionresult) |
463 | { | 463 | { |
464 | ObjectPaid handlerOnObjectPaid = OnObjectPaid; | 464 | ObjectPaid handlerOnObjectPaid = OnObjectPaid; |
465 | if(handlerOnObjectPaid != null) | 465 | if(handlerOnObjectPaid != null) |
466 | { | 466 | { |
467 | handlerOnObjectPaid(e.receiver, e.sender, e.amount); | 467 | handlerOnObjectPaid(e.receiver, e.sender, e.amount); |
468 | } | 468 | } |
469 | } | 469 | } |
470 | 470 | ||
471 | if (e.sender != e.receiver) | 471 | if (e.sender != e.receiver) |
472 | { | 472 | { |
473 | sender.SendMoneyBalance(LLUUID.Random(), transactionresult, Helpers.StringToField(e.description), GetFundsForAgentID(e.sender)); | 473 | sender.SendMoneyBalance(LLUUID.Random(), transactionresult, Helpers.StringToField(e.description), GetFundsForAgentID(e.sender)); |
474 | } | 474 | } |
475 | if(receiver != null) | 475 | if(receiver != null) |
476 | { | 476 | { |
477 | receiver.SendMoneyBalance(LLUUID.Random(), transactionresult, Helpers.StringToField(e.description), GetFundsForAgentID(part.OwnerID)); | 477 | receiver.SendMoneyBalance(LLUUID.Random(), transactionresult, Helpers.StringToField(e.description), GetFundsForAgentID(part.OwnerID)); |
478 | } | 478 | } |
479 | } | 479 | } |
480 | return; | 480 | return; |
481 | } | 481 | } |
482 | 482 | ||
483 | sender = LocateClientObject(e.sender); | 483 | sender = LocateClientObject(e.sender); |
484 | if (sender != null) | 484 | if (sender != null) |
@@ -652,45 +652,45 @@ namespace OpenSim.Region.Environment.Modules | |||
652 | { | 652 | { |
653 | // If we don't know about the sender, then the sender can't | 653 | // If we don't know about the sender, then the sender can't |
654 | // actually be here and therefore this is likely fraud or outdated. | 654 | // actually be here and therefore this is likely fraud or outdated. |
655 | if (m_MoneyAddress.Length == 0) | 655 | if (m_MoneyAddress.Length == 0) |
656 | { | 656 | { |
657 | if (m_KnownClientFunds.ContainsKey(Sender)) | 657 | if (m_KnownClientFunds.ContainsKey(Sender)) |
658 | { | 658 | { |
659 | // Does the sender have enough funds to give? | 659 | // Does the sender have enough funds to give? |
660 | if (m_KnownClientFunds[Sender] >= amount) | 660 | if (m_KnownClientFunds[Sender] >= amount) |
661 | { | 661 | { |
662 | // Subtract the funds from the senders account | 662 | // Subtract the funds from the senders account |
663 | m_KnownClientFunds[Sender] -= amount; | 663 | m_KnownClientFunds[Sender] -= amount; |
664 | 664 | ||
665 | // do we know about the receiver? | 665 | // do we know about the receiver? |
666 | if (!m_KnownClientFunds.ContainsKey(Receiver)) | 666 | if (!m_KnownClientFunds.ContainsKey(Receiver)) |
667 | { | 667 | { |
668 | // Make a record for them so they get the updated balance when they login | 668 | // Make a record for them so they get the updated balance when they login |
669 | CheckExistAndRefreshFunds(Receiver); | 669 | CheckExistAndRefreshFunds(Receiver); |
670 | } | 670 | } |
671 | if (m_enabled) | 671 | if (m_enabled) |
672 | { | 672 | { |
673 | //Add the amount to the Receiver's funds | 673 | //Add the amount to the Receiver's funds |
674 | m_KnownClientFunds[Receiver] += amount; | 674 | m_KnownClientFunds[Receiver] += amount; |
675 | result = true; | 675 | result = true; |
676 | } | 676 | } |
677 | } | 677 | } |
678 | else | 678 | else |
679 | { | 679 | { |
680 | // These below are redundant to make this clearer to read | 680 | // These below are redundant to make this clearer to read |
681 | result = false; | 681 | result = false; |
682 | } | 682 | } |
683 | } | 683 | } |
684 | else | 684 | else |
685 | { | 685 | { |
686 | result = false; | 686 | result = false; |
687 | } | 687 | } |
688 | } | 688 | } |
689 | else | 689 | else |
690 | { | 690 | { |
691 | result = TransferMoneyonMoneyServer(Sender, Receiver, amount, transactiontype, description); | 691 | result = TransferMoneyonMoneyServer(Sender, Receiver, amount, transactiontype, description); |
692 | } | 692 | } |
693 | } | 693 | } |
694 | } | 694 | } |
695 | return result; | 695 | return result; |
696 | } | 696 | } |
@@ -1003,50 +1003,50 @@ namespace OpenSim.Region.Environment.Modules | |||
1003 | return MoneyRespData; | 1003 | return MoneyRespData; |
1004 | } | 1004 | } |
1005 | 1005 | ||
1006 | private SceneObjectPart findPrim(LLUUID objectID) | 1006 | private SceneObjectPart findPrim(LLUUID objectID) |
1007 | { | 1007 | { |
1008 | lock (m_scenel) | 1008 | lock (m_scenel) |
1009 | { | 1009 | { |
1010 | foreach (Scene s in m_scenel.Values) | 1010 | foreach (Scene s in m_scenel.Values) |
1011 | { | 1011 | { |
1012 | SceneObjectPart part=s.GetSceneObjectPart(objectID); | 1012 | SceneObjectPart part=s.GetSceneObjectPart(objectID); |
1013 | if(part != null) | 1013 | if(part != null) |
1014 | { | 1014 | { |
1015 | return part; | 1015 | return part; |
1016 | } | 1016 | } |
1017 | } | 1017 | } |
1018 | } | ||
1019 | return null; | ||
1020 | } | ||
1021 | |||
1022 | private string resolveObjectName(LLUUID objectID) | ||
1023 | { | ||
1024 | SceneObjectPart part=findPrim(objectID); | ||
1025 | if(part != null) | ||
1026 | { | ||
1027 | return part.Name; | ||
1018 | } | 1028 | } |
1019 | return null; | 1029 | return String.Empty; |
1020 | } | 1030 | } |
1021 | 1031 | ||
1022 | private string resolveObjectName(LLUUID objectID) | 1032 | private string resolveAgentName(LLUUID agentID) |
1023 | { | ||
1024 | SceneObjectPart part=findPrim(objectID); | ||
1025 | if(part != null) | ||
1026 | { | ||
1027 | return part.Name; | ||
1028 | } | ||
1029 | return String.Empty; | ||
1030 | } | ||
1031 | |||
1032 | private string resolveAgentName(LLUUID agentID) | ||
1033 | { | 1033 | { |
1034 | // try avatar username surname | 1034 | // try avatar username surname |
1035 | Scene scene=GetRandomScene(); | 1035 | Scene scene=GetRandomScene(); |
1036 | UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(agentID); | 1036 | UserProfileData profile = scene.CommsManager.UserService.GetUserProfile(agentID); |
1037 | if (profile != null) | 1037 | if (profile != null) |
1038 | { | 1038 | { |
1039 | string avatarname = profile.FirstName + " " + profile.SurName; | 1039 | string avatarname = profile.FirstName + " " + profile.SurName; |
1040 | return avatarname; | 1040 | return avatarname; |
1041 | } | 1041 | } |
1042 | return String.Empty; | 1042 | return String.Empty; |
1043 | } | 1043 | } |
1044 | 1044 | ||
1045 | public bool ObjectGiveMoney(LLUUID objectID, LLUUID fromID, LLUUID toID, int amount) | 1045 | public bool ObjectGiveMoney(LLUUID objectID, LLUUID fromID, LLUUID toID, int amount) |
1046 | { | 1046 | { |
1047 | string description=String.Format("Object {0} pays {1}", resolveObjectName(objectID), resolveAgentName(toID)); | 1047 | string description=String.Format("Object {0} pays {1}", resolveObjectName(objectID), resolveAgentName(toID)); |
1048 | return doMoneyTransfer(fromID, toID, amount, 2, description); | 1048 | return doMoneyTransfer(fromID, toID, amount, 2, description); |
1049 | } | 1049 | } |
1050 | 1050 | ||
1051 | /// <summary> | 1051 | /// <summary> |
1052 | /// Informs the Money Grid Server of a transfer. | 1052 | /// Informs the Money Grid Server of a transfer. |
@@ -1134,63 +1134,63 @@ namespace OpenSim.Region.Environment.Modules | |||
1134 | 1134 | ||
1135 | } | 1135 | } |
1136 | 1136 | ||
1137 | public int GetRemoteBalance(LLUUID agentId) | 1137 | public int GetRemoteBalance(LLUUID agentId) |
1138 | { | 1138 | { |
1139 | int funds = 0; | 1139 | int funds = 0; |
1140 | 1140 | ||
1141 | IClientAPI aClient = LocateClientObject(agentId); | 1141 | IClientAPI aClient = LocateClientObject(agentId); |
1142 | if (aClient != null) | 1142 | if (aClient != null) |
1143 | { | 1143 | { |
1144 | Scene s = LocateSceneClientIn(agentId); | 1144 | Scene s = LocateSceneClientIn(agentId); |
1145 | if (s != null) | 1145 | if (s != null) |
1146 | { | 1146 | { |
1147 | if (m_MoneyAddress.Length > 0) | 1147 | if (m_MoneyAddress.Length > 0) |
1148 | { | 1148 | { |
1149 | Hashtable hbinfo = GetBalanceForUserFromMoneyServer(aClient.AgentId, aClient.SecureSessionId, s.RegionInfo.originRegionID.ToString(), s.RegionInfo.regionSecret); | 1149 | Hashtable hbinfo = GetBalanceForUserFromMoneyServer(aClient.AgentId, aClient.SecureSessionId, s.RegionInfo.originRegionID.ToString(), s.RegionInfo.regionSecret); |
1150 | if ((bool)hbinfo["success"] == true) | 1150 | if ((bool)hbinfo["success"] == true) |
1151 | { | 1151 | { |
1152 | try | 1152 | try |
1153 | { | 1153 | { |
1154 | funds = (Int32)hbinfo["funds"]; | 1154 | funds = (Int32)hbinfo["funds"]; |
1155 | } | 1155 | } |
1156 | catch (ArgumentException) | 1156 | catch (ArgumentException) |
1157 | { | 1157 | { |
1158 | } | 1158 | } |
1159 | catch (FormatException) | 1159 | catch (FormatException) |
1160 | { | 1160 | { |
1161 | } | 1161 | } |
1162 | catch (OverflowException) | 1162 | catch (OverflowException) |
1163 | { | 1163 | { |
1164 | m_log.ErrorFormat("[MONEY]: While getting the Currency for user {0}, the return funds overflowed.", agentId); | 1164 | m_log.ErrorFormat("[MONEY]: While getting the Currency for user {0}, the return funds overflowed.", agentId); |
1165 | aClient.SendAlertMessage("Unable to get your money balance, money operations will be unavailable"); | 1165 | aClient.SendAlertMessage("Unable to get your money balance, money operations will be unavailable"); |
1166 | } | 1166 | } |
1167 | catch (InvalidCastException) | 1167 | catch (InvalidCastException) |
1168 | { | 1168 | { |
1169 | funds = 0; | 1169 | funds = 0; |
1170 | } | 1170 | } |
1171 | 1171 | ||
1172 | } | 1172 | } |
1173 | else | 1173 | else |
1174 | { | 1174 | { |
1175 | m_log.WarnFormat("[MONEY]: Getting Money for user {0} failed with the following message:{1}", agentId, (string)hbinfo["errorMessage"]); | 1175 | m_log.WarnFormat("[MONEY]: Getting Money for user {0} failed with the following message:{1}", agentId, (string)hbinfo["errorMessage"]); |
1176 | aClient.SendAlertMessage((string)hbinfo["errorMessage"]); | 1176 | aClient.SendAlertMessage((string)hbinfo["errorMessage"]); |
1177 | } | 1177 | } |
1178 | } | 1178 | } |
1179 | 1179 | ||
1180 | SetLocalFundsForAgentID(agentId, funds); | 1180 | SetLocalFundsForAgentID(agentId, funds); |
1181 | SendMoneyBalance(aClient, agentId, aClient.SessionId, LLUUID.Zero); | 1181 | SendMoneyBalance(aClient, agentId, aClient.SessionId, LLUUID.Zero); |
1182 | } | 1182 | } |
1183 | else | 1183 | else |
1184 | { | 1184 | { |
1185 | m_log.Debug("[MONEY]: Got balance request update for agent that is here, but couldn't find which scene."); | 1185 | m_log.Debug("[MONEY]: Got balance request update for agent that is here, but couldn't find which scene."); |
1186 | } | 1186 | } |
1187 | } | 1187 | } |
1188 | else | 1188 | else |
1189 | { | 1189 | { |
1190 | m_log.Debug("[MONEY]: Got balance request update for agent that isn't here."); | 1190 | m_log.Debug("[MONEY]: Got balance request update for agent that isn't here."); |
1191 | } | 1191 | } |
1192 | return funds; | 1192 | return funds; |
1193 | } | 1193 | } |
1194 | 1194 | ||
1195 | public XmlRpcResponse GridMoneyUpdate(XmlRpcRequest request) | 1195 | public XmlRpcResponse GridMoneyUpdate(XmlRpcRequest request) |
1196 | { | 1196 | { |
@@ -1204,7 +1204,7 @@ namespace OpenSim.Region.Environment.Modules | |||
1204 | Helpers.TryParse((string)requestData["agentId"], out agentId); | 1204 | Helpers.TryParse((string)requestData["agentId"], out agentId); |
1205 | if (agentId != LLUUID.Zero) | 1205 | if (agentId != LLUUID.Zero) |
1206 | { | 1206 | { |
1207 | GetRemoteBalance(agentId); | 1207 | GetRemoteBalance(agentId); |
1208 | 1208 | ||
1209 | } | 1209 | } |
1210 | else | 1210 | else |
@@ -1228,7 +1228,7 @@ namespace OpenSim.Region.Environment.Modules | |||
1228 | /// XMLRPC handler to send alert message and sound to client | 1228 | /// XMLRPC handler to send alert message and sound to client |
1229 | /// </summary> | 1229 | /// </summary> |
1230 | public XmlRpcResponse UserAlert(XmlRpcRequest request) | 1230 | public XmlRpcResponse UserAlert(XmlRpcRequest request) |
1231 | { | 1231 | { |
1232 | XmlRpcResponse ret = new XmlRpcResponse(); | 1232 | XmlRpcResponse ret = new XmlRpcResponse(); |
1233 | Hashtable retparam = new Hashtable(); | 1233 | Hashtable retparam = new Hashtable(); |
1234 | Hashtable requestData = (Hashtable)request.Params[0]; | 1234 | Hashtable requestData = (Hashtable)request.Params[0]; |
@@ -1236,36 +1236,36 @@ namespace OpenSim.Region.Environment.Modules | |||
1236 | LLUUID agentId = LLUUID.Zero; | 1236 | LLUUID agentId = LLUUID.Zero; |
1237 | LLUUID soundId = LLUUID.Zero; | 1237 | LLUUID soundId = LLUUID.Zero; |
1238 | 1238 | ||
1239 | Helpers.TryParse((string)requestData["agentId"], out agentId); | 1239 | Helpers.TryParse((string)requestData["agentId"], out agentId); |
1240 | Helpers.TryParse((string)requestData["soundId"], out soundId); | 1240 | Helpers.TryParse((string)requestData["soundId"], out soundId); |
1241 | string text=(string)requestData["text"]; | 1241 | string text=(string)requestData["text"]; |
1242 | string secret=(string)requestData["secret"]; | 1242 | string secret=(string)requestData["secret"]; |
1243 | 1243 | ||
1244 | Scene userScene = GetRandomScene(); | 1244 | Scene userScene = GetRandomScene(); |
1245 | if(userScene.RegionInfo.regionSecret.ToString() == secret) | 1245 | if(userScene.RegionInfo.regionSecret.ToString() == secret) |
1246 | { | 1246 | { |
1247 | IClientAPI client = LocateClientObject(agentId); | 1247 | IClientAPI client = LocateClientObject(agentId); |
1248 | 1248 | ||
1249 | if (client != null) | 1249 | if (client != null) |
1250 | { | 1250 | { |
1251 | if(soundId != LLUUID.Zero) | 1251 | if(soundId != LLUUID.Zero) |
1252 | client.SendPlayAttachedSound(soundId, LLUUID.Zero, LLUUID.Zero, 1.0f, 0); | 1252 | client.SendPlayAttachedSound(soundId, LLUUID.Zero, LLUUID.Zero, 1.0f, 0); |
1253 | client.SendBlueBoxMessage(LLUUID.Zero, LLUUID.Zero, "", text); | 1253 | client.SendBlueBoxMessage(LLUUID.Zero, LLUUID.Zero, "", text); |
1254 | retparam.Add("success", true); | 1254 | retparam.Add("success", true); |
1255 | } | 1255 | } |
1256 | else | 1256 | else |
1257 | { | 1257 | { |
1258 | retparam.Add("success", false); | 1258 | retparam.Add("success", false); |
1259 | } | 1259 | } |
1260 | } | 1260 | } |
1261 | else | 1261 | else |
1262 | { | 1262 | { |
1263 | retparam.Add("success", false); | 1263 | retparam.Add("success", false); |
1264 | } | 1264 | } |
1265 | ret.Value = retparam; | 1265 | ret.Value = retparam; |
1266 | 1266 | ||
1267 | return ret; | 1267 | return ret; |
1268 | } | 1268 | } |
1269 | 1269 | ||
1270 | 1270 | ||
1271 | # region Standalone box enablers only | 1271 | # region Standalone box enablers only |
diff --git a/OpenSim/Region/Environment/Modules/LandManagement/LandChannel.cs b/OpenSim/Region/Environment/Modules/LandManagement/LandChannel.cs index 561c5cf..e2414b0 100644 --- a/OpenSim/Region/Environment/Modules/LandManagement/LandChannel.cs +++ b/OpenSim/Region/Environment/Modules/LandManagement/LandChannel.cs | |||
@@ -949,12 +949,12 @@ namespace OpenSim.Region.Environment.Modules.LandManagement | |||
949 | } | 949 | } |
950 | } | 950 | } |
951 | 951 | ||
952 | // If the economy has been validated by the economy module, | 952 | // If the economy has been validated by the economy module, |
953 | // and land has been validated as well, this method transfers | 953 | // and land has been validated as well, this method transfers |
954 | // the land ownership | 954 | // the land ownership |
955 | 955 | ||
956 | public void handleLandBuyRequest(Object o, EventManager.LandBuyArgs e) | 956 | public void handleLandBuyRequest(Object o, EventManager.LandBuyArgs e) |
957 | { | 957 | { |
958 | if (e.economyValidated && e.landValidated) | 958 | if (e.economyValidated && e.landValidated) |
959 | { | 959 | { |
960 | lock (landList) | 960 | lock (landList) |
@@ -966,11 +966,11 @@ namespace OpenSim.Region.Environment.Modules.LandManagement | |||
966 | } | 966 | } |
967 | } | 967 | } |
968 | } | 968 | } |
969 | } | 969 | } |
970 | 970 | ||
971 | // After receiving a land buy packet, first the data needs to | 971 | // After receiving a land buy packet, first the data needs to |
972 | // be validated. This method validates the right to buy the | 972 | // be validated. This method validates the right to buy the |
973 | // parcel | 973 | // parcel |
974 | 974 | ||
975 | public void handleLandValidationRequest(Object o, EventManager.LandBuyArgs e) | 975 | public void handleLandValidationRequest(Object o, EventManager.LandBuyArgs e) |
976 | { | 976 | { |
diff --git a/OpenSim/Region/Environment/Modules/LandManagement/LandObject.cs b/OpenSim/Region/Environment/Modules/LandManagement/LandObject.cs index f9684e6..6e87a1c 100644 --- a/OpenSim/Region/Environment/Modules/LandManagement/LandObject.cs +++ b/OpenSim/Region/Environment/Modules/LandManagement/LandObject.cs | |||
@@ -73,20 +73,20 @@ namespace OpenSim.Region.Environment.Modules.LandManagement | |||
73 | 73 | ||
74 | public LandData landData | 74 | public LandData landData |
75 | { | 75 | { |
76 | get | 76 | get |
77 | { | 77 | { |
78 | return m_landData; | 78 | return m_landData; |
79 | } | 79 | } |
80 | 80 | ||
81 | set | 81 | set |
82 | { | 82 | { |
83 | m_landData = value; | 83 | m_landData = value; |
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | public LLUUID regionUUID | 87 | public LLUUID regionUUID |
88 | { | 88 | { |
89 | get { return m_scene.RegionInfo.RegionID; } | 89 | get { return m_scene.RegionInfo.RegionID; } |
90 | } | 90 | } |
91 | 91 | ||
92 | #endregion | 92 | #endregion |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 9bf6728..40650f3 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -730,11 +730,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
730 | 730 | ||
731 | if (item != null) | 731 | if (item != null) |
732 | { | 732 | { |
733 | group.AddInventoryItem(remoteClient, primLocalID, item, copyID); | 733 | group.AddInventoryItem(remoteClient, primLocalID, item, copyID); |
734 | m_log.InfoFormat( | 734 | m_log.InfoFormat( |
735 | "[PRIM INVENTORY]: Update with item {0} requested of prim {1} for {2}", | 735 | "[PRIM INVENTORY]: Update with item {0} requested of prim {1} for {2}", |
736 | item.Name, primLocalID, remoteClient.Name); | 736 | item.Name, primLocalID, remoteClient.Name); |
737 | group.GetProperties(remoteClient); | 737 | group.GetProperties(remoteClient); |
738 | } | 738 | } |
739 | else | 739 | else |
740 | { | 740 | { |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 8fdb468..5e0b8ba 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -134,10 +134,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
134 | EventManager.LandBuyArgs args = new EventManager.LandBuyArgs( | 134 | EventManager.LandBuyArgs args = new EventManager.LandBuyArgs( |
135 | agentId, groupId, final, groupOwned, removeContribution, parcelLocalID, parcelArea, parcelPrice, authenticated); | 135 | agentId, groupId, final, groupOwned, removeContribution, parcelLocalID, parcelArea, parcelPrice, authenticated); |
136 | 136 | ||
137 | // First, allow all validators a stab at it | 137 | // First, allow all validators a stab at it |
138 | m_eventManager.TriggerValidateLandBuy(this, args); | 138 | m_eventManager.TriggerValidateLandBuy(this, args); |
139 | 139 | ||
140 | // Then, check validation and transfer | 140 | // Then, check validation and transfer |
141 | m_eventManager.TriggerLandBuy(this, args); | 141 | m_eventManager.TriggerLandBuy(this, args); |
142 | } | 142 | } |
143 | 143 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 6e815a6..dd361bf 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs | |||
@@ -258,32 +258,32 @@ namespace OpenSim.Region.Environment.Scenes | |||
258 | } | 258 | } |
259 | } | 259 | } |
260 | 260 | ||
261 | // Assumes a lock is held on the inventory | 261 | // Assumes a lock is held on the inventory |
262 | private bool InventoryContainsName(string name) | 262 | private bool InventoryContainsName(string name) |
263 | { | 263 | { |
264 | foreach (TaskInventoryItem item in m_taskInventory.Values) | 264 | foreach (TaskInventoryItem item in m_taskInventory.Values) |
265 | { | 265 | { |
266 | if(item.Name == name) | 266 | if(item.Name == name) |
267 | return true; | 267 | return true; |
268 | } | 268 | } |
269 | return false; | 269 | return false; |
270 | } | 270 | } |
271 | 271 | ||
272 | private string FindAvailableInventoryName(string name) | 272 | private string FindAvailableInventoryName(string name) |
273 | { | 273 | { |
274 | if(!InventoryContainsName(name)) | 274 | if(!InventoryContainsName(name)) |
275 | return name; | 275 | return name; |
276 | 276 | ||
277 | int suffix=1; | 277 | int suffix=1; |
278 | while(suffix < 256) | 278 | while(suffix < 256) |
279 | { | 279 | { |
280 | string tryName=String.Format("{0} {1}", name, suffix); | 280 | string tryName=String.Format("{0} {1}", name, suffix); |
281 | if(!InventoryContainsName(tryName)) | 281 | if(!InventoryContainsName(tryName)) |
282 | return tryName; | 282 | return tryName; |
283 | suffix++; | 283 | suffix++; |
284 | } | 284 | } |
285 | return String.Empty; | 285 | return String.Empty; |
286 | } | 286 | } |
287 | 287 | ||
288 | /// <summary> | 288 | /// <summary> |
289 | /// Add an item to this prim's inventory. | 289 | /// Add an item to this prim's inventory. |
@@ -295,11 +295,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
295 | item.CreationDate = 1000; | 295 | item.CreationDate = 1000; |
296 | item.ParentPartID = UUID; | 296 | item.ParentPartID = UUID; |
297 | 297 | ||
298 | string name=FindAvailableInventoryName(item.Name); | 298 | string name=FindAvailableInventoryName(item.Name); |
299 | if(name == String.Empty) | 299 | if(name == String.Empty) |
300 | return; | 300 | return; |
301 | 301 | ||
302 | item.Name=name; | 302 | item.Name=name; |
303 | 303 | ||
304 | lock (m_taskInventory) | 304 | lock (m_taskInventory) |
305 | { | 305 | { |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 099d0f0..0608fa7 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -97,7 +97,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
97 | public uint Category; | 97 | public uint Category; |
98 | 98 | ||
99 | // TODO: This needs to be persisted in next XML version update! | 99 | // TODO: This needs to be persisted in next XML version update! |
100 | [XmlIgnore] public int[] PayPrice = {0,0,0,0,0}; | 100 | [XmlIgnore] public int[] PayPrice = {0,0,0,0,0}; |
101 | 101 | ||
102 | 102 | ||
103 | [XmlIgnore] public bool m_IsAttachment = false; | 103 | [XmlIgnore] public bool m_IsAttachment = false; |
@@ -2038,18 +2038,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
2038 | } | 2038 | } |
2039 | } | 2039 | } |
2040 | 2040 | ||
2041 | if(soundID == LLUUID.Zero) | 2041 | if(soundID == LLUUID.Zero) |
2042 | return; | 2042 | return; |
2043 | 2043 | ||
2044 | List<ScenePresence> avatarts = m_parentGroup.Scene.GetAvatars(); | 2044 | List<ScenePresence> avatarts = m_parentGroup.Scene.GetAvatars(); |
2045 | foreach (ScenePresence p in avatarts) | 2045 | foreach (ScenePresence p in avatarts) |
2046 | { | 2046 | { |
2047 | double dis=Util.GetDistanceTo(p.AbsolutePosition, position); | 2047 | double dis=Util.GetDistanceTo(p.AbsolutePosition, position); |
2048 | if(dis > 100.0) // Max audio distance | 2048 | if(dis > 100.0) // Max audio distance |
2049 | continue; | 2049 | continue; |
2050 | 2050 | ||
2051 | // Scale by distance | 2051 | // Scale by distance |
2052 | volume*=((100.0-dis)/100.0); | 2052 | volume*=((100.0-dis)/100.0); |
2053 | 2053 | ||
2054 | if (triggered) | 2054 | if (triggered) |
2055 | { | 2055 | { |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 3f70108..94dbbb3 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -270,7 +270,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
270 | } | 270 | } |
271 | 271 | ||
272 | m_pos = value; | 272 | m_pos = value; |
273 | m_parentPosition=new LLVector3(0, 0, 0); | 273 | m_parentPosition=new LLVector3(0, 0, 0); |
274 | } | 274 | } |
275 | } | 275 | } |
276 | 276 | ||
@@ -362,7 +362,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
362 | // Move them into an object to (hopefully) avoid threading issues. | 362 | // Move them into an object to (hopefully) avoid threading issues. |
363 | try | 363 | try |
364 | { | 364 | { |
365 | SetMovementAnimation(Animations.AnimsLLUUID["STAND"]); | 365 | SetMovementAnimation(Animations.AnimsLLUUID["STAND"]); |
366 | } | 366 | } |
367 | catch (KeyNotFoundException) | 367 | catch (KeyNotFoundException) |
368 | { | 368 | { |
@@ -547,7 +547,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
547 | 547 | ||
548 | AddToPhysicalScene(); | 548 | AddToPhysicalScene(); |
549 | m_physicsActor.Flying = isFlying; | 549 | m_physicsActor.Flying = isFlying; |
550 | SendAnimPack(); | 550 | SendAnimPack(); |
551 | 551 | ||
552 | m_scene.SwapRootAgentCount(false); | 552 | m_scene.SwapRootAgentCount(false); |
553 | m_scene.CommsManager.UserProfileCacheService.RequestInventoryForUser(m_uuid); | 553 | m_scene.CommsManager.UserProfileCacheService.RequestInventoryForUser(m_uuid); |
@@ -570,15 +570,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
570 | /// </summary> | 570 | /// </summary> |
571 | public void MakeChildAgent() | 571 | public void MakeChildAgent() |
572 | { | 572 | { |
573 | if(m_animations.Count > 0) | 573 | if(m_animations.Count > 0) |
574 | { | 574 | { |
575 | LLUUID movement=m_animations[0]; | 575 | LLUUID movement=m_animations[0]; |
576 | 576 | ||
577 | m_animations.Clear(); | 577 | m_animations.Clear(); |
578 | m_animationSeqs.Clear(); | 578 | m_animationSeqs.Clear(); |
579 | 579 | ||
580 | SetMovementAnimation(movement); | 580 | SetMovementAnimation(movement); |
581 | } | 581 | } |
582 | // m_log.DebugFormat( | 582 | // m_log.DebugFormat( |
583 | // "[SCENEPRESENCE]: Downgrading child agent {0}, {1} to a root agent in {2}", | 583 | // "[SCENEPRESENCE]: Downgrading child agent {0}, {1} to a root agent in {2}", |
584 | // Name, UUID, m_scene.RegionInfo.RegionName); | 584 | // Name, UUID, m_scene.RegionInfo.RegionName); |
@@ -611,10 +611,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
611 | /// <param name="pos"></param> | 611 | /// <param name="pos"></param> |
612 | public void Teleport(LLVector3 pos) | 612 | public void Teleport(LLVector3 pos) |
613 | { | 613 | { |
614 | RemoveFromPhysicalScene(); | 614 | RemoveFromPhysicalScene(); |
615 | Velocity = new LLVector3(0, 0, 0); | 615 | Velocity = new LLVector3(0, 0, 0); |
616 | AbsolutePosition = pos; | 616 | AbsolutePosition = pos; |
617 | AddToPhysicalScene(); | 617 | AddToPhysicalScene(); |
618 | SendTerseUpdateToAllClients(); | 618 | SendTerseUpdateToAllClients(); |
619 | } | 619 | } |
620 | 620 | ||
@@ -1055,12 +1055,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1055 | 1055 | ||
1056 | public void AddAnimation(LLUUID animID) | 1056 | public void AddAnimation(LLUUID animID) |
1057 | { | 1057 | { |
1058 | if(m_isChildAgent) | 1058 | if(m_isChildAgent) |
1059 | return; | 1059 | return; |
1060 | 1060 | ||
1061 | // Don't let this animation become the movement animation | 1061 | // Don't let this animation become the movement animation |
1062 | if(m_animations.Count < 1) | 1062 | if(m_animations.Count < 1) |
1063 | SetMovementAnimation(Animations.AnimsLLUUID["STAND"]); | 1063 | SetMovementAnimation(Animations.AnimsLLUUID["STAND"]); |
1064 | 1064 | ||
1065 | if (!m_animations.Contains(animID)) | 1065 | if (!m_animations.Contains(animID)) |
1066 | { | 1066 | { |
@@ -1072,8 +1072,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1072 | 1072 | ||
1073 | public void RemoveAnimation(LLUUID animID) | 1073 | public void RemoveAnimation(LLUUID animID) |
1074 | { | 1074 | { |
1075 | if(m_isChildAgent) | 1075 | if(m_isChildAgent) |
1076 | return; | 1076 | return; |
1077 | 1077 | ||
1078 | if (m_animations.Contains(animID)) | 1078 | if (m_animations.Contains(animID)) |
1079 | { | 1079 | { |
@@ -1083,21 +1083,21 @@ namespace OpenSim.Region.Environment.Scenes | |||
1083 | } | 1083 | } |
1084 | else | 1084 | else |
1085 | { | 1085 | { |
1086 | // What a HACK!! Anim list really needs to be an object! | 1086 | // What a HACK!! Anim list really needs to be an object! |
1087 | int idx; | 1087 | int idx; |
1088 | 1088 | ||
1089 | for(idx=0;idx < m_animations.Count;idx++) | 1089 | for(idx=0;idx < m_animations.Count;idx++) |
1090 | { | 1090 | { |
1091 | if(m_animations[idx] == animID) | 1091 | if(m_animations[idx] == animID) |
1092 | { | 1092 | { |
1093 | int seq=m_animationSeqs[idx]; | 1093 | int seq=m_animationSeqs[idx]; |
1094 | 1094 | ||
1095 | m_animations.Remove(animID); | 1095 | m_animations.Remove(animID); |
1096 | m_animationSeqs.Remove(seq); | 1096 | m_animationSeqs.Remove(seq); |
1097 | SendAnimPack(); | 1097 | SendAnimPack(); |
1098 | break; | 1098 | break; |
1099 | } | 1099 | } |
1100 | } | 1100 | } |
1101 | } | 1101 | } |
1102 | } | 1102 | } |
1103 | } | 1103 | } |
@@ -1119,33 +1119,33 @@ namespace OpenSim.Region.Environment.Scenes | |||
1119 | /// </summary> | 1119 | /// </summary> |
1120 | protected void SetMovementAnimation(LLUUID anim) | 1120 | protected void SetMovementAnimation(LLUUID anim) |
1121 | { | 1121 | { |
1122 | if(m_animations.Count < 1) | 1122 | if(m_animations.Count < 1) |
1123 | { | 1123 | { |
1124 | m_animations.Add(Animations.AnimsLLUUID["STAND"]); | 1124 | m_animations.Add(Animations.AnimsLLUUID["STAND"]); |
1125 | m_animationSeqs.Add(1); | 1125 | m_animationSeqs.Add(1); |
1126 | 1126 | ||
1127 | SendAnimPack(); | 1127 | SendAnimPack(); |
1128 | } | 1128 | } |
1129 | else | 1129 | else |
1130 | { | 1130 | { |
1131 | try | 1131 | try |
1132 | { | 1132 | { |
1133 | if (m_animations[0] != anim) | 1133 | if (m_animations[0] != anim) |
1134 | { | 1134 | { |
1135 | m_animations[0] = anim; | 1135 | m_animations[0] = anim; |
1136 | m_animationSeqs[0] = m_controllingClient.NextAnimationSequenceNumber; | 1136 | m_animationSeqs[0] = m_controllingClient.NextAnimationSequenceNumber; |
1137 | } | 1137 | } |
1138 | SendAnimPack(); | 1138 | SendAnimPack(); |
1139 | } | 1139 | } |
1140 | catch | 1140 | catch |
1141 | { | 1141 | { |
1142 | m_log.Warn("[AVATAR]: SetMovementAnimation for avatar failed. Attempting recovery..."); | 1142 | m_log.Warn("[AVATAR]: SetMovementAnimation for avatar failed. Attempting recovery..."); |
1143 | m_animations[0] = anim; | 1143 | m_animations[0] = anim; |
1144 | m_animationSeqs[0] = m_controllingClient.NextAnimationSequenceNumber; | 1144 | m_animationSeqs[0] = m_controllingClient.NextAnimationSequenceNumber; |
1145 | SendAnimPack(); | 1145 | SendAnimPack(); |
1146 | } | 1146 | } |
1147 | } | 1147 | } |
1148 | } | 1148 | } |
1149 | 1149 | ||
1150 | /// <summary> | 1150 | /// <summary> |
1151 | /// This method handles agent movement related animations | 1151 | /// This method handles agent movement related animations |
@@ -1536,8 +1536,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1536 | /// <param name="seqs"></param> | 1536 | /// <param name="seqs"></param> |
1537 | public void SendAnimPack(LLUUID[] animations, int[] seqs) | 1537 | public void SendAnimPack(LLUUID[] animations, int[] seqs) |
1538 | { | 1538 | { |
1539 | if(m_isChildAgent) | 1539 | if(m_isChildAgent) |
1540 | return; | 1540 | return; |
1541 | 1541 | ||
1542 | m_scene.Broadcast( | 1542 | m_scene.Broadcast( |
1543 | delegate(IClientAPI client) { client.SendAnimations(animations, seqs, m_controllingClient.AgentId); }); | 1543 | delegate(IClientAPI client) { client.SendAnimations(animations, seqs, m_controllingClient.AgentId); }); |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 0aa3240..2586ac5 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -167,8 +167,8 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
167 | public event ObjectIncludeInSearch OnObjectIncludeInSearch; | 167 | public event ObjectIncludeInSearch OnObjectIncludeInSearch; |
168 | public event UUIDNameRequest OnTeleportHomeRequest; | 168 | public event UUIDNameRequest OnTeleportHomeRequest; |
169 | 169 | ||
170 | public event ScriptAnswer OnScriptAnswer; | 170 | public event ScriptAnswer OnScriptAnswer; |
171 | public event RequestPayPrice OnRequestPayPrice; | 171 | public event RequestPayPrice OnRequestPayPrice; |
172 | 172 | ||
173 | 173 | ||
174 | #pragma warning restore 67 | 174 | #pragma warning restore 67 |
@@ -221,10 +221,10 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
221 | get { return FirstName + LastName; } | 221 | get { return FirstName + LastName; } |
222 | } | 222 | } |
223 | 223 | ||
224 | public virtual int NextAnimationSequenceNumber | 224 | public virtual int NextAnimationSequenceNumber |
225 | { | 225 | { |
226 | get { return 1; } | 226 | get { return 1; } |
227 | } | 227 | } |
228 | 228 | ||
229 | public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) | 229 | public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) |
230 | { | 230 | { |
@@ -344,9 +344,9 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
344 | { | 344 | { |
345 | } | 345 | } |
346 | 346 | ||
347 | public virtual void SendPayPrice(LLUUID objectID, int[] payPrice) | 347 | public virtual void SendPayPrice(LLUUID objectID, int[] payPrice) |
348 | { | 348 | { |
349 | } | 349 | } |
350 | 350 | ||
351 | public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, | 351 | public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, |
352 | uint avatarLocalID, LLVector3 Pos, byte[] textureEntry, uint parentID) | 352 | uint avatarLocalID, LLVector3 Pos, byte[] textureEntry, uint parentID) |
@@ -603,8 +603,8 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
603 | { | 603 | { |
604 | } | 604 | } |
605 | 605 | ||
606 | public void SendScriptQuestion(LLUUID objectID, string taskName, string ownerName, LLUUID itemID, int question) | 606 | public void SendScriptQuestion(LLUUID objectID, string taskName, string ownerName, LLUUID itemID, int question) |
607 | { | 607 | { |
608 | } | 608 | } |
609 | } | 609 | } |
610 | } | 610 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 3778c09..3273023 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
70 | 70 | ||
71 | private DateTime m_timer = DateTime.Now; | 71 | private DateTime m_timer = DateTime.Now; |
72 | private string m_state = "default"; | 72 | private string m_state = "default"; |
73 | private bool m_waitingForScriptAnswer=false; | 73 | private bool m_waitingForScriptAnswer=false; |
74 | 74 | ||
75 | 75 | ||
76 | public string State | 76 | public string State |
@@ -121,50 +121,50 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
121 | return World.GetCommander(name); | 121 | return World.GetCommander(name); |
122 | } | 122 | } |
123 | 123 | ||
124 | private LLUUID InventorySelf() | 124 | private LLUUID InventorySelf() |
125 | { | 125 | { |
126 | LLUUID invItemID=new LLUUID(); | 126 | LLUUID invItemID=new LLUUID(); |
127 | 127 | ||
128 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 128 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
129 | { | 129 | { |
130 | if(inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) | 130 | if(inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) |
131 | { | 131 | { |
132 | invItemID=inv.Key; | 132 | invItemID=inv.Key; |
133 | break; | 133 | break; |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | return invItemID; | 137 | return invItemID; |
138 | } | 138 | } |
139 | 139 | ||
140 | private LLUUID InventoryKey(string name, int type) | 140 | private LLUUID InventoryKey(string name, int type) |
141 | { | 141 | { |
142 | m_host.AddScriptLPS(1); | 142 | m_host.AddScriptLPS(1); |
143 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 143 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
144 | { | 144 | { |
145 | if(inv.Value.Name == name) | 145 | if(inv.Value.Name == name) |
146 | { | 146 | { |
147 | if(inv.Value.Type != type) | 147 | if(inv.Value.Type != type) |
148 | return LLUUID.Zero; | 148 | return LLUUID.Zero; |
149 | 149 | ||
150 | return inv.Value.AssetID.ToString(); | 150 | return inv.Value.AssetID.ToString(); |
151 | } | 151 | } |
152 | } | 152 | } |
153 | return LLUUID.Zero; | 153 | return LLUUID.Zero; |
154 | } | 154 | } |
155 | 155 | ||
156 | private LLUUID InventoryKey(string name) | 156 | private LLUUID InventoryKey(string name) |
157 | { | 157 | { |
158 | m_host.AddScriptLPS(1); | 158 | m_host.AddScriptLPS(1); |
159 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 159 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
160 | { | 160 | { |
161 | if(inv.Value.Name == name) | 161 | if(inv.Value.Name == name) |
162 | { | 162 | { |
163 | return inv.Value.AssetID.ToString(); | 163 | return inv.Value.AssetID.ToString(); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | return LLUUID.Zero; | 166 | return LLUUID.Zero; |
167 | } | 167 | } |
168 | 168 | ||
169 | //These are the implementations of the various ll-functions used by the LSL scripts. | 169 | //These are the implementations of the various ll-functions used by the LSL scripts. |
170 | //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 | 170 | //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 |
@@ -947,15 +947,15 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
947 | { | 947 | { |
948 | m_host.AddScriptLPS(1); | 948 | m_host.AddScriptLPS(1); |
949 | 949 | ||
950 | LLUUID textureID=new LLUUID(); | 950 | LLUUID textureID=new LLUUID(); |
951 | 951 | ||
952 | if(!LLUUID.TryParse(texture, out textureID)) | 952 | if(!LLUUID.TryParse(texture, out textureID)) |
953 | { | 953 | { |
954 | textureID=InventoryKey(texture, (int)AssetType.Texture); | 954 | textureID=InventoryKey(texture, (int)AssetType.Texture); |
955 | } | 955 | } |
956 | 956 | ||
957 | if(textureID == LLUUID.Zero) | 957 | if(textureID == LLUUID.Zero) |
958 | return; | 958 | return; |
959 | 959 | ||
960 | LLObject.TextureEntry tex = m_host.Shape.Textures; | 960 | LLObject.TextureEntry tex = m_host.Shape.Textures; |
961 | 961 | ||
@@ -1610,41 +1610,41 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1610 | 1610 | ||
1611 | public int llGiveMoney(string destination, int amount) | 1611 | public int llGiveMoney(string destination, int amount) |
1612 | { | 1612 | { |
1613 | LLUUID invItemID=InventorySelf(); | 1613 | LLUUID invItemID=InventorySelf(); |
1614 | if(invItemID == LLUUID.Zero) | 1614 | if(invItemID == LLUUID.Zero) |
1615 | return 0; | 1615 | return 0; |
1616 | 1616 | ||
1617 | m_host.AddScriptLPS(1); | 1617 | m_host.AddScriptLPS(1); |
1618 | 1618 | ||
1619 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) | 1619 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) |
1620 | return 0; | 1620 | return 0; |
1621 | 1621 | ||
1622 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_DEBIT) == 0) | 1622 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_DEBIT) == 0) |
1623 | { | 1623 | { |
1624 | LSLError("No permissions to give money"); | 1624 | LSLError("No permissions to give money"); |
1625 | return 0; | 1625 | return 0; |
1626 | } | 1626 | } |
1627 | 1627 | ||
1628 | LLUUID toID=new LLUUID(); | 1628 | LLUUID toID=new LLUUID(); |
1629 | 1629 | ||
1630 | if(!LLUUID.TryParse(destination, out toID)) | 1630 | if(!LLUUID.TryParse(destination, out toID)) |
1631 | { | 1631 | { |
1632 | LSLError("Bad key in llGiveMoney"); | 1632 | LSLError("Bad key in llGiveMoney"); |
1633 | return 0; | 1633 | return 0; |
1634 | } | 1634 | } |
1635 | 1635 | ||
1636 | IMoneyModule money=World.RequestModuleInterface<IMoneyModule>(); | 1636 | IMoneyModule money=World.RequestModuleInterface<IMoneyModule>(); |
1637 | 1637 | ||
1638 | if(money == null) | 1638 | if(money == null) |
1639 | { | 1639 | { |
1640 | NotImplemented("llGiveMoney"); | 1640 | NotImplemented("llGiveMoney"); |
1641 | return 0; | 1641 | return 0; |
1642 | } | 1642 | } |
1643 | 1643 | ||
1644 | bool result=money.ObjectGiveMoney(m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount); | 1644 | bool result=money.ObjectGiveMoney(m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount); |
1645 | 1645 | ||
1646 | if(result) | 1646 | if(result) |
1647 | return 1; | 1647 | return 1; |
1648 | 1648 | ||
1649 | return 0; | 1649 | return 0; |
1650 | } | 1650 | } |
@@ -1883,57 +1883,57 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1883 | { | 1883 | { |
1884 | m_host.AddScriptLPS(1); | 1884 | m_host.AddScriptLPS(1); |
1885 | 1885 | ||
1886 | LLUUID invItemID=InventorySelf(); | 1886 | LLUUID invItemID=InventorySelf(); |
1887 | if(invItemID == LLUUID.Zero) | 1887 | if(invItemID == LLUUID.Zero) |
1888 | return; | 1888 | return; |
1889 | 1889 | ||
1890 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) | 1890 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) |
1891 | return; | 1891 | return; |
1892 | 1892 | ||
1893 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) | 1893 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) |
1894 | { | 1894 | { |
1895 | // Do NOT try to parse LLUUID, animations cannot be triggered by ID | 1895 | // Do NOT try to parse LLUUID, animations cannot be triggered by ID |
1896 | LLUUID animID=InventoryKey(anim, (int)AssetType.Animation); | 1896 | LLUUID animID=InventoryKey(anim, (int)AssetType.Animation); |
1897 | if(animID == LLUUID.Zero) | 1897 | if(animID == LLUUID.Zero) |
1898 | return; | 1898 | return; |
1899 | 1899 | ||
1900 | if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) | 1900 | if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) |
1901 | { | 1901 | { |
1902 | ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; | 1902 | ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; |
1903 | presence.AddAnimation(animID); | 1903 | presence.AddAnimation(animID); |
1904 | } | 1904 | } |
1905 | } | 1905 | } |
1906 | } | 1906 | } |
1907 | 1907 | ||
1908 | public void llStopAnimation(string anim) | 1908 | public void llStopAnimation(string anim) |
1909 | { | 1909 | { |
1910 | m_host.AddScriptLPS(1); | 1910 | m_host.AddScriptLPS(1); |
1911 | 1911 | ||
1912 | LLUUID invItemID=InventorySelf(); | 1912 | LLUUID invItemID=InventorySelf(); |
1913 | if(invItemID == LLUUID.Zero) | 1913 | if(invItemID == LLUUID.Zero) |
1914 | return; | 1914 | return; |
1915 | 1915 | ||
1916 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) | 1916 | if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) |
1917 | return; | 1917 | return; |
1918 | 1918 | ||
1919 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) | 1919 | if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) |
1920 | { | 1920 | { |
1921 | LLUUID animID = new LLUUID(); | 1921 | LLUUID animID = new LLUUID(); |
1922 | 1922 | ||
1923 | if(!LLUUID.TryParse(anim, out animID)) | 1923 | if(!LLUUID.TryParse(anim, out animID)) |
1924 | { | 1924 | { |
1925 | animID=InventoryKey(anim); | 1925 | animID=InventoryKey(anim); |
1926 | } | 1926 | } |
1927 | 1927 | ||
1928 | if(animID == LLUUID.Zero) | 1928 | if(animID == LLUUID.Zero) |
1929 | return; | 1929 | return; |
1930 | 1930 | ||
1931 | if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) | 1931 | if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) |
1932 | { | 1932 | { |
1933 | ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; | 1933 | ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; |
1934 | presence.RemoveAnimation(animID); | 1934 | presence.RemoveAnimation(animID); |
1935 | } | 1935 | } |
1936 | } | 1936 | } |
1937 | } | 1937 | } |
1938 | 1938 | ||
1939 | public void llPointAt() | 1939 | public void llPointAt() |
@@ -1972,108 +1972,108 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1972 | 1972 | ||
1973 | public void llRequestPermissions(string agent, int perm) | 1973 | public void llRequestPermissions(string agent, int perm) |
1974 | { | 1974 | { |
1975 | LLUUID agentID=new LLUUID(); | 1975 | LLUUID agentID=new LLUUID(); |
1976 | 1976 | ||
1977 | if(!LLUUID.TryParse(agent, out agentID)) | 1977 | if(!LLUUID.TryParse(agent, out agentID)) |
1978 | return; | 1978 | return; |
1979 | 1979 | ||
1980 | LLUUID invItemID=InventorySelf(); | 1980 | LLUUID invItemID=InventorySelf(); |
1981 | 1981 | ||
1982 | if(invItemID == LLUUID.Zero) | 1982 | if(invItemID == LLUUID.Zero) |
1983 | return; // Not in a prim? How?? | 1983 | return; // Not in a prim? How?? |
1984 | 1984 | ||
1985 | if(agentID == LLUUID.Zero || perm == 0) // Releasing permissions | 1985 | if(agentID == LLUUID.Zero || perm == 0) // Releasing permissions |
1986 | { | 1986 | { |
1987 | m_host.TaskInventory[invItemID].PermsGranter=LLUUID.Zero; | 1987 | m_host.TaskInventory[invItemID].PermsGranter=LLUUID.Zero; |
1988 | m_host.TaskInventory[invItemID].PermsMask=0; | 1988 | m_host.TaskInventory[invItemID].PermsMask=0; |
1989 | 1989 | ||
1990 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 1990 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
1991 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); | 1991 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); |
1992 | 1992 | ||
1993 | return; | 1993 | return; |
1994 | } | 1994 | } |
1995 | 1995 | ||
1996 | m_host.AddScriptLPS(1); | 1996 | m_host.AddScriptLPS(1); |
1997 | 1997 | ||
1998 | bool attachment=false; // Attachments not implemented yet. TODO: reflect real attachemnt state | 1998 | bool attachment=false; // Attachments not implemented yet. TODO: reflect real attachemnt state |
1999 | 1999 | ||
2000 | if(attachment && agent == m_host.OwnerID) | 2000 | if(attachment && agent == m_host.OwnerID) |
2001 | { | 2001 | { |
2002 | // When attached, certain permissions are implicit if requested from owner | 2002 | // When attached, certain permissions are implicit if requested from owner |
2003 | int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TAKE_CONTROLS | | 2003 | int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TAKE_CONTROLS | |
2004 | BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | | 2004 | BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | |
2005 | BuiltIn_Commands_BaseClass.PERMISSION_ATTACH; | 2005 | BuiltIn_Commands_BaseClass.PERMISSION_ATTACH; |
2006 | 2006 | ||
2007 | if((perm & (~implicitPerms)) == 0) // Requested only implicit perms | 2007 | if((perm & (~implicitPerms)) == 0) // Requested only implicit perms |
2008 | { | 2008 | { |
2009 | m_host.TaskInventory[invItemID].PermsGranter=agentID; | 2009 | m_host.TaskInventory[invItemID].PermsGranter=agentID; |
2010 | m_host.TaskInventory[invItemID].PermsMask=perm; | 2010 | m_host.TaskInventory[invItemID].PermsMask=perm; |
2011 | 2011 | ||
2012 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 2012 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
2013 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); | 2013 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); |
2014 | 2014 | ||
2015 | return; | 2015 | return; |
2016 | } | 2016 | } |
2017 | } | 2017 | } |
2018 | else if(m_host.m_sitTargetAvatar == agentID) // Sitting avatar | 2018 | else if(m_host.m_sitTargetAvatar == agentID) // Sitting avatar |
2019 | { | 2019 | { |
2020 | // When agent is sitting, certain permissions are implicit if requested from sitting agent | 2020 | // When agent is sitting, certain permissions are implicit if requested from sitting agent |
2021 | int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | | 2021 | int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | |
2022 | BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA; | 2022 | BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA; |
2023 | 2023 | ||
2024 | if((perm & (~implicitPerms)) == 0) // Requested only implicit perms | 2024 | if((perm & (~implicitPerms)) == 0) // Requested only implicit perms |
2025 | { | 2025 | { |
2026 | m_host.TaskInventory[invItemID].PermsGranter=agentID; | 2026 | m_host.TaskInventory[invItemID].PermsGranter=agentID; |
2027 | m_host.TaskInventory[invItemID].PermsMask=perm; | 2027 | m_host.TaskInventory[invItemID].PermsMask=perm; |
2028 | 2028 | ||
2029 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 2029 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
2030 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); | 2030 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); |
2031 | 2031 | ||
2032 | return; | 2032 | return; |
2033 | } | 2033 | } |
2034 | } | 2034 | } |
2035 | 2035 | ||
2036 | if (World.m_innerScene.ScenePresences.ContainsKey(agentID)) | 2036 | if (World.m_innerScene.ScenePresences.ContainsKey(agentID)) |
2037 | { | 2037 | { |
2038 | string ownerName=resolveName(m_host.ParentGroup.RootPart.OwnerID); | 2038 | string ownerName=resolveName(m_host.ParentGroup.RootPart.OwnerID); |
2039 | if(ownerName == String.Empty) | 2039 | if(ownerName == String.Empty) |
2040 | ownerName="(hippos)"; | 2040 | ownerName="(hippos)"; |
2041 | 2041 | ||
2042 | ScenePresence presence = World.m_innerScene.ScenePresences[agentID]; | 2042 | ScenePresence presence = World.m_innerScene.ScenePresences[agentID]; |
2043 | if(!m_waitingForScriptAnswer) | 2043 | if(!m_waitingForScriptAnswer) |
2044 | { | 2044 | { |
2045 | m_host.TaskInventory[invItemID].PermsGranter=agentID; | 2045 | m_host.TaskInventory[invItemID].PermsGranter=agentID; |
2046 | m_host.TaskInventory[invItemID].PermsMask=0; | 2046 | m_host.TaskInventory[invItemID].PermsMask=0; |
2047 | presence.ControllingClient.OnScriptAnswer+=handleScriptAnswer; | 2047 | presence.ControllingClient.OnScriptAnswer+=handleScriptAnswer; |
2048 | m_waitingForScriptAnswer=true; | 2048 | m_waitingForScriptAnswer=true; |
2049 | } | 2049 | } |
2050 | 2050 | ||
2051 | presence.ControllingClient.SendScriptQuestion(m_host.UUID, m_host.ParentGroup.RootPart.Name, ownerName, invItemID, perm); | 2051 | presence.ControllingClient.SendScriptQuestion(m_host.UUID, m_host.ParentGroup.RootPart.Name, ownerName, invItemID, perm); |
2052 | return; | 2052 | return; |
2053 | } | 2053 | } |
2054 | 2054 | ||
2055 | // Requested agent is not in range, refuse perms | 2055 | // Requested agent is not in range, refuse perms |
2056 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 2056 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
2057 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); | 2057 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); |
2058 | } | 2058 | } |
2059 | 2059 | ||
2060 | void handleScriptAnswer(IClientAPI client, LLUUID taskID, LLUUID itemID, int answer) | 2060 | void handleScriptAnswer(IClientAPI client, LLUUID taskID, LLUUID itemID, int answer) |
2061 | { | 2061 | { |
2062 | if(taskID != m_host.UUID) | 2062 | if(taskID != m_host.UUID) |
2063 | return; | 2063 | return; |
2064 | 2064 | ||
2065 | LLUUID invItemID=InventorySelf(); | 2065 | LLUUID invItemID=InventorySelf(); |
2066 | 2066 | ||
2067 | if(invItemID == LLUUID.Zero) | 2067 | if(invItemID == LLUUID.Zero) |
2068 | return; | 2068 | return; |
2069 | 2069 | ||
2070 | client.OnScriptAnswer-=handleScriptAnswer; | 2070 | client.OnScriptAnswer-=handleScriptAnswer; |
2071 | m_waitingForScriptAnswer=false; | 2071 | m_waitingForScriptAnswer=false; |
2072 | 2072 | ||
2073 | m_host.TaskInventory[invItemID].PermsMask=answer; | 2073 | m_host.TaskInventory[invItemID].PermsMask=answer; |
2074 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 2074 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
2075 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)answer}); | 2075 | m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)answer}); |
2076 | } | 2076 | } |
2077 | 2077 | ||
2078 | public string llGetPermissionsKey() | 2078 | public string llGetPermissionsKey() |
2079 | { | 2079 | { |
@@ -2083,7 +2083,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2083 | { | 2083 | { |
2084 | if(item.Type == 10 && item.ItemID == m_itemID) | 2084 | if(item.Type == 10 && item.ItemID == m_itemID) |
2085 | { | 2085 | { |
2086 | return item.PermsGranter.ToString(); | 2086 | return item.PermsGranter.ToString(); |
2087 | } | 2087 | } |
2088 | } | 2088 | } |
2089 | 2089 | ||
@@ -2098,7 +2098,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2098 | { | 2098 | { |
2099 | if(item.Type == 10 && item.ItemID == m_itemID) | 2099 | if(item.Type == 10 && item.ItemID == m_itemID) |
2100 | { | 2100 | { |
2101 | return item.PermsMask; | 2101 | return item.PermsMask; |
2102 | } | 2102 | } |
2103 | } | 2103 | } |
2104 | 2104 | ||
@@ -3997,24 +3997,24 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
3997 | LSLError("First parameter to llDialog needs to be a key"); | 3997 | LSLError("First parameter to llDialog needs to be a key"); |
3998 | return; | 3998 | return; |
3999 | } | 3999 | } |
4000 | if(buttons.Length > 12) | 4000 | if(buttons.Length > 12) |
4001 | { | 4001 | { |
4002 | LSLError("No more than 12 buttons can be shown"); | 4002 | LSLError("No more than 12 buttons can be shown"); |
4003 | return; | 4003 | return; |
4004 | } | 4004 | } |
4005 | string[] buts = new string[buttons.Length]; | 4005 | string[] buts = new string[buttons.Length]; |
4006 | for(int i = 0; i < buttons.Length; i++) | 4006 | for(int i = 0; i < buttons.Length; i++) |
4007 | { | 4007 | { |
4008 | if(buttons.Data[i].ToString() == String.Empty) | 4008 | if(buttons.Data[i].ToString() == String.Empty) |
4009 | { | 4009 | { |
4010 | LSLError("button label cannot be blank"); | 4010 | LSLError("button label cannot be blank"); |
4011 | return; | 4011 | return; |
4012 | } | 4012 | } |
4013 | if(buttons.Data[i].ToString().Length > 24) | 4013 | if(buttons.Data[i].ToString().Length > 24) |
4014 | { | 4014 | { |
4015 | LSLError("button label cannot be longer than 24 characters"); | 4015 | LSLError("button label cannot be longer than 24 characters"); |
4016 | return; | 4016 | return; |
4017 | } | 4017 | } |
4018 | buts[i] = buttons.Data[i].ToString(); | 4018 | buts[i] = buttons.Data[i].ToString(); |
4019 | } | 4019 | } |
4020 | World.SendDialogToUser(av, m_host.Name, m_host.UUID, m_host.OwnerID, message, new LLUUID("00000000-0000-2222-3333-100000001000"), chat_channel, buts); | 4020 | World.SendDialogToUser(av, m_host.Name, m_host.UUID, m_host.OwnerID, message, new LLUUID("00000000-0000-2222-3333-100000001000"), chat_channel, buts); |
@@ -5137,16 +5137,16 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5137 | { | 5137 | { |
5138 | m_host.AddScriptLPS(1); | 5138 | m_host.AddScriptLPS(1); |
5139 | 5139 | ||
5140 | if(quick_pay_buttons.Data.Length != 4) | 5140 | if(quick_pay_buttons.Data.Length != 4) |
5141 | { | 5141 | { |
5142 | LSLError("List must have 4 elements"); | 5142 | LSLError("List must have 4 elements"); |
5143 | return; | 5143 | return; |
5144 | } | 5144 | } |
5145 | m_host.ParentGroup.RootPart.PayPrice[0]=price; | 5145 | m_host.ParentGroup.RootPart.PayPrice[0]=price; |
5146 | m_host.ParentGroup.RootPart.PayPrice[1]=(int)quick_pay_buttons.Data[0]; | 5146 | m_host.ParentGroup.RootPart.PayPrice[1]=(int)quick_pay_buttons.Data[0]; |
5147 | m_host.ParentGroup.RootPart.PayPrice[2]=(int)quick_pay_buttons.Data[1]; | 5147 | m_host.ParentGroup.RootPart.PayPrice[2]=(int)quick_pay_buttons.Data[1]; |
5148 | m_host.ParentGroup.RootPart.PayPrice[3]=(int)quick_pay_buttons.Data[2]; | 5148 | m_host.ParentGroup.RootPart.PayPrice[3]=(int)quick_pay_buttons.Data[2]; |
5149 | m_host.ParentGroup.RootPart.PayPrice[4]=(int)quick_pay_buttons.Data[3]; | 5149 | m_host.ParentGroup.RootPart.PayPrice[4]=(int)quick_pay_buttons.Data[3]; |
5150 | } | 5150 | } |
5151 | 5151 | ||
5152 | public LSL_Types.Vector3 llGetCameraPos() | 5152 | public LSL_Types.Vector3 llGetCameraPos() |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs index c2e3209..d3e9948 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs | |||
@@ -71,11 +71,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
71 | myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript; | 71 | myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript; |
72 | myScriptEngine.World.EventManager.OnScriptChangedEvent += changed; | 72 | myScriptEngine.World.EventManager.OnScriptChangedEvent += changed; |
73 | // TODO: HOOK ALL EVENTS UP TO SERVER! | 73 | // TODO: HOOK ALL EVENTS UP TO SERVER! |
74 | IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>(); | 74 | IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>(); |
75 | if(money != null) | 75 | if(money != null) |
76 | { | 76 | { |
77 | money.OnObjectPaid+=HandleObjectPaid; | 77 | money.OnObjectPaid+=HandleObjectPaid; |
78 | } | 78 | } |
79 | 79 | ||
80 | } | 80 | } |
81 | } | 81 | } |