Exemple #1
0
        private static void IrcClient_LocalUser_JoinedChannel(object sender,
                                                              IrcChannelEventArgs e)
        {
            var localUser = (IrcLocalUser)sender;

            e.Channel.UserJoined += IrcClient_Channel_UserJoined;
            e.Channel.UserLeft   += IrcClient_Channel_UserLeft;

            TechBot.Objects.Channel newChannel = new TechBot.Objects.Channel(e.Channel);
            ChannelList.Add(newChannel);

            Log.Logger.OutputToConsole("You joined the channel {0}.", e.Channel.Name);
        }
Exemple #2
0
        private static void IrcClient_Channel_UserLeft(object sender,
                                                       IrcChannelUserEventArgs e)
        {
            var channel = (IrcChannel)sender;

            TechBot.Objects.Channel Channel =
                FindChannel(e.ChannelUser.Channel.Name.Substring(1));
            TechBot.Objects.User tempUser =
                Channel.FindUser(e.ChannelUser.User.NickName);

            Channel.UserLeft(tempUser);

            Log.Logger.OutputToConsole("[{0}] User {1} left the channel.", channel.Name,
                                       e.ChannelUser.User.NickName);
        }
Exemple #3
0
        private static void IrcClient_LocalUser_LeftChannel(object sender,
                                                            IrcChannelEventArgs e)
        {
            var localUser = (IrcLocalUser)sender;

            e.Channel.UserJoined -= IrcClient_Channel_UserJoined;
            e.Channel.UserLeft   -= IrcClient_Channel_UserLeft;

            TechBot.Objects.Channel Channel = FindChannel(e.Channel.Name.Substring(1));
            if (ChannelList.Contains(Channel))
            {
                ChannelList.Remove(Channel);
            }

            Log.Logger.OutputToConsole("You left the channel {0}.", e.Channel.Name);
        }
Exemple #4
0
        private static void IrcClient_Process(object sender,
                                              IrcRawMessageEventArgs e)
        {
            ThreadPool.QueueUserWorkItem(
                new WaitCallback(delegate(object state) {
                try {
                    string[] strlist = e.RawContent.Split(" ");
                    if (strlist[2] == "PRIVMSG")
                    {
                        string[] modes = strlist [0]
                                         .Split(";");
                        int i           = 0;
                        bool isMod      = false;
                        string username = "";
                        foreach (string r in modes)
                        {
                            if (r.Contains("mod="))
                            {
                                string IsMod = r.Split("=")[1];
                                // IsMod = IsMod.Remove(IsMod.Length - 1);
                                if (IsMod == "1")
                                {
                                    isMod = true;
                                }
                            }
                            else if (r.Contains("display-name="))
                            {
                                username = r.Split("=")[1];
                            }
                            i++;
                        }

                        // Channel      = String    channelName
                        // Username     = String    username
                        // Message      = String    message
                        // Is User mod? = Boolean   isMod

                        string channelName = strlist [3]
                                             .Substring(1);
                        string message = strlist [4]
                                         .Substring(1);

                        if (username.ToLower() == channelName.ToLower())
                        {
                            isMod = true;
                        }

                        Log.Logger.OutputToConsole("[{0}] {1}: {2}", strlist[3], username,
                                                   message);

                        TechBot.Objects.Channel Channel = FindChannel(channelName);
                        TechBot.Objects.User tempUser   = Channel.FindUser(username);

                        if (tempUser == null)
                        {
                            tempUser = new TechBot.Objects.User(username, channelName);
                        }

                        Channel.UserJoined(tempUser);

                        Channel.ChatMessageReceived(tempUser, isMod, message);
                    }
                    else
                    {
                        // Log.Logger.OutputToConsole(e.RawContent);
                    }
                } catch {
                }
            }),
                null);
        }