private void onChat(object sender, OSChatMessage chat) { lock (m_dialogs) { DialogData data = m_dialogs.Find(x => x.ListenerID == chat.Channel && x.UserID == chat.Sender.AgentId); if (data != null) { if (chat.Message != "<--" && chat.Message != "-->" && chat.Message != "<- EXIT ->" && chat.Message != " " && chat.Message != String.Empty) { m_scriptEngine.PostScriptEvent(data.ScriptID, "listen", new Object[] { data.ListenerID, chat.From.ToString(), data.UserID.ToString(), chat.Message }); return; } if (chat.Message == " " || chat.Message == String.Empty) { return; } if (chat.Message == "<- EXIT ->") { m_dialogs.Remove(data); return; } if (chat.Message == "-->") { data.CurrentPage++; } if (chat.Message == "<--") { data.CurrentPage--; } m_dialogModule.SendDialogToUser(data.UserID, data.ObjectName, data.HostID, data.OwnerID, data.getMessage(), new UUID("00000000-0000-2222-3333-100000001000"), data.ListenerID, data.getPageButtons(data.CurrentPage)); } } }
public int osEasyDialog(UUID hostID, UUID scriptID, String user, String message, Object[] labels) { List <String> buttons = new List <String>(); if (UUID.TryParse(user, out UUID target)) { if (labels.Length == 0) { throw new ScriptException("Labels must dont be empty!"); } if (Encoding.UTF8.GetByteCount(message) > 512) { throw new ScriptException("Message longer than 512 bytes."); } lock (m_dialogs) { SceneObjectPart part = base.World.GetSceneObjectPart(hostID); foreach (Object o in labels) { String text = o.ToString().Trim(); if (text == String.Empty) { text = " "; } if (text.Length >= 24) { text = text.Substring(0, 24); } buttons.Add(text); } DialogData dialog = new DialogData(hostID, scriptID, target, part.OwnerID, part.Name, message, buttons.ToArray()); m_dialogModule.SendDialogToUser(dialog.UserID, dialog.ObjectName, dialog.HostID, dialog.OwnerID, dialog.getMessage(), new UUID("00000000-0000-2222-3333-100000001000"), dialog.ListenerID, dialog.getPageButtons(dialog.CurrentPage)); m_dialogs.Add(dialog); return(dialog.ListenerID); } } else { throw new ScriptException("User must be a valid key."); } }