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
							parent
							
								
									9c294c5663
								
							
						
					
					
						commit
						fddefff284
					
				| 
						 | 
				
			
			@ -179,6 +179,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        /// <param name="msg">The message to send to the user</param>
 | 
			
		||||
        void Say(string msg);
 | 
			
		||||
		
 | 
			
		||||
		void Say(string msg,int channel);
 | 
			
		||||
 | 
			
		||||
        //// <value>
 | 
			
		||||
        /// Grants access to the objects inventory
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,6 +41,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 | 
			
		|||
    {
 | 
			
		||||
        public string Text;
 | 
			
		||||
        public IEntity Sender;
 | 
			
		||||
        public int Channel;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public delegate void OnChatDelegate(IWorld sender, ChatEventArgs e);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -384,6 +384,15 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 | 
			
		|||
            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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,7 +148,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 | 
			
		|||
                ChatEventArgs e = new ChatEventArgs();
 | 
			
		||||
                e.Sender = new SOPObject(m_internalScene, ((SceneObjectPart) chat.SenderObject).LocalId, m_security);
 | 
			
		||||
                e.Text = chat.Message;
 | 
			
		||||
 | 
			
		||||
                e.Channel = chat.Channel;
 | 
			
		||||
				
 | 
			
		||||
                _OnChat(this, e);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -158,7 +159,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 | 
			
		|||
                ChatEventArgs e = new ChatEventArgs();
 | 
			
		||||
                e.Sender = new SPAvatar(m_internalScene, chat.SenderUUID, m_security);
 | 
			
		||||
                e.Text = chat.Message;
 | 
			
		||||
 | 
			
		||||
                e.Channel = chat.Channel;
 | 
			
		||||
				
 | 
			
		||||
                _OnChat(this, e);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue