示例#1
0
 private void CheckUserName(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
 {
     NormalisedUser normuser = new NormalisedUser(source.Name.ToString());
     client.LocalUser.SendNotice(source.Name, normuser.normalised_username());
 }
示例#2
0
 private void MyVisits(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
 {
     NormalisedUser normaliseduser = new NormalisedUser();
     normaliseduser.orig_username = source.Name;
     IEnumerable<User> joineduser = LUserList.Where(x => x.isUser(normaliseduser.normalised_username()));
     if (joineduser.Count() > 0)
     {
         client.LocalUser.SendMessage(source.Name, joineduser.First().VisitCounter + " visits");
     }
 }
示例#3
0
 protected override void OnChannelUserLeft(IrcChannel channel, IrcChannelUserEventArgs e)
 {
     ReconnectInbound = false;
     NormalisedUser normaliseduser = new NormalisedUser();
     normaliseduser.orig_username = e.ChannelUser.User.ToString();
     IEnumerable<User> joineduser = LUserList.Where(x => x.isUser(normaliseduser.normalised_username()));
     if(joineduser.Count() > 0)
     {
         joineduser.First().leave();
     }
 }
示例#4
0
        private void AddAlias(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
        {
            if (parameters.Count() > 0)
            {
                if (parameters[0].ToString() == "help")
                {
                    client.LocalUser.SendNotice(source.Name, "!addalias AliasName [Password]");
                    client.LocalUser.SendNotice(source.Name, "This adds the Alias to your User if possible");
                    client.LocalUser.SendNotice(source.Name, "Passwort is only essential if set");
                    return;
                }
                string password = "";
                if(parameters.Count() == 2)
                {
                    password = parameters[1];
                }

                NormalisedUser normuser = new NormalisedUser(source.Name.ToString());
                NormalisedUser alias = new NormalisedUser(parameters[0]);
                User user = getUser(normuser.normalised_username().ToLower());
                if (user != null)
                if (user.AddAlias(alias.normalised_username(),LUserList))
                {
                    client.LocalUser.SendNotice(source.Name, "Alias Added");
                }
                else
                {
                    client.LocalUser.SendNotice(source.Name, "Error");
                }

            }
            SaveUserList();
        }
示例#5
0
        private void ToggleUserLogging(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
        {
            NormalisedUser normuser = new NormalisedUser(source.Name.ToString());

            User user = getUser(normuser.normalised_username().ToLower());
            if (user != null)
            client.LocalUser.SendNotice(source.Name, getUser(normuser.normalised_username()).toggleLoggingOp().ToString());
        }
示例#6
0
 protected override void OnChannelUserJoined(IrcChannel channel, IrcChannelUserEventArgs e)
 {
     if (Properties.Settings.Default.SilentMode.ToString() != "true")
     {
         if (xmlprovider == null)
         {
             xmlprovider = new XMLProvider();
         }
         ReconnectInbound = false;
         if (!e.ChannelUser.User.ToString().ToLower().Contains("andchat"))
         {
             #region whisperstatsonjoin
             NormalisedUser normaliseduser = new NormalisedUser();
             normaliseduser.orig_username = e.ChannelUser.User.ToString();
             IEnumerable<User> joineduser = LUserList.Where(x => x.isUser(normaliseduser.normalised_username()));
             if (joineduser.Count() > 0)
             {
                 Tuple<DateTime, int> VisitData = joineduser.First().visit();
                 string visitstring = "";
                 switch (VisitData.Item2)
                 {
                     case 1: visitstring = VisitData.Item2 + "st"; break;
                     case 2: visitstring = VisitData.Item2 + "nd"; break;
                     case 3: visitstring = VisitData.Item2 + "rd"; break;
                     default: visitstring = VisitData.Item2 + "th"; break;
                 }
                 String days_since_last_visit = DateTime.Now.Subtract(Convert.ToDateTime(VisitData.Item1)).ToString("d' days 'h':'mm':'ss");
                 String output = "This is " + normaliseduser.normalised_username() + "'s " + visitstring + " visit. Their last visit was on " + VisitData.Item1.ToString("dd-MM-yyyy HH:mm:ss") + " (" + days_since_last_visit + " ago)";
                 foreach (var loggingOp in LUserList.Where(x => x.bIsLoggingOp))
                     thisclient.LocalUser.SendNotice(loggingOp.Name, output);
             }
             else
             {
                 String output = "This is " + normaliseduser.normalised_username() + "'s first visit.";
                 foreach (var loggingOp in LUserList.Where(x => x.bIsLoggingOp))
                     thisclient.LocalUser.SendNotice(loggingOp.Name, output);
                 User newUser = new User();
                 XDocument Streams = XDocument.Load(Directory.GetCurrentDirectory() + "/XML/Streams.xml");
                 IEnumerable<XElement> streamchildren = from streams in Streams.Root.Elements() select streams;
                 foreach (var stream in streamchildren)
                 {
                     newUser.addStream(stream.Attribute("Channel").Value, true);
                 }
                 newUser.Name = normaliseduser.normalised_username();
                 newUser.bIsLoggingOp = false;
                 newUser.password = "";
                 newUser.bMessages = false;
                 newUser.visit();
                 LUserList.Add(newUser);
                 // TODO: Suscribe to all streams;
             }
             #endregion
             SaveUserList();
             foreach (string streamname in xmlprovider.OnlineStreamList())
             {
                 string _streamname = streamname.Replace(",", "");
                 User user = getUser(normaliseduser.normalised_username().ToLower());
                 if(user != null)
                 if (user.isSubscribed(_streamname))
                 {
                         thisclient.LocalUser.SendNotice(e.ChannelUser.User.ToString(), String.Format(
                                                     "Stream running: _{0}_ ({1}) at {2}",
                                                     _streamname,
                                                     xmlprovider.StreamInfo(_streamname, "game"),
                                                     xmlprovider.StreamInfo(_streamname, "URL")
                                                     ));
                 }
             }
             normaliseduser = null;
         }
     }
 }
示例#7
0
        private void RemoveAlias(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
        {
            if (parameters.Count() > 0)
            {
                if (parameters[0].ToString() == "help")
                {
                    client.LocalUser.SendNotice(source.Name, "!removealias AliasName [Password]");
                    client.LocalUser.SendNotice(source.Name, "This removes the Alias from your User if possible");
                    client.LocalUser.SendNotice(source.Name, "Passwort is only essential if set");
                    return;
                }
                string password = "";
                if (parameters.Count() == 2)
                {
                    password = parameters[1];
                }

                NormalisedUser normuser = new NormalisedUser(source.Name.ToString());
                NormalisedUser alias = new NormalisedUser(parameters[0]);
                User user = getUser(normuser.normalised_username()).RemoveAlias(alias.normalised_username());
                XDocument Streams = XDocument.Load(Directory.GetCurrentDirectory() + "/XML/Streams.xml");
                IEnumerable<XElement> streamchildren = from streams in Streams.Root.Elements() select streams;
                foreach (var stream in streamchildren)
                {
                    user.addStream(stream.Attribute("Channel").Value, true);
                }
                LUserList.Add(user);
                if (user != null)
                {
                    client.LocalUser.SendNotice(source.Name, "Alias Removed");
                }
                else
                {
                    client.LocalUser.SendNotice(source.Name, "Error");
                }

            }
            SaveUserList();
        }
示例#8
0
 private void StreamCheck(IrcClient client, IIrcMessageSource source, IList<IIrcMessageTarget> targets, string command, IList<string> parameters)
 {
     foreach (var stream in xmlprovider.OnlineStreamList())
     {
         string[] streamprovidersplit = stream.Split(',');
         //TODO add provider link completion
         bool userfound = false;
         foreach (var user in thisclient.Channels.First().Users)
         {
             if (user.User.NickName.ToLower() == source.Name.ToLower())
             {
                 userfound = true;
             }
         }
         List<NormalisedUser> UsersinChannel = new List<NormalisedUser>();
         NormalisedUser normuser = new NormalisedUser(source.Name.ToString());
         User userUser = getUser(normuser.normalised_username().ToLower());
         if (userUser != null)
         if (userUser.isSubscribed(stream))
         {
             client.LocalUser.SendNotice(source.Name, streamprovidersplit[0] + " is currently streaming " + xmlprovider.StreamInfo(streamprovidersplit[0], "game") + " at " + xmlprovider.StreamInfo(streamprovidersplit[0], "URL"));
         }
         else
         {
             client.LocalUser.SendNotice(source.Name, "No Stream is currently running.");
         }
     }
     if (xmlprovider.OnlineStreamList().Count() == 0)
     {
         client.LocalUser.SendNotice(source.Name, "No Stream is currently running.");
     }
 }
示例#9
0
 private void MyVisits(object sender, MessageEventArgs e, List<string> parameters)
 {
     NormalisedUser normaliseduser = new NormalisedUser();
     normaliseduser.orig_username = e.User.Name;
     IEnumerable<DataFiles.User> joineduser = LUserList.Where(x => x.isUser(normaliseduser.normalised_username()));
     if (joineduser.Count() > 0)
     {
         e.User.SendMessage(joineduser.First().VisitCounter + " visits");
     }
 }
示例#10
0
 private void CheckUserName(object sender, MessageEventArgs e, List<string> parameters)
 {
     NormalisedUser normuser = new NormalisedUser(e.User.Name.ToString());
     e.User.SendMessage(normuser.normalised_username());
 }
示例#11
0
        private void AddAlias(object sender, MessageEventArgs e, List<string> parameters)
        {
            if (parameters.Count() > 0)
            {
                if (parameters[0].ToString() == "help")
                {
                    e.User.SendMessage("!addalias AliasName [Password]");
                    e.User.SendMessage("This adds the Alias to your User if possible");
                    e.User.SendMessage("Passwort is only essential if set");
                    return;
                }
                string password = "";
                if (parameters.Count() == 2)
                {
                    password = parameters[1];
                }

                NormalisedUser normuser = new NormalisedUser(e.User.Name.ToString());
                NormalisedUser alias = new NormalisedUser(parameters[0]);
                DataFiles.User user = getUser(normuser.normalised_username().ToLower());
                if (user != null)
                    if (user.AddAlias(alias.normalised_username(), LUserList))
                    {
                        e.User.SendMessage("Alias Added");
                    }
                    else
                    {
                        e.User.SendMessage("Error");
                    }
            }
            SaveUserList();
        }
示例#12
0
        private void StreamCheck(object sender, MessageEventArgs e, List<string> parameters)
        {
            foreach (var stream in xmlprovider.OnlineStreamList())
            {
                string[] streamprovidersplit = stream.Split(',');

                List<NormalisedUser> UsersinChannel = new List<NormalisedUser>();
                NormalisedUser normuser = new NormalisedUser(e.User.Name.ToString());
                DataFiles.User userUser = getUser(normuser.normalised_username().ToLower());
                if (userUser != null)
                    if (userUser.isSubscribed(stream))
                    {
                        e.User.SendMessage(streamprovidersplit[0] + " is currently streaming " + xmlprovider.StreamInfo(streamprovidersplit[0], "game") + " at " + xmlprovider.StreamInfo(streamprovidersplit[0], "URL"));
                    }
                    else
                    {
                        e.User.SendMessage("No Stream is currently running.");
                    }
            }
            if (xmlprovider.OnlineStreamList().Count() == 0)
            {
                e.User.SendMessage("No Stream is currently running.");
            }
        }
示例#13
0
        private void RemoveAlias(object sender, MessageEventArgs e, List<string> parameters)
        {
            if (parameters.Count() > 0)
            {
                if (parameters[0].ToString() == "help")
                {
                    e.User.SendMessage("!removealias AliasName [Password]");
                    e.User.SendMessage("This removes the Alias from your User if possible");
                    e.User.SendMessage("Passwort is only essential if set");
                    return;
                }
                string password = "";
                if (parameters.Count() == 2)
                {
                    password = parameters[1];
                }

                NormalisedUser normuser = new NormalisedUser(e.User.Name.ToString());
                NormalisedUser alias = new NormalisedUser(parameters[0]);
                DataFiles.User user = getUser(normuser.normalised_username()).RemoveAlias(alias.normalised_username());
                XDocument Streams = XDocument.Load(Directory.GetCurrentDirectory() + "/XML/Streams.xml");
                IEnumerable<XElement> streamchildren = from streams in Streams.Root.Elements() select streams;
                foreach (var stream in streamchildren)
                {
                    user.addStream(stream.Attribute("Channel").Value, true);
                }
                LUserList.Add(user);
                if (user != null)
                {
                    e.User.SendMessage("Alias Removed");
                }
                else
                {
                    e.User.SendMessage("Error");
                }

            }
            SaveUserList();
        }