Пример #1
0
        void ClientNames(NamesEventArgs e)
        {
            var channel = Server.Channel(e.Channel);

            if (channel != null)
            {
                foreach (string user in e.UserList)
                {
                    var bot = channel.Bot(Regex.Replace(user, "^(@|!|%|\\+){1}", ""));
                    if (bot != null)
                    {
                        bot.Connected   = true;
                        bot.LastMessage = "joined channel " + channel.Name;
                        if (bot.State != Bot.States.Active)
                        {
                            bot.State = Bot.States.Idle;
                        }
                        bot.Commit();
                        OnBotJoined(this, new EventArgs <Bot>(bot));
                    }
                    else
                    {
                        OnUserJoined(this, new EventArgs <Model.Domain.Channel, string>(channel, user));
                    }
                }
                UpdateChannel(channel);
            }
        }
Пример #2
0
        private void Listener_OnNames(object sender, NamesEventArgs e)
        {
            OnNames?.Invoke(this, new NamesEventArgs(e.Channel, e.Nicks, e.Last));

            Channel chan = _channels[e.Channel];

            if (!_recievingNames)
            {
                _recievingNames = true;
            }

            foreach (string nick in e.Nicks)
            {
                _tempNames.Add(User.FromNames(nick));
            }

            Trace.WriteLine("Added chunk of " + e.Nicks.Length + " names", "Names");

            if (e.Last)
            {
                chan.LoadNewNames(_tempNames);
                _recievingNames = false;
                _tempNames.Clear();
            }
        }
Пример #3
0
 internal void HandleOnNames(object sender, NamesEventArgs e)
 {
     if (OnNames != null)
     {
         OnNames(this, e);
     }
 }
        private void NamesHandler(object sender, NamesEventArgs e)
        {
            lock (seenData)
            {
                foreach (string name in e.UserList)
                {
                    var result = seenData.SeenEntries.Where(s => s.Nick == name).FirstOrDefault();

                    if (result != null)
                    {
                        result.LastSeenTime = DateTime.Now;
                        result.LastAction   = "(ON)";
                        result.OnStatus     = true;
                    }
                    else
                    {
                        var seenEntry = new SeenEntry();
                        seenData.SeenEntries.InsertOnSubmit(seenEntry);

                        seenEntry.Nick         = name;
                        seenEntry.LastSeenTime = DateTime.Now;
                        seenEntry.LastAction   = "(ON)";
                        seenEntry.LastMessage  = "<no message yet>";
                        seenEntry.TimesSeen    = 0;
                        seenEntry.OnStatus     = true;
                    }
                }
                SaveDb();
            }
        }
Пример #5
0
 void ClientOnNames(object sender, NamesEventArgs e)
 {
     _events.Enqueue(new IrcEvent {
         Type = IrcEvent.EventType.Names, Event = e
     });
     _waitHandle.Set();
 }
Пример #6
0
        void OnNames(object sender, NamesEventArgs e)
        {
            if (ChannelUsers.ContainsKey(e.Data.Channel.ToLower()))
            {
                ChannelUsers.Remove(e.Data.Channel.ToLower());
            }
            var userlist = new List <string>();

            foreach (string s in e.UserList)
            {
                if (!String.IsNullOrEmpty(s.Trim()))
                {
                    userlist.Add(s);
                }
            }
            for (int i = 0; i < userlist.Count; i++)
            {
                if (!String.IsNullOrEmpty(userlist[i]))
                {
                    if (!Player.IsValidIRCNick(userlist[i]))
                    {
                        userlist[i] = Player.ValidIRCNick(userlist[i]);
                    }
                }
            }
            ChannelUsers.Add(e.Data.Channel.ToLower(), userlist);
        }
Пример #7
0
        private void irc_OnNames(object sender, NamesEventArgs e)
        {
            // Sort array and remove empty entries
            var users = from u in e.UserList
                        orderby u
                        where u.Trim().Length > 0
                        select u.Trim();

            // Add users
            var action = new Action(() =>
            {
                // Remember the previously selected username
                // TODO: Make these colors a resource
                var selected   = this.lstChatUsers.SelectedItem as TextBlock;
                var adminBrush = new SolidColorBrush(Color.FromRgb(0xFF, 0x00, 0x00));
                var userBrush  = new SolidColorBrush(Color.FromRgb(0x3E, 0x65, 0x96));
                int i          = 0;
                bool admin;

                // Add usernames
                this.lstChatUsers.Items.Clear();

                foreach (var u in users)
                {
                    admin = u.StartsWith("@");

                    this.lstChatUsers.Items.Add(new TextBlock()
                    {
                        Text       = !admin ? u : u.Remove(0, 1),
                        FontWeight = !admin ? FontWeights.Normal : FontWeights.Bold,
                        Foreground = !admin ? userBrush : adminBrush
                    });
                }

                // Select username
                if (selected == null || this.lstChatUsers.Items.Count == 0)
                {
                    return;
                }

                foreach (TextBlock item in this.lstChatUsers.Items)
                {
                    if (item.Text == selected.Text)
                    {
                        this.lstChatUsers.SelectedIndex = i;
                        return;
                    }

                    i++;
                }

                this.lstChatUsers.SelectedIndex = 0;

                //if (this.lstChatUsers.Items.Contains(selected)) this.lstChatUsers.SelectedItem = selected;
                //else this.lstChatUsers.SelectedIndex = 0;
            });

            // Do the magic
            this.lstChatUsers.Dispatcher.Invoke(action, DispatcherPriority.Normal);
        }
Пример #8
0
        private static void OnNames(object sender, NamesEventArgs e)
        {
            Users.TotalUsers += e.UserList.Count();

            /*uint user_count = 0;
             * foreach (string user in new List<string>(e.UserList))
             * {
             *  CreateUser(user, false);
             *  user_count++;
             * }
             *
             * Console.WriteLine("We joined, and there are already " + user_count + " users!");*/
        }
Пример #9
0
        void ircClient_OnNames(object sender, NamesEventArgs e)
        {
            Channel Chan = m_IRCClient.GetChannel(m_IRCChannel);

            // join the channel
            m_UserTree.Nodes.Clear();
            foreach (DictionaryEntry de in Chan.Users)
            {
                ChannelUser channeluser = (ChannelUser)de.Value;
                // Don't show us on the list
                if (channeluser.Nick != m_Nick)
                {
                    TreeNode Tree = new TreeNode();
                    Tree.Text = channeluser.Nick;
                    m_UserTree.Nodes.Add(Tree);
                }
            }
            BeginInvoke(new ActionDelegateNoParams(UpdateUserList), null);
        }
Пример #10
0
        public void ProcessNamesReply_IrcMessage()
        {
            IrcMessage msg = new IrcMessage();

            msg.Command   = "PRIVMSG";
            msg.From      = "hitchcock.freenode.net";
            msg.Message   = "Ortzinator OrtzIRC @ChanServ";
            msg.Target    = "#ortzirc";
            msg.Tokens    = _names.Split(new[] { ' ' });
            msg.ReplyCode = ReplyCode.RPL_NAMREPLY;

            NamesEventArgs givenArgs = null;

            _listener.OnNames += delegate(object sender, NamesEventArgs args) { givenArgs = args; };
            _listener.ProcessNamesReply(msg);
            Assert.AreEqual(new[] { "Ortzinator", "OrtzIRC", "@ChanServ" }, givenArgs.Nicks);
            Assert.AreEqual("#ortzirc", givenArgs.Channel);
            Assert.AreEqual(false, givenArgs.Last);
        }
Пример #11
0
        /// <summary>
        /// Event handler for the list of names being received.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void client_OnNames(object sender, NamesEventArgs e)
        {
            //------------------------------------------------------------------
            //  Add all the users.
            //------------------------------------------------------------------
            this.namesListReceived = true;
            foreach (string user in e.UserList)
            {
                this.AddUser(user);
            }

            //------------------------------------------------------------------
            //  Raise the event that the names list has now been loaded.
            //------------------------------------------------------------------
            if (this.OnNameListLoaded != null)
            {
                this.OnNameListLoaded(this, EventArgs.Empty);
            }

            this.messenger.SendMessage("Names list received.", IrcMessageType.Custom);
        }
Пример #12
0
        /// <summary>
        /// Handles the IRC OnNames event.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">EventArgs.</param>
        void OnNames(object sender, NamesEventArgs e)
        {
            SetStatus("Connected!");
            if (OpList != null)
            {
                OpList.Clear();
            }
            else
            {
                if (OpList == null)
                {
                    OpList = new Dictionary <string, string>();
                }
            }

            foreach (string user in e.UserList)
            {
                if (user.StartsWith("@") || user.StartsWith("&") || user.StartsWith("~"))
                {
                    OpList.Add(user.Substring(1), "");
                }
            }
        }
Пример #13
0
 void client_OnNames(object sender, NamesEventArgs e)
 {
     _window.AddUsers(e.UserList, e.Channel);
 }
Пример #14
0
 public NameListEventArgs([NotNull] NamesEventArgs namesArgs)
 {
     NamesArgs  = namesArgs;
     RawMessage = new RawMessageEventArgs(NamesArgs.Data);
 }
Пример #15
0
 protected virtual void HandleNames(object sender, NamesEventArgs e)
 {
     OnNamesInChannel(new NameListEventArgs(e));
 }
Пример #16
0
 void OnNames(object sender, NamesEventArgs e)
 {
     names = e.UserList;
 }
Пример #17
0
 void mClient_OnNames(object sender, NamesEventArgs e)
 {
     UpdateNames();
 }
 public void PluginsOnNames(object sender, NamesEventArgs e)
 {
     OnNames(this, e);
 }