예제 #1
0
 public ChannelUser GetUser(User theUser)
 {
     return GetUser(theUser.Nick);
 }
예제 #2
0
        internal User GetUser(string Nick, bool askWho)
        {
            foreach (User u in users)
                if (u.Nick.ToLower() == Nick.ToLower())
                    return u;

            User ret = new User(base.CurrentConnection, Nick, askWho);
            users.Add(ret);
            if (this.UnknownUserEmerged != null)
                this.UnknownUserEmerged(base.CurrentConnection.Owner, new UnknownUserEmergedEventArgs(ret));
            return ret;
        }
예제 #3
0
 internal UnknownUserEmergedEventArgs(User __user)
 {
     _user = __user;
 }
예제 #4
0
 internal void FireInvitation(User user, string channelName)
 {
     if (this.Invitation != null)
         this.Invitation(base.CurrentConnection.Owner, new InvitationEventArgs(user, channelName));
 }
예제 #5
0
 internal MessageEventArgs(User __user, string __message)
     : this(__user, __message, false)
 {
 }
예제 #6
0
 internal PartEventArgs(User __user, string __reason)
 {
     _user = __user;
     _reason = __reason;
 }
예제 #7
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FireTopicChanged(User user, string topic)
 {
     if (this.ChannelTopicChanged != null)
         this.ChannelTopicChanged(this, new TopicChangedEventArgs(user, topic));
 }
예제 #8
0
 internal KickEventArgs(User __kicker, User __kicked, string __reason)
 {
     _kicker = __kicker;
     _kicked = __kicked;
     _reason = __reason;
 }
예제 #9
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FireModeChange(User user, string mode)
 {
     if (ModeChanged != null)
         ModeChanged(this, new ModeChangeEventArgs(user, mode));
 }
예제 #10
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FirePart(User user, string reason)
 {
     if (UserParted != null)
         UserParted(this, new PartEventArgs(user, reason));
 }
예제 #11
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FireKick(User kicker, User kicked, string reason)
 {
     if (this.UserWasKicked != null)
         this.UserWasKicked(this, new KickEventArgs(kicker, kicked, reason));
 }
예제 #12
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FireJoin(User user)
 {
     if (UserJoined != null)
         UserJoined(this, new JoinEventArgs(user));
 }
예제 #13
0
        internal User GetUser(UserInfo user)
        {
            foreach (User u in users)
                if (u.Nick.ToLower() == user.Nick.ToLower())
                    return u;

            User ret = new User(base.CurrentConnection, user.Nick, user.Identity, user.Host, true);
            users.Add(ret);
            return ret;
        }
예제 #14
0
 internal InvitationEventArgs(User __user, string __channelname)
 {
     _user = __user;
     _channelname = __channelname;
 }
예제 #15
0
파일: Channel.cs 프로젝트: dab85/irc-sharp
 internal void FireUserVoiceStatusChanged(User user, User victim, bool way)
 {
     if (this.UsersVoiceStatusChange != null)
         this.UsersVoiceStatusChange(this, new UserModeEventArgs(user, victim, way));
 }
예제 #16
0
 internal JoinEventArgs(User __user)
 {
     _user = __user;
 }
예제 #17
0
 internal ChannelUser(ServerConnection creatorsCurrentConnection, User user, string strChannelName)
     : base(creatorsCurrentConnection)
 {
     objUser = user;
 }
예제 #18
0
 internal MessageEventArgs(User __user, string __message, bool __isAction)
 {
     _user = __user;
     _message = __message;
     _isAction = __isAction;
 }
예제 #19
0
        static void Main(string[] args)
        {
            IrcSharpBot bot = new IrcSharpBot("CombatDrone");

            Dictionary<string, Channel> Channels = new Dictionary<string, Channel>();
            Dictionary<string, User> Users = new Dictionary<string, User>();

            Users.Add(bot.Nickname.ToLower(), bot);

            Func<String,User> GetUserByName = (name) => {
                User u;
                if (!Users.TryGetValue(name.ToLower(), out u)) {
                    u = new User(name);
                    Users.Add(name.ToLower(), u);
                }
                return u;
            };

            // End of MOTD - we only get this once, and it means things are going well.
            bot.Handlers["376"] = (IrcMessage msg) =>
            {
                bot.Join("#cddev");
                bot.Join("#fightclub");

            };

            bot.Handlers["JOIN"] = (IrcMessage msg) =>
            {
                string cname = msg.Params[0];

                // I am joining a channel
                if (msg.Prefix == bot.Nickname)
                {
                    Console.WriteLine("Joined {0}", msg.Params[0]);
                    Channels[msg.Params[0].ToLower()] = new Channel(msg.Params[0]);
                    bot.Action(msg.Params[0], "takes a bow");
                }
                else
                {
                    Channels[cname.ToLower()].AddUser(GetUserByName(msg.Params[0]));
                }

            };
            // NAMES
            bot.Handlers["353"] = (IrcMessage msg) =>
            {
                string me = msg.Params[0];
                string thing = msg.Params[1]; // this is an = ?
                string chan = msg.Params[2];
                string[] names = msg.Params[3].Split(' ');
                // I must be in the channel already

                Channel ch = Channels[chan.ToLower()];
                foreach (string name in names)
                {
                    ch.AddUser(GetUserByName(name));
                }
            };
            Random r = new Random();

            bot.Handlers["PRIVMSG"] = (IrcMessage msg) =>
            {

            };
            bot.Handlers["NICK"] = (IrcMessage msg) =>
            {
                if (msg.Prefix != bot.Nickname)
                {
                    User u = GetUserByName(msg.Prefix);
                    Users.Remove(u.Nickname.ToLower());
                    u.Nickname = msg.Params[0];
                    Users.Add(msg.Params[0].ToLower(), u);
                }
            };
            bot.Handlers["MODE"] = (IrcMessage msg) =>
            {
                if (msg.Params[1] == "+o " && msg.Params[2] == bot.Nickname)
                {
                    bot.Privmsg(msg.Params[0], "bwahaha.");
                }
            };

            bot.Connect("irc.afternet.org", 6667);
            Console.ReadLine();
            bot.Quit();
        }
예제 #20
0
 internal ModeChangeEventArgs(User __user, string __mode)
 {
     _user = __user;
     _mode = __mode;
 }
예제 #21
0
 internal void FireRecievedCtCpMessage(User user, string command, string parameters)
 {
     if (this.RecievedCtCpMessage != null)
         this.RecievedCtCpMessage(this, new CtCpMessageEventArgs(user, command, parameters));
 }
예제 #22
0
 internal TopicChangedEventArgs(User __setter, string __topic)
 {
     _setter = __setter;
     _topic = __topic;
 }
예제 #23
0
 internal void FireRecievedMessage(User user, string message, bool isAction)
 {
     if (this.RecievedMessage != null)
         this.RecievedMessage(this, new MessageEventArgs(user, message, isAction));
 }
예제 #24
0
 internal UserModeEventArgs(User __user, User __victimnick, bool __way)
 {
     _user = __user;
     _victimnick = __victimnick;
     _way = __way;
 }
예제 #25
0
 internal void FireRecievedNotice(User user, string message)
 {
     if (this.RecievedNotice != null)
         this.RecievedNotice(this, new MessageEventArgs(user, message));
 }
예제 #26
0
 public void AddUser(User user)
 {
     if (Users.Contains(user)) return;
     Users.Add(user);
 }
예제 #27
0
 internal CtCpMessageEventArgs(User __user, string __command, string __parameters)
 {
     _user = __user;
     _command = __command;
     _parameters = __parameters;
 }
예제 #28
0
 public ChannelUser this[User theUser]
 {
     get { return GetUser(theUser.Nick); }
 }
예제 #29
0
 internal User AddUser(User newUser)
 {
     users.Add(newUser);
     return newUser;
 }