示例#1
0
 public void Talk(System.String message)
 {
     if (_Player != null)
     {
         _Player.Talk(message).OnValue += (result) => { TalkResult.Invoke(result); };
     }
 }
示例#2
0
        private void PutNotification(Wiki wiki, TalkResult result, DateTime date)
        {
            string talkPageTemplate;
            string dateString = date.ToString("d MMMM yyyy");
            if (!result.Moved)
            {
                talkPageTemplate = "{{Не переименовано|" + dateString + "|" + result.Title + "}}\n";
            }
            else
            {
                talkPageTemplate = "{{Переименовано|" + dateString + "|" + result.Title +
                    "|" + result.MovedTo + "}}\n";
            }

            string talkPage = "Обсуждение:" + (result.Moved ? result.MovedTo : result.Title);
            Console.Out.WriteLine("Updating " + talkPage + "...");
            try
            {
                ParameterCollection parameters = new ParameterCollection();
                parameters.Add("rvprop", "content");
                parameters.Add("rvsection", "0)");
                parameters.Add("prop", "revisions");
                XmlDocument xml = wiki.Query(QueryBy.Titles, parameters, new string[] { talkPage });
                string content;
                XmlNode node = xml.SelectSingleNode("//rev");
                if (node != null)
                {
                    content = node.FirstChild != null ? node.FirstChild.Value : "";
                }
                else
                {
                    content = "";
                }

                int index = content.IndexOf("{{talkheader", StringComparison.CurrentCultureIgnoreCase);
                if (index != -1)
                {
                    int endIndex = content.IndexOf("}}", index);
                    if (endIndex != -1)
                    {
                        content = content.Insert(endIndex + 2, "\n" + talkPageTemplate);
                    }
                }
                else
                {
                    index = content.IndexOf("{{заголовок обсуждения", StringComparison.CurrentCultureIgnoreCase);
                    if (index != -1)
                    {
                        int endIndex = content.IndexOf("}}", index);
                        if (endIndex != -1)
                        {
                            content = content.Insert(endIndex + 2, "\n" + talkPageTemplate);
                        }
                    }
                    else
                    {
                        content = content.Insert(0, talkPageTemplate);
                    }
                }

                wiki.SaveSection(talkPage,
                    "0",
                    content,
                    "итог");
            }
            catch (WikiException e)
            {
                Console.Out.WriteLine("Failed to update " + talkPage + ":" + e.Message);
            }
        }