コード例 #1
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal AdminEventArgs(IrcMessageData data, string channel, string who, string whom)
     : base(data)
 {
     Channel = channel;
     Who = who;
     Whom = whom;
 }
コード例 #2
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal NickChangeEventArgs(IrcMessageData data, string oldnick, string newnick)
     : base(data)
 {
     OldNickname = oldnick;
     NewNickname = newnick;
 }
コード例 #3
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal NamesEventArgs(IrcMessageData data, string channel, string[] userlist)
     : base(data)
 {
     Channel = channel;
     userList = userlist;
 }
コード例 #4
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal UnbanEventArgs(IrcMessageData data, string channel, string who, string hostmask)
     : base(data)
 {
     Channel = channel;
     Who = who;
     Hostmask = hostmask;
 }
コード例 #5
0
ファイル: IrcCommands.cs プロジェクト: FreeApophis/sharpIRC
 /// <summary>
 /// 
 /// </summary>
 /// <param name="data"></param>
 /// <param name="message"></param>
 public void SendReply(IrcMessageData data, string message)
 {
     SendReply(data, message, Priority.Medium);
 }
コード例 #6
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal PongEventArgs(IrcMessageData data, TimeSpan lag)
     : base(data)
 {
     Lag = lag;
 }
コード例 #7
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal TopicChangeEventArgs(IrcMessageData data, string channel, string who, string newtopic)
     : base(data)
 {
     Channel = channel;
     Who = who;
     NewTopic = newtopic;
 }
コード例 #8
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal ErrorEventArgs(IrcMessageData data, string errormsg)
     : base(data)
 {
     ErrorMessage = errormsg;
 }
コード例 #9
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal ActionEventArgs(IrcMessageData data, string actionmsg)
     : base(data, "ACTION", actionmsg)
 {
     ActionMessage = actionmsg;
 }
コード例 #10
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal WhoEventArgs(IrcMessageData data, WhoInfo whoInfo)
     : base(data)
 {
     this.whoInfo = whoInfo;
 }
コード例 #11
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal CtcpEventArgs(IrcMessageData data, string ctcpcmd, string ctcpparam)
     : base(data)
 {
     CtcpCommand = ctcpcmd;
     CtcpParameter = ctcpparam;
 }
コード例 #12
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal AwayEventArgs(IrcMessageData data, string who, string awaymessage)
     : base(data)
 {
     Who = who;
     AwayMessage = awaymessage;
 }
コード例 #13
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal IrcEventArgs(IrcMessageData data)
 {
     Data = data;
 }
コード例 #14
0
ファイル: WhoInfo.cs プロジェクト: FreeApophis/sharpIRC
        public static WhoInfo Parse(IrcMessageData data)
        {
            var whoInfo = new WhoInfo
            {
                Channel = data.RawMessageArray[3],
                Ident = data.RawMessageArray[4],
                Host = data.RawMessageArray[5],
                Server = data.RawMessageArray[6],
                Nick = data.RawMessageArray[7],
                Realname = String.Join(" ", data.MessageArray, 1, data.MessageArray.Length - 1)
            };

            // skip hop count

            int hopcount = 0;
            string hopcountStr = data.MessageArray[0];
            try
            {
                hopcount = int.Parse(hopcountStr);
            }
            catch (FormatException ex)
            {
            }

            string usermode = data.RawMessageArray[8];
            bool op = false;
            bool voice = false;
            bool ircop = false;
            bool away = false;
            bool registered = false;

            foreach (char c in usermode)
            {
                switch (c)
                {
                    case 'H':
                        away = false;
                        break;
                    case 'G':
                        away = true;
                        break;
                    case '@':
                        op = true;
                        break;
                    case '+':
                        voice = true;
                        break;
                    case '*':
                        ircop = true;
                        break;
                    case 'r':
                        registered = true;
                        break;
                }
            }
            whoInfo.IsAway = away;
            whoInfo.IsOp = op;
            whoInfo.IsVoice = voice;
            whoInfo.IsIrcOp = ircop;
            whoInfo.HopCount = hopcount;
            whoInfo.IsRegistered = registered;

            return whoInfo;
        }
コード例 #15
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal PartEventArgs(IrcMessageData data, string channel, string who, string partmessage)
     : base(data)
 {
     Channel = channel;
     Who = who;
     PartMessage = partmessage;
 }
コード例 #16
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal JoinEventArgs(IrcMessageData data, string channel, string who)
     : base(data)
 {
     Channel = channel;
     Who = who;
 }
コード例 #17
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal PingEventArgs(IrcMessageData data, string pingdata)
     : base(data)
 {
     PingData = pingdata;
 }
コード例 #18
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal KickEventArgs(IrcMessageData data, string channel, string who, string whom, string kickreason)
     : base(data)
 {
     Channel = channel;
     Who = who;
     Whom = whom;
     KickReason = kickreason;
 }
コード例 #19
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal QuitEventArgs(IrcMessageData data, string who, string quitmessage)
     : base(data)
 {
     Who = who;
     QuitMessage = quitmessage;
 }
コード例 #20
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal ListEventArgs(IrcMessageData data, ChannelInfo listInfo)
     : base(data)
 {
     ListInfo = listInfo;
 }
コード例 #21
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal TopicEventArgs(IrcMessageData data, string channel, string topic)
     : base(data)
 {
     Channel = channel;
     Topic = topic;
 }
コード例 #22
0
ファイル: EventArgs.cs プロジェクト: FreeApophis/sharpIRC
 internal MotdEventArgs(IrcMessageData data, string motdmsg)
     : base(data)
 {
     MotdMessage = motdmsg;
 }
コード例 #23
0
ファイル: BanInfo.cs プロジェクト: FreeApophis/sharpIRC
 public static BanInfo Parse(IrcMessageData data)
 {
     return new BanInfo { Channel = data.RawMessageArray[3], Mask = data.RawMessageArray[4] };
 }
コード例 #24
0
ファイル: IrcCommands.cs プロジェクト: FreeApophis/sharpIRC
 /// <summary>
 /// 
 /// </summary>
 /// <param name="data"></param>
 /// <param name="message"></param>
 /// <param name="priority"></param>
 public void SendReply(IrcMessageData data, string message, Priority priority)
 {
     switch (data.Type)
     {
         case ReceiveType.ChannelMessage:
             SendMessage(SendType.Message, data.Channel, message, priority);
             break;
         case ReceiveType.QueryMessage:
             SendMessage(SendType.Message, data.Nick, message, priority);
             break;
         case ReceiveType.QueryNotice:
             SendMessage(SendType.Notice, data.Nick, message, priority);
             break;
     }
 }