Represents a full connection to an irc server with all nesessary members to communicate with it.
With an instance of IrcClient, you can connect to an irc server and receive many events defined by the standard irc protocol. The messages received are automatically parsed to IrcLine objects to be easier accessible.
Inheritance: IIrcObject, IDisposable
Esempio n. 1
0
        public IrcLine(IrcClient client, String line)
        {
            String[] normalParams;
            Match result;
            this.client = client;
            result = ircLineRegEx.Match(line);

            if (result.Success)
            {
                prefix = result.Groups[1].Value;
                command = result.Groups[2].Value;
                normalParams = result.Groups[3].Value.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                if (result.Groups[4].Success)
                {
                    parameters = new String[normalParams.Length + 1];
                    normalParams.CopyTo(parameters, 0);
                    parameters[parameters.Length - 1] = result.Groups[4].Value;
                }
                else
                {
                    parameters = normalParams;
                }
                Int32.TryParse(command, out numeric);
            }
            else
            {
                throw new InvalidLineFormatException(line);
            }
        }
Esempio n. 2
0
 public IrcLine(IrcClient client, String prefix, String command, String[] parameters)
 {
     this.client = client;
     this.prefix = prefix;
     this.command = command;
     parameters = (String[])parameters.Clone();
     Int32.TryParse(command, out numeric);
 }
Esempio n. 3
0
        public UserInfo(String FullHost, IrcClient Client)
        {
            Match hostPieces;
            hostPieces = hostRegex.Match(FullHost);
            if (hostPieces.Success)
            {
                nickName = hostPieces.Groups[1].Value;
                ident = hostPieces.Groups[2].Value;
                host = hostPieces.Groups[3].Value;
                client = Client;
            }
            else
            {
                // TODO: trow Exception

            }
        }
Esempio n. 4
0
        public UserInfo(IrcLine BaseLine)
        {
            baseLine = BaseLine;
            Match hostPieces;
            hostPieces = hostRegex.Match(BaseLine.Prefix);
            if (hostPieces.Success)
            {
                nickName = hostPieces.Groups[1].Value;
                ident = hostPieces.Groups[2].Value;
                host = hostPieces.Groups[3].Value;
                client = BaseLine.Client;
            }
            else
            {
                // TODO: trow Exception

            }
        }
 public static void ListEnd(IrcClient client, IrcMessage message)
 {
     client.Network.OnChannelListReceived(client._tempInfo.ListedChannels);
 }
 public static void MotdEnd(IrcClient client, IrcMessage message)
 {
     client.Network.MessageOfTheDay = client._tempInfo.MotdBuilder.ToString();
 }
 public static void ListStart(IrcClient client, IrcMessage message)
 {
     client._tempInfo.ListedChannels = new List <IrcChannel>();
 }
Esempio n. 8
0
 public ChannelListListener(IrcClient client)
 {
     this.client = client;
     client.LineReceived += new LineReceivedEventHandler(HandleLine);
     channelListLines = new List<ChannelListLine>();
 }
Esempio n. 9
0
 public IrcEventArgs(IrcLine BaseLine)
 {
     handled = false;
     client = BaseLine.Client;
     baseLine = BaseLine;
 }
Esempio n. 10
0
 public ErrorEventArgs(IrcClient client, string msg)
     : base(client)
 {
     message = msg;
 }
Esempio n. 11
0
 public void ApplyTo(IrcClient con)
 {
     con.ChangeNickname(InheritedNickname);
     con.Username = InheritedIdent;
     con.ServerAddress = ToIrcEndPoint();
 }
 public static void YourMode(IrcClient client, IrcMessage message)
 {
     client.Network.CurrentUser.SetMode(message.CommandArguments[1]);
 }
Esempio n. 13
0
 public IrcLine(IrcLine source)
 {
     prefix = source.Prefix;
     command = source.Command;
     parameters = source.Parameters;
     client = source.Client;
     int.TryParse(Command, out numeric);
 }
 public static void ISupport(IrcClient client, IrcMessage message)
 {
     CapabilityParser.Parse(client.Network.Parameters, message.CommandArguments.Skip(1));
 }
            public static void TopicContent(IrcClient client, IrcMessage message)
            {
                var channel = client.Network.GetChannel(message.CommandArguments[1]);

                channel.Topic.Text = message.Content;
            }
 public static void YourHost(IrcClient client, IrcMessage message)
 {
     // This message only gets sent once during any session
     client.HandleAuthentication();
 }
 public static void Notice(IrcClient client, IrcMessage message)
 {
     message.Sender.OnNoticeReceived(message.Content);
 }
 public static void Invite(IrcClient client, IrcMessage message)
 {
     client.Network.GetChannel(message.CommandArguments[1]).OnInviteReceived(message.Sender);
 }
 public static void Compatibility_ListChannel(IrcClient client, IrcMessage message)
 {
     message.IsValid = client.Network.Parameters.IsChannelName(message.CommandArguments[1]);
 }
Esempio n. 20
0
 public ErrorEventArgs(IrcClient client, string msg, Exception exception)
     : base(client)
 {
     innerException = exception;
     message = msg;
 }
 public static void Ping(IrcClient client, IrcMessage message)
 {
     client.SendPong(message.Content);
 }
Esempio n. 22
0
 public UserInfo(UserInfo baseInfo)
 {
     baseLine = baseInfo.BaseLine;
     nickName = baseInfo.NickName;
     ident = baseInfo.Ident;
     host = baseInfo.Host;
     client = baseInfo.Client;
 }
            public static void ChannelCreationDate(IrcClient client, IrcMessage message)
            {
                var channel = client.Network.GetChannel(message.CommandArguments[1]);

                channel.CreationDate = TimeHelper.DateTimeFromUnixSeconds(int.Parse(message.CommandArguments[2]));
            }
Esempio n. 24
0
 public LoginEventArgs(String NetworkName, String Nick, IrcClient client)
     : base(client)
 {
     networkName = NetworkName;
     nick = Nick;
 }
 public static void BadNickname(IrcClient client, IrcMessage message)
 {
     client.Network.CurrentUser.Nickname = message.CommandArguments[0];
     client.Network.OnErrorReceived(message.Content, message.Command);
 }
            public static void WhoIsOperator(IrcClient client, IrcMessage message)
            {
                var user = client.Network.GetUser(message.CommandArguments[1]);

                user.AddModeInternal(IrcUserModes.GlobalOperator);
            }
Esempio n. 27
0
 public UserInfo(String NickName, String Ident, String Host, IrcClient Client)
 {
     nickName = NickName;
     ident = Ident;
     host = Host;
     client = Client;
 }
 public static void MessageOfTheDayStart(IrcClient client, IrcMessage message)
 {
     client._tempInfo.MotdBuilder.Clear();
 }
Esempio n. 29
0
 public NamesListener(IrcClient client)
 {
     this.client = client;
     client.LineReceived += new LineReceivedEventHandler(HandleLine);
     names = new List<String>();
 }
 public static void MotdContent(IrcClient client, IrcMessage message)
 {
     client._tempInfo.MotdBuilder.AppendLine(message.Content);
 }
Esempio n. 31
0
 public InfoListener(IrcClient client)
 {
     this.client = client;
     client.LineReceived += new LineReceivedEventHandler(HandleLine);
     infoLines = new List<IrcLine>();
 }
Esempio n. 32
0
 public IrcEventArgs(IrcClient Client)
 {
     handled = false;
     client = Client;
 }