public void OnRexClientScriptCommand(IRexClientCore remoteClient, UUID agentID, List<string> commands) { try { string Paramlist = ""; foreach (string s in commands) Paramlist = Paramlist + "," + "\"" + s + "\""; string EventParams = "\"client_event\",\"" + agentID.ToString() + "\"" + Paramlist; m_scriptEngine.ExecutePythonCommand("CreateEventWithName(" + EventParams + ")"); } catch (Exception e) { m_log.WarnFormat("[RexScriptEngine]: OnRexClientScriptCommand: " + e.ToString()); } }
/// <summary> /// Listens to all world scripts and clients. Sends event from that to python scripts /// </summary> //public void OnRexScriptListen(object sender, OSChatMessage chat)//uint vPrimLocalId, int vChannel, string vName, UUID vId, string vMessage) //{ // try // { // if (chat.Message != "") // { // uint localId = 0; // string sid = "0"; // string name = chat.From; // SceneObjectPart sop = m_scriptEngine.World.GetSceneObjectPart(chat.SenderUUID); // if (sop != null) // { // localId = sop.LocalId; // sid = sop.ParentGroup.LocalId.ToString(); // } // if (chat.Sender != null) // { // ScenePresence sp = m_scriptEngine.World.GetScenePresence(chat.Sender.AgentId); // if (sp != null) // { // return; // localId = sp.LocalId; // sid = chat.Sender.AgentId.ToString(); // if (name == "" || name == null) name = chat.Sender.Name; // } // } // //if (chat.SenderObject != null) // //{ // // m_log.Info("sender is an "+chat.SenderObject.GetType()); // //} // string eventParams = "\"listen\"," + localId + "," + chat.Channel.ToString() + "," + // "\"" + name + "\"" + "," + "\"" + sid + "\"" + "," + "\"" + chat.Message + "\""; // m_scriptEngine.ExecutePythonCommand("CreateEventWithName(" + eventParams + ")"); // //m_log.Info(eventParams); // } // } // catch (Exception e) // { // m_log.WarnFormat("[RexScriptEngine]: OnRexScriptListen: " + e.ToString()); // } //} public void OnRexClientStartUp(IRexClientCore client, UUID agentID, string status) { try { string EventParams = "\"client_startup\",\"" + agentID.ToString() + "\",\"" + status + "\""; m_scriptEngine.ExecutePythonCommand("CreateEventWithName(" + EventParams + ")"); } catch (Exception e) { m_log.WarnFormat("[RexScriptEngine]: OnRexClientStartUp: " + e.ToString()); } }
/// <summary> /// Fired when a client is started (rendering world after loading menu) /// </summary> void mcv_OnRexClientStartUp(IRexClientCore remoteClient, UUID agentID, string status) { if (status.ToLower() == "started" && remoteClient is IClientRexAppearance) SendAppearanceToAllUsers(remoteClient.AgentId, ((IClientRexAppearance)remoteClient).RexAvatarURLVisible, !string.IsNullOrEmpty(((IClientRexAppearance)remoteClient).RexAvatarURLOverride)); }