Thank you kindly, Ziah for a patch that adds the channel to the class ChatEventArgs and retrieves it's value along with the others from the OSChatMessage in HandleChatPackage. With this the MRM Script can check if a ChatEvent is coming in on a specifc Channel. The Second Part adds the Method say(string msg , int channel) to send a chat message on the specified channel. The idea behind this is to enable MRM's to communicate with regular LSL or OSSL Scripts so that they may can act as a Backend to access a Database or do business Logic for those Scripts.

Signed-off-by: Charles Krinke <cfk@pacbell.net>
mysql-performance
Charles Krinke 2009-12-23 10:34:11 -08:00
parent 9c294c5663
commit fddefff284
4 changed files with 16 additions and 2 deletions

View File

@ -179,6 +179,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
/// </summary> /// </summary>
/// <param name="msg">The message to send to the user</param> /// <param name="msg">The message to send to the user</param>
void Say(string msg); void Say(string msg);
void Say(string msg,int channel);
//// <value> //// <value>
/// Grants access to the objects inventory /// Grants access to the objects inventory

View File

@ -41,6 +41,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{ {
public string Text; public string Text;
public IEntity Sender; public IEntity Sender;
public int Channel;
} }
public delegate void OnChatDelegate(IWorld sender, ChatEventArgs e); public delegate void OnChatDelegate(IWorld sender, ChatEventArgs e);

View File

@ -384,6 +384,15 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
m_rootScene.SimChat(msg, ChatTypeEnum.Say, sop.AbsolutePosition, sop.Name, sop.UUID, false); m_rootScene.SimChat(msg, ChatTypeEnum.Say, sop.AbsolutePosition, sop.Name, sop.UUID, false);
} }
public void Say(string msg,int channel)
{
if (!CanEdit())
return;
SceneObjectPart sop = GetSOP();
m_rootScene.SimChat(Utils.StringToBytes(msg), ChatTypeEnum.Say,channel, sop.AbsolutePosition, sop.Name, sop.UUID, false);
}
#endregion #endregion

View File

@ -148,7 +148,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
ChatEventArgs e = new ChatEventArgs(); ChatEventArgs e = new ChatEventArgs();
e.Sender = new SOPObject(m_internalScene, ((SceneObjectPart) chat.SenderObject).LocalId, m_security); e.Sender = new SOPObject(m_internalScene, ((SceneObjectPart) chat.SenderObject).LocalId, m_security);
e.Text = chat.Message; e.Text = chat.Message;
e.Channel = chat.Channel;
_OnChat(this, e); _OnChat(this, e);
return; return;
} }
@ -158,7 +159,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
ChatEventArgs e = new ChatEventArgs(); ChatEventArgs e = new ChatEventArgs();
e.Sender = new SPAvatar(m_internalScene, chat.SenderUUID, m_security); e.Sender = new SPAvatar(m_internalScene, chat.SenderUUID, m_security);
e.Text = chat.Message; e.Text = chat.Message;
e.Channel = chat.Channel;
_OnChat(this, e); _OnChat(this, e);
return; return;
} }