public string Render(PlaceHolder placeHolder, PageEntry pageEntry, System.Xml.XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { string output; switch (placeHolder.Expression.ToLower()) { case "subscribe": output = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Pages.Widgets.Newsletter.newsletter-subscribe.htm") .Replace("[blurb]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/SubscribeBlurb").FirstChild.Value) .Replace("[label]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/EmailFieldLabel").FirstChild.Value) .Replace("[button]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/SubscribeButtonText").FirstChild.Value) .Replace("[pleasewait]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/SubscribingBlurb").FirstChild.Value) .Replace("[subscribed]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/SubscribedBlurb").FirstChild.Value) ; break; case "unsubscribe": output = ResourceLoader.LoadTextResource("Sprocket.Web.CMS.Pages.Widgets.Newsletter.newsletter-unsubscribe.htm") .Replace("[blurb]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/UnsubscribeBlurb").FirstChild.Value) .Replace("[label]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/EmailFieldLabel").FirstChild.Value) .Replace("[button]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/UnsubscribeButtonText").FirstChild.Value) .Replace("[pleasewait]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/UnsubscribingBlurb").FirstChild.Value) .Replace("[unsubscribed]", GeneralRegistry.XmlDoc.SelectSingleNode("/General/Newsletter/UnsubscribedBlurb").FirstChild.Value) ; break; default: containsCacheableContent = false; return "[Newsletter renderer expects expression of \"Subscribe\" or \"Unsubscribe\"]"; } containsCacheableContent = true; return output; }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, System.Xml.XmlDocument content, Stack<string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; return WebClientScripts.Instance.BuildScriptTags(); }
public static void Password_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; Account acct = from.Account as Account; if (acct == null) { return; } IPAddress[] accessList = acct.LoginIPs; if (accessList.Length == 0) { return; } NetState ns = from.NetState; if (ns == null) { return; } if (e.Length == 0) { from.SendMessage("You must specify the new password."); return; } else if (e.Length == 1) { from.SendMessage("To prevent potential typing mistakes, you must type the password twice. Use the format:"); from.SendMessage("Password \"(newPassword)\" \"(repeated)\""); return; } string pass = e.GetString(0); string pass2 = e.GetString(1); if (pass != pass2) { from.SendMessage("The passwords do not match."); return; } bool isSafe = true; for (int i = 0; isSafe && i < pass.Length; ++i) { isSafe = (pass[i] >= 0x20 && pass[i] < 0x7F); } if (!isSafe) { from.SendMessage("That is not a valid password."); return; } try { IPAddress ipAddress = ns.Address; if (Utility.IPMatchClassC(accessList[0], ipAddress)) { acct.SetPassword(pass); from.SendMessage("The password to your account has changed."); } else { PageEntry entry = PageQueue.GetEntry(from); if (entry != null) { if (entry.Message.StartsWith("[Automated: Change Password]")) { from.SendMessage("You already have a password change request in the help system queue."); } else { from.SendMessage("Your IP address does not match that which created this account."); } } else if (PageQueue.CheckAllowedToPage(from)) { from.SendMessage("Your IP address does not match that which created this account. A page has been entered into the help system on your behalf."); from.SendLocalizedMessage(501234, "", 0x35); /* The next available Counselor/Game Master will respond as soon as possible. * Please check your Journal for messages every few minutes. */ PageQueue.Enqueue(new PageEntry(from, String.Format("[Automated: Change Password]<br>Desired password: {0}<br>Current IP address: {1}<br>Account IP address: {2}", pass, ipAddress, accessList[0]), PageType.Account)); } } } catch { } }
public static void Password_OnCommand(CommandEventArgs e) { Mobile from = e.Mobile; Account acct = from.Account as Account; if (acct == null) { return; } IPAddress[] accessList = acct.LoginIPs; if (accessList.Length == 0) { return; } NetState ns = from.NetState; if (ns == null) { return; } if (e.Length == 0) { from.SendMessage("Musis specifikovat nove heslo."); return; } else if (e.Length == 1) { from.SendMessage("Kvuly prevenci prekliknuti pri psani hesla, musis zadat sve heslo dvakrat. Pouzij tento format:"); from.SendMessage(".Heslo \"(Noveheslo)\" \"(ZnovuNoveHeslo)\""); return; } string pass = e.GetString(0); string pass2 = e.GetString(1); if (pass != pass2) { from.SendMessage("Heslo se neshoduje!"); return; } bool isSafe = true; for (int i = 0; isSafe && i < pass.Length; ++i) { isSafe = (pass[i] >= 0x20 && pass[i] < 0x80); } if (!isSafe) { from.SendMessage("Toto neni platne heslo."); return; } try { IPAddress ipAddress = ns.Address; if (Utility.IPMatchClassC(accessList[0], ipAddress)) { acct.SetPassword(pass); from.SendMessage("The password to your account has changed."); } else { PageEntry entry = PageQueue.GetEntry(from); if (entry != null) { if (entry.Message.StartsWith("[Automated: Change Password]")) { from.SendMessage("You already have a password change request in the help system queue."); } else { from.SendMessage("Your IP address does not match that which created this account."); } } else if (PageQueue.CheckAllowedToPage(from)) { from.SendMessage("Your IP address does not match that which created this account. A page has been entered into the help system on your behalf."); from.SendLocalizedMessage(501234, "", 0x35); /* The next available Counselor/Game Master will respond as soon as possible. * Please check your Journal for messages every few minutes. */ PageQueue.Enqueue(new PageEntry(from, String.Format("[Automated: Change Password]<br>Desired password: {0}<br>Current IP address: {1}<br>Account IP address: {2}", pass, ipAddress, accessList[0]), PageType.Account)); } } } catch { } }
public static void PageResp(object obj) { Paging = true; var objects = (object[])obj; int w = (int)objects[0]; int pag = (int)objects[1]; int paG; if (w == 1) { up: try { paG = Convert.ToInt32(Console.ReadLine()); } catch { Console.WriteLine("Thats not a number,try again."); goto up; } Console.WriteLine("Type your response"); ThreadPool.QueueUserWorkItem(PageResp, new object[] { 2, paG }); } else { string resp = Console.ReadLine(); ArrayList list = PageQueue.List; _List = (PageEntry[])list.ToArray(typeof(PageEntry)); if (_List.Length > 0) { if (pag > _List.Length) { Console.WriteLine("Error: Not a valid page number"); } else { for (int i = 0; i < _List.Length; ++i) { PageEntry e = _List[i]; if (i != pag) { continue; } e.Sender.SendGump(new MessageSentGump(e.Sender, "Admin", resp)); PageQueue.Remove(e); Console.WriteLine("Message Sent..."); } } } else { Console.WriteLine("There are no pages to display."); } } Paging = false; ThreadPool.QueueUserWorkItem(ConsoleListen); }
private static void HandlePaging(string sub) { if (sub.StartsWith("help", StringComparison.OrdinalIgnoreCase) || sub.StartsWith("?", StringComparison.OrdinalIgnoreCase)) { DisplayPagingHelp(); HandlePaging(String.Empty); return; } if (PageQueue.List.Count == 0) { Console.WriteLine("There are no pages in the queue."); if (_Pages != null) { _Pages = null; Console.WriteLine("[Pages]: Disabled page mode."); } return; } if (String.IsNullOrWhiteSpace(sub)) { if (_Pages == null) { Console.WriteLine("[Pages]: Enabled page mode."); DisplayPagingHelp(); } _Pages = PageQueue.List.Cast <PageEntry>().ToArray(); const string format = "{0:D3}:\t{1}\t{2}"; for (int i = 0; i < _Pages.Length; i++) { Console.WriteLine(format, i + 1, _Pages[i].Type, _Pages[i].Sender); } return; } if (sub.StartsWith("exit", StringComparison.OrdinalIgnoreCase)) { if (_Pages != null) { _Pages = null; Console.WriteLine("[Pages]: Disabled page mode."); } return; } if (sub.StartsWith("clear", StringComparison.OrdinalIgnoreCase)) { if (_Pages != null) { foreach (PageEntry page in _Pages) { PageQueue.Remove(page); } Console.WriteLine("[Pages]: Queue cleared."); Array.Clear(_Pages, 0, _Pages.Length); _Pages = null; Console.WriteLine("[Pages]: Disabled page mode."); } return; } if (sub.StartsWith("remove", StringComparison.OrdinalIgnoreCase)) { string[] args; PageEntry page = FindPage(sub, out args); if (page == null) { Console.WriteLine("[Pages]: Invalid page entry."); } else { PageQueue.Remove(page); Console.WriteLine("[Pages]: Removed from queue."); } HandlePaging(String.Empty); return; } if (sub.StartsWith("handle", StringComparison.OrdinalIgnoreCase)) { string[] args; PageEntry page = FindPage(sub, out args); if (page == null) { Console.WriteLine("[Pages]: Invalid page entry."); HandlePaging(String.Empty); return; } if (args.Length <= 0) { Console.WriteLine("[Pages]: Message required."); HandlePaging(String.Empty); return; } page.Sender.SendGump(new MessageSentGump(page.Sender, ServerList.ServerName, String.Join(" ", args))); Console.WriteLine("[Pages]: Message sent."); PageQueue.Remove(page); Console.WriteLine("[Pages]: Removed from queue."); HandlePaging(String.Empty); return; } if (sub.StartsWith("view", StringComparison.OrdinalIgnoreCase)) { string[] args; PageEntry page = FindPage(sub, out args); if (page == null) { Console.WriteLine("[Pages]: Invalid page entry."); HandlePaging(String.Empty); return; } int idx = Array.IndexOf(_Pages, page) + 1; Console.WriteLine("[Pages]: {0:D3}:\t{1}\t{2}", idx, page.Type, page.Sender); if (!String.IsNullOrWhiteSpace(page.Message)) { Console.WriteLine("[Pages]: {0}", page.Message); } else { Console.WriteLine("[Pages]: No message supplied."); } HandlePaging(String.Empty); return; } if (_Pages != null) { string[] args; PageEntry page = FindPage(sub, out args); if (page != null) { int idx = Array.IndexOf(_Pages, page) + 1; Console.WriteLine("[Pages]: {0:D3}:\t{1}\t{2}", idx, page.Type, page.Sender); if (!String.IsNullOrWhiteSpace(page.Message)) { Console.WriteLine("[Pages]: {0}", page.Message); } else { Console.WriteLine("[Pages]: No message supplied."); } HandlePaging(String.Empty); return; } Array.Clear(_Pages, 0, _Pages.Length); _Pages = null; Console.WriteLine("[Pages]: Disabled page mode."); } }
public override void OnEnable() { base.OnEnable(); var pageList = rootVisualElement.Q("page-list"); var pageFiles = Directory.EnumerateFiles($"{DocumentationRoot}/topics", "*.uxml", SearchOption.AllDirectories) .OrderBy(dir => Path.GetDirectoryName(dir)) .ThenBy(path => Path.GetFileNameWithoutExtension(path)) .ToArray(); pageList.RegisterCallback <KeyDownEvent>(OnNavigate); pageList.Clear(); var pages = new Dictionary <string, PageEntry>(); PageEntry defaultPage = null; foreach (var pagePath in pageFiles) { var fileName = Path.GetFileNameWithoutExtension(pagePath); var containingDirectory = Path.GetDirectoryName(pagePath); var pageNamePath = Path.Combine(containingDirectory, fileName); var fullParentPageName = GetPageName(containingDirectory); var fullPageName = GetPageName(pageNamePath); var parentPage = pages.ContainsKey(fullParentPageName) ? pages[fullParentPageName] : null; int pageDepth = 0; if (parentPage != null) { pageDepth = parentPage.depth + 1; } var pageEntry = new PageEntry(fileName, fullPageName, pagePath, pageDepth); pageEntry.FoldOut.RegisterCallback <ChangeEvent <bool> >(OnToggle); pageEntry.AddManipulator(new Clickable(OnSelect)); if (fullPageName.Equals("topics-1st_read_me!")) { defaultPage = pageEntry; } if (parentPage != null) { var parentIndex = pageList.IndexOf(parentPage); pageEntry.AddToClassList(HiddenClass); pageEntry.AddToClassList(MinimizeClass); pageList.Insert(parentIndex + parentPage.ChildPageCount + 1, pageEntry); parentPage.FoldOut.RemoveFromClassList(HiddenClass); parentPage.ChildPageCount++; } else { pageList.Add(pageEntry); } #if UNITY_2019_1_OR_NEWER rootVisualElement.RegisterCallback <CustomStyleResolvedEvent>(OnStyleResolved); #endif pages.Add(fullPageName, pageEntry); } if (defaultPage != null) { LoadSelection(defaultPage); } }
public override void OnEnable() { base.OnEnable(); var pageList = rootVisualElement.Q("page-list"); var topicsFileGuids = AssetDatabase.FindAssets($"t:{nameof(VisualTreeAsset)}", new string[] { $"{DocumentationRoot}/topics" }); var topicsFilePaths = topicsFileGuids.Select(AssetDatabase.GUIDToAssetPath).ToArray(); var uxmlTopics = topicsFilePaths.Distinct().ToArray(); var pageFiles = uxmlTopics .OrderBy(dir => Path.GetDirectoryName(dir)) .ThenBy(path => Path.GetFileNameWithoutExtension(path)) .ToArray(); pageList.RegisterCallback <KeyDownEvent>(OnNavigate); pageList.Clear(); var pages = new Dictionary <string, PageEntry>(); PageEntry defaultPage = null; foreach (var pagePath in pageFiles) { var fileName = Path.GetFileNameWithoutExtension(pagePath); var containingDirectory = Path.GetDirectoryName(pagePath); var pageNamePath = Path.Combine(containingDirectory, fileName); var fullParentPageName = GetPageName(containingDirectory); var fullPageName = GetPageName(pageNamePath); var parentPage = pages.TryGetValue(fullParentPageName, out var tempPage) ? tempPage : null; int pageDepth = 0; if (parentPage != null) { pageDepth = parentPage.Depth + 1; } var pageEntry = new PageEntry(fileName, fullPageName, pagePath, pageDepth); pageEntry.FoldOut.RegisterCallback <ChangeEvent <bool> >(OnToggle); pageEntry.AddManipulator(new Clickable(OnSelect)); if (fullPageName.Equals("topics-1st_read_me!")) { defaultPage = pageEntry; } if (parentPage != null) { var parentIndex = pageList.IndexOf(parentPage); pageEntry.AddToClassList(HiddenClass); pageEntry.AddToClassList(MinimizeClass); pageList.Insert(parentIndex + parentPage.ChildPageCount + 1, pageEntry); parentPage.FoldOut.RemoveFromClassList(HiddenClass); parentPage.ChildPageCount++; } else { pageList.Add(pageEntry); } #if UNITY_2019_1_OR_NEWER rootVisualElement.RegisterCallback <CustomStyleResolvedEvent>(OnStyleResolved); #endif pages.Add(fullPageName, pageEntry); } if (defaultPage != null) { LoadSelection(defaultPage); } }
private static void Pages(NetState state, PacketReader pvSrc) // 0x08 { ArrayList list = PageQueue.List; int identifier = pvSrc.ReadInt32(); byte subID = pvSrc.ReadByte(); Mobile sender = World.FindMobile(identifier); if (sender == null) { return; } PageEntry e = PageQueue.GetEntry(sender); if (e == null) // no such page { return; } switch (subID) { case 0x01: // Handle { bool handle = pvSrc.ReadBoolean(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); if (from != null && (e.Handler == null || e.Handler == from)) { e.Handler = handle ? from : null; } //Console.WriteLine( "Handle: {0} handler: {1}", handle, from != null ? from.Name : "none" ); break; } case 0x02: // Remove { PageQueue.Remove(e); break; } case 0x03: // Predefined { byte messageIndex = pvSrc.ReadByte(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); ArrayList preresp = PredefinedResponse.List; if (from != null && messageIndex >= 0 && messageIndex < preresp.Count) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, ((PredefinedResponse)preresp[messageIndex]).Message)); } break; } case 0x04: // Answer { Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); string message = pvSrc.ReadString(); if (from != null) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, message)); } break; } } }
public string Render(PlaceHolder placeHolder, PageEntry pageEntry, System.Xml.XmlDocument content, Stack <string> placeHolderStack, out bool containsCacheableContent) { containsCacheableContent = true; return(WebClientScripts.Instance.BuildScriptTags()); }