public ChannelUser GetUser(User theUser) { return GetUser(theUser.Nick); }
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; }
internal UnknownUserEmergedEventArgs(User __user) { _user = __user; }
internal void FireInvitation(User user, string channelName) { if (this.Invitation != null) this.Invitation(base.CurrentConnection.Owner, new InvitationEventArgs(user, channelName)); }
internal MessageEventArgs(User __user, string __message) : this(__user, __message, false) { }
internal PartEventArgs(User __user, string __reason) { _user = __user; _reason = __reason; }
internal void FireTopicChanged(User user, string topic) { if (this.ChannelTopicChanged != null) this.ChannelTopicChanged(this, new TopicChangedEventArgs(user, topic)); }
internal KickEventArgs(User __kicker, User __kicked, string __reason) { _kicker = __kicker; _kicked = __kicked; _reason = __reason; }
internal void FireModeChange(User user, string mode) { if (ModeChanged != null) ModeChanged(this, new ModeChangeEventArgs(user, mode)); }
internal void FirePart(User user, string reason) { if (UserParted != null) UserParted(this, new PartEventArgs(user, reason)); }
internal void FireKick(User kicker, User kicked, string reason) { if (this.UserWasKicked != null) this.UserWasKicked(this, new KickEventArgs(kicker, kicked, reason)); }
internal void FireJoin(User user) { if (UserJoined != null) UserJoined(this, new JoinEventArgs(user)); }
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; }
internal InvitationEventArgs(User __user, string __channelname) { _user = __user; _channelname = __channelname; }
internal void FireUserVoiceStatusChanged(User user, User victim, bool way) { if (this.UsersVoiceStatusChange != null) this.UsersVoiceStatusChange(this, new UserModeEventArgs(user, victim, way)); }
internal JoinEventArgs(User __user) { _user = __user; }
internal ChannelUser(ServerConnection creatorsCurrentConnection, User user, string strChannelName) : base(creatorsCurrentConnection) { objUser = user; }
internal MessageEventArgs(User __user, string __message, bool __isAction) { _user = __user; _message = __message; _isAction = __isAction; }
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(); }
internal ModeChangeEventArgs(User __user, string __mode) { _user = __user; _mode = __mode; }
internal void FireRecievedCtCpMessage(User user, string command, string parameters) { if (this.RecievedCtCpMessage != null) this.RecievedCtCpMessage(this, new CtCpMessageEventArgs(user, command, parameters)); }
internal TopicChangedEventArgs(User __setter, string __topic) { _setter = __setter; _topic = __topic; }
internal void FireRecievedMessage(User user, string message, bool isAction) { if (this.RecievedMessage != null) this.RecievedMessage(this, new MessageEventArgs(user, message, isAction)); }
internal UserModeEventArgs(User __user, User __victimnick, bool __way) { _user = __user; _victimnick = __victimnick; _way = __way; }
internal void FireRecievedNotice(User user, string message) { if (this.RecievedNotice != null) this.RecievedNotice(this, new MessageEventArgs(user, message)); }
public void AddUser(User user) { if (Users.Contains(user)) return; Users.Add(user); }
internal CtCpMessageEventArgs(User __user, string __command, string __parameters) { _user = __user; _command = __command; _parameters = __parameters; }
public ChannelUser this[User theUser] { get { return GetUser(theUser.Nick); } }
internal User AddUser(User newUser) { users.Add(newUser); return newUser; }