This class contains an IRC message in a parsed form
Exemple #1
0
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + Name.Length + 1;
            if (data.Message.Length <= start)
            {
                plugin.Host.Reply(data, SendType.Message, "No such command");
                return;
            }

            int end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No such command");
                    return;
                }
            }

            string group = data.Message.Substring(start, end - start);
            if (plugin.GetCommandsAtGroup(group) == null)
            {
                plugin.Host.Reply(data, SendType.Message, "No account group '" + group + "' exists");
                return;
            }

            plugin.RemoveAccountGroup(group);
            plugin.Host.Reply(data, SendType.Message, "Account group " + group + " deleted");
        }
Exemple #2
0
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + Name.Length + 1;
            if (data.Message.Length <= start)
            {
                plugin.Host.Reply(data, SendType.Message, "No such command");
                return;
            }

            int end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No account specified");
                    return;
                }
            }

            string account = data.Message.Substring(start, end - start);

            plugin.RemoveAccount(account);
            plugin.Host.Reply(data, SendType.Message, "Account deleted");
        }
Exemple #3
0
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + 2;
            if (data.Message.Length <= start)
            {
                plugin.Host.Reply(data, SendType.Message, "No such command");
                return;
            }

            int end = data.Message.IndexOf(' ');
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No such command");
                    return;
                }
            }

            string command = data.Message.Substring(start, end - start).ToLower();

            Type[] types = System.Reflection.Assembly.GetExecutingAssembly().GetTypes();
            //grab and add given command
        }
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + Name.Length + 1;
            if (data.Message.Length <= start)
            {
                plugin.Host.Reply(data, SendType.Message, "No such command");
                return;
            }

            int end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No account group specified");
                    return;
                }
            }

            string group = data.Message.Substring(start, end - start);
            var members = plugin.GetAccountMembers(group);

            StringBuilder msg = new StringBuilder("Members: ");
            for (int i = 0; i < members.Length; i++)
            {
                msg.Append(members[i]);
                if (i + 1 < members.Length)
                    msg.Append(", ");
            }

            plugin.Host.Reply(data, SendType.Message, msg.ToString());
        }
 private string AddPlayer(IrcMessageData msg)
 {
     string res;
     string sender = RealName(msg.From).ToLower();
     if (sender == "voodoohood")
     {
         if(msg.MessageArray.Length >= 2)
         {
             string userToAdd = msg.MessageArray[1].ToLower();
             bool playerAlreadyRegistered = _database.isUserRegistered(userToAdd);
             if (!playerAlreadyRegistered)
             {
                 _database.addPlayerToCraftWar(userToAdd);
                 res = "User " + userToAdd + " added to the registered players .";
                 DumberLogger.Log(" CraftWarComp: Added user" + userToAdd + " to database, is registered " + _database.isUserRegistered(userToAdd));
             }
             else
             {
                 res = "User " + userToAdd + " is already registered";
             }
               
         }
         else
         {
             res = null;
             DumberLogger.Log(" CraftWarComp: Format of the message wasnt correct");
         }
     }
     else
     {
         res = null;
         DumberLogger.Log(" CraftWarComp: User other than voodoohood tryed to add a user");
     }
     return res;
 }
Exemple #6
0
        public bool OnReadLine(IrcMessageData data)
        {
            if ((data.Type != ReceiveType.ChannelMessage) && (data.Type != ReceiveType.QueryMessage))
                return true;

            if ((data.MessageArray.Length > 1) && ((data.MessageArray[0].ToLower() == "!nick") || (data.MessageArray[0].ToLower() == "!name"))) {
                _irc.RfcNick(data.MessageArray[1]);
                return true;
            }

            if ((data.Type == ReceiveType.ChannelMessage) && (data.MessageArray[0] == "!help")) {
                DisplayHelp(data);
                return true;
            }

            if (data.Type != ReceiveType.QueryMessage)
                return true;

            if (data.MessageArray.Length > 0) {
                _irc.SendMessage(SendType.Message, Admin._channel, data.Message);
                Console.WriteLine(data.Nick + " " + data.Message);
            }

            return true;
        }
Exemple #7
0
 public static BanInfo Parse(IrcMessageData data)
 {
     BanInfo info = new BanInfo();
     // :magnet.oftc.net 367 meebey #smuxi test!test@test [email protected] 1216309801..
     info.f_Channel = data.RawMessageArray[3];
     info.f_Mask= data.RawMessageArray[4];
     return info;
 }
Exemple #8
0
 private void ParseForLink(IrcMessageData data)
 {
     CheckLinkDate();
     _links.AddRange(data.MessageArray.Where(word =>
         (!_links.Contains(word)) &&
         (Uri.IsWellFormedUriString(word, UriKind.Absolute)) &&
             ((word.StartsWith("http")) ||
             (word.StartsWith("www")))
         ));
 }
 public override bool Check(IrcMessageData msg)
 {
     Boolean res = false;
     string com = msg.MessageArray[0];
     for (int i = 0; i < commands.Length; i++)
     {
         if (com == commands[i]) res = true;
     }
     return res;
 }
 private string Disconnect(IrcMessageData msg)
 {
     string sender = RealName(msg.From).ToLower();
     bool isSenderDev = sender == "voodoohood" || sender == "n1ghtsh0ck";
     if (isSenderDev)
     {
         Environment.Exit(0);
     }
     
     return null;
 }
Exemple #11
0
        protected IrcEventArgs CreateCtcpEventArgs(string aChannel, string aBot, string aMessage, ReceiveType aType, string aCtcpCommand)
        {
            IrcMessageData data = new IrcMessageData(null, "", aBot, "", "", aChannel, aMessage, aMessage, aType, ReplyCode.Null);
            CtcpEventArgs args = (CtcpEventArgs)System.Runtime.Serialization.FormatterServices.GetUninitializedObject(typeof(CtcpEventArgs));
            FieldInfo[] EventFields = typeof(IrcEventArgs).GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
            EventFields[0].SetValue(args, data);

            FieldInfo[] EventFields2 = typeof(CtcpEventArgs).GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
            EventFields2[0].SetValue(args, aCtcpCommand);

            return args;
        }
        public override void Execute(IrcMessageData data)
        {
            var groups = plugin.GetAccountGroups();
            StringBuilder msg = new StringBuilder("Existing groups: ");
            for (int i = 0; i < groups.Length; i++)
            {
                msg.Append(groups[i]);
                if (i + 1 < groups.Length)
                    msg.Append(", ");
            }

            plugin.Host.Reply(data, SendType.Message, msg.ToString());
        }
        public override string Handle(IrcMessageData msg)
        {
            string res = null;
            string com = msg.MessageArray[0];
            switch (com)
            {
                case "#gamba":
                    res = Gamba(msg);
                    break;
            }
            return res;
            

        }
 public override string Handle(IrcMessageData msg)
 {
     string res = null;
     string com = msg.MessageArray[0];
     switch (com)
     {
         case "#disconnect":
             Disconnect(msg);
             break;
         default:
             break;
     }
     return res;
 }
 private string StartRoulette(IrcMessageData msg)
 {
     
     string res = null;
     string sender = RealName(msg.From).ToLower();
     if(sender == "voodoohood")
     {
         _rouletteActive = true;
         res = "Roulette started place your bets , you have 1 minute time. Use #placebet <0-36> <1-10000> to place a bet";
         Thread rouletteThread = new Thread(RouletteThreadTask);
         _bets = new List<bet>();
         rouletteThread.Start();
     }
     return res;
 }
Exemple #16
0
        public bool OnReadLine(IrcMessageData data)
        {
            if (data.Type != ReceiveType.ChannelMessage)
                return true;

            if ((data.MessageArray[0] == "!rainbow") || (data.MessageArray[0] == "!r"))
                Fabulise(data);

            if ((data.MessageArray[0] == "!doublerainbow") || (data.MessageArray[0] == "!dr")) {
                Fabulise(data);
                Fabulise(data);
            }

            if (data.MessageArray[0] == "!help")
                DisplayHelp(data);

            return true;
        }
 public override string Handle(IrcMessageData msg)
 {
     string res;
     string com = msg.MessageArray[0];
     switch (com)
     {
         case "#startRoulette":
             res = StartRoulette(msg);
             break;
         case "#placebet":
             res = AddBet(msg);
             break;
         default:
             res = null;
             break;
     }
     return res;
 }
Exemple #18
0
        public bool OnReadLine(IrcMessageData data)
        {
            if ((data.Type != ReceiveType.ChannelMessage) || (_ignore.Contains(data.Nick)))
                return true;

            if ((data.MessageArray.Length > 0) && (data.MessageArray[0] == "!links"))
                DisplayLinks(data.Nick);

            if (data.MessageArray[0] == "!help")
                DisplayHelp(data);

            if ((data.MessageArray.Length > 0) && (data.Message.Trim().StartsWith("!")))
                return true;

            ParseForLink(data);

            return true;
        }
Exemple #19
0
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + Name.Length + 1;
            if (data.Message.Length <= start)
            {
                plugin.Host.Reply(data, SendType.Message, "No such command");
                return;
            }

            int end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No account specified");
                    return;
                }
            }

            string account = data.Message.Substring(start, end - start);

            start = end + 1;
            end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    plugin.Host.Reply(data, SendType.Message, "No account group specified");
                    return;
                }
            }

            string group = data.Message.Substring(start, end - start);
            if (plugin.GetCommandsAtGroup(group) == null)
            {
                plugin.Host.Reply(data, SendType.Message, "No account group named " + group);
                return;
            }

            plugin.AddAccount(account, group);
            plugin.Host.Reply(data, SendType.Message, string.Format("Account '{0}' successfully created", account, group));
        }
Exemple #20
0
        public bool OnReadLine(IrcMessageData data)
        {
            if (data.Type != ReceiveType.ChannelMessage)
                return true;

            if (data.MessageArray[0] == "!help")
                DisplayHelp(data);

            if (data.MessageArray.Length < 2)
                return true;

            if ((data.MessageArray[0] == "!big") || (data.MessageArray[0] == "!b"))
                Embiggen(data.Message.Split(null, 2)[1], false, data.Channel, data.Ident, data.Host);

            if ((data.MessageArray[0] == "!bigrainbow") || (data.MessageArray[0] == "!br"))
                Embiggen(data.Message.Split(null, 2)[1], true, data.Channel, data.Ident, data.Host);

            return true;
        }
Exemple #21
0
        public override void Execute(IrcMessageData data)
        {
            int start = data.Message.IndexOf(Name, StringComparison.CurrentCultureIgnoreCase) + Name.Length + 1;
            if (data.Message.Length <= start)
            {
                StringBuilder msg = new StringBuilder("Supported commands: ");
                for (int i = 0; i < Command.AllCommands.Length; i++)
                {
                    msg.Append(Command.AllCommands[i].Name);
                    if (i + 1 < Command.AllCommands.Length)
                        msg.Append(", ");
                }
                plugin.Host.Reply(data, SendType.Message, msg.ToString());
                return;
            }

            int end = data.Message.IndexOf(' ', start);
            if (end <= start)
            {
                end = data.Message.Length;
                if (end <= start)
                {
                    StringBuilder msg = new StringBuilder("Supported commands: ");
                    for (int i = 0; i < Command.AllCommands.Length; i++)
                    {
                        msg.Append(Command.AllCommands[i].Name);
                        if (i + 1 < Command.AllCommands.Length)
                            msg.Append(", ");
                    }
                    plugin.Host.Reply(data, SendType.Message, msg.ToString());
                    return;
                }
            }

            string command = data.Message.Substring(start, end - start);
            var cmd = Command.GetCommand(command);
            if (cmd == null)
                plugin.Host.Reply(data, SendType.Message, "No such command");
            else
                plugin.Host.Reply(data, SendType.Message, cmd.Help);
        }
 public override string Handle(IrcMessageData msg)
 {
     string res;
     string com = msg.MessageArray[0];
     switch (com)
     {
         case "#attack":
             res = Attack(msg);
             break;
         case "#stats":
             res = Stats(msg);
             break;
         case "#commands":
             res = GetCommands();
             break;
         case "#upgrade":
             res = UpgradeMine(msg);
             break;
         case "#buildBarracks":
             res = BuildBarracks(msg);
             break;
         case "#buildUnits":
             res = BuildUnits(msg);
             break;
         case "#add":
             res = AddPlayer(msg);
             break;
         case "#maxupgrade":
             res = Maxupgrade(msg);
             break;
         case "#maxunits":
             res = MaxUnits(msg);
             break;
         default:
             res = null;
             break;
     }
     return res;
 }
        private string AddBet(IrcMessageData msg)
        {
            string res = null;
            string sender = RealName(msg.From).ToLower();
            bool isRegistered = _database.isUserRegistered(sender);
            if (isRegistered&&_rouletteActive)
            {
                DumberLogger.Log(" Casino: try to add bett / Roulette started / User is registered");
                bool messageCorrectLength = msg.MessageArray.Length>=3;
                if (messageCorrectLength)
                {
                    DumberLogger.Log(" Casino: The Bet add call has the correct length");
                    string numberS = msg.MessageArray[1];
                    long number = (long)Convert.ToDouble(numberS);
                    string valueS = msg.MessageArray[2];
                    long value = (long)Convert.ToDouble(valueS);
                    bool rangeMax = number < 37;
                    bool rangeMin = number >= 0;
                    bool maxBet = value < 10000;
                    bool minBet = value > 0;
                    bool userHasEnoughGold = value <= _database.selectGold(sender);
                    bool userHasAlreadyTooMuchOnTheTable = checkBets(sender);
                    DumberLogger.Log(" Casino: " + number + " " + value + " " + rangeMax + " " + rangeMin + " " + maxBet + " " + minBet + " " + userHasEnoughGold + " " + userHasAlreadyTooMuchOnTheTable);
                    if (rangeMax && rangeMin && maxBet && minBet && userHasEnoughGold&&userHasAlreadyTooMuchOnTheTable)
                    {
                        DumberLogger.Log(" Casino: range ok / max and min bet ok / the user has enough gold / doesn have too much on the table");
                        bet userBet = new bet(sender, (int)number, (int)value);
                        _bets.Add(userBet);
                        int usersGold = _database.selectGold(sender);
                        _database.updateGold(sender, usersGold - (int)value);
                        res = sender + " your bet of " + value + " gold on number " + number + " has been confirmed";
                    }

                }
            }
            return res;
        }
Exemple #24
0
        public bool OnReadLine(IrcMessageData data)
        {
            if ((data.Type != ReceiveType.QueryMessage) || (!IsAuth(data.Nick, data.MessageArray[0])))
                return true;

            if (data.MessageArray[1].ToLower() == "join") {
                if (data.MessageArray.Length == 2)
                    Join(_channel);
                else
                    Join(data.MessageArray[2]);
            }

            if (data.MessageArray[1].ToLower() == "part") {
                if (data.MessageArray.Length == 1)
                    Part(_channel);
                else
                    Part(data.MessageArray[2]);
            }

            if ((data.MessageArray[1].ToLower() == "quit") || (data.MessageArray[1].ToLower() == "exit"))
                Quit();

            return false;
        }
Exemple #25
0
 internal NickChangeEventArgs(IrcMessageData data, string oldnick, string newnick) : base(data)
 {
     _OldNickname = oldnick;
     _NewNickname = newnick;
 }
Exemple #26
0
 internal AwayEventArgs(IrcMessageData data, string who, string awaymessage) : base(data)
 {
     _Who         = who;
     _AwayMessage = awaymessage;
 }
Exemple #27
0
 internal ActionEventArgs(IrcMessageData data, string actionmsg) : base(data, "ACTION", actionmsg)
 {
     _ActionMessage = actionmsg;
 }
 internal BanEventArgs(IrcMessageData data, string channel, string who, string hostmask) : base(data)
 {
     Channel  = channel;
     Who      = who;
     Hostmask = hostmask;
 }
Exemple #29
0
 internal DevoiceEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data, channel, who, whom)
 {
 }
Exemple #30
0
 internal ChannelAdminEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data, channel, who, whom)
 {
 }
Exemple #31
0
 internal UnbanEventArgs(IrcMessageData data, string channel, string who, string hostmask) : base(data)
 {
     _Channel  = channel;
     _Who      = who;
     _Hostmask = hostmask;
 }
Exemple #32
0
 internal MotdEventArgs(IrcMessageData data, string motdmsg) : base(data)
 {
     _MotdMessage = motdmsg;
 }
Exemple #33
0
 internal ChannelModeChangeEventArgs(IrcMessageData data, string channel, List <ChannelModeChangeInfo> modeChanges) : base(data)
 {
     Channel     = channel;
     ModeChanges = modeChanges;
 }
Exemple #34
0
        public static WhoInfo Parse(IrcMessageData data)
        {
            var whoInfo = new WhoInfo
            {
                // :fu-berlin.de 352 meebey_ * ~meebey e176002059.adsl.alicedsl.de fu-berlin.de meebey_ H :0 Mirco Bauer..
                Channel = data.RawMessageArray[3],
                Ident   = data.RawMessageArray[4],
                Host    = data.RawMessageArray[5],
                Server  = data.RawMessageArray[6],
                Nick    = data.RawMessageArray[7]
            };

            // HACK: realname field can be empty on bugged IRCds like InspIRCd-2.0
            // :topiary.voxanon.net 352 Mirco #anonplusradio CpGc igot.avhost Voxanon CpGc H
            if (data.MessageArray == null || data.MessageArray.Length < 2)
            {
                whoInfo.Realname = "";
            }
            else
            {
                string hopcountStr = data.MessageArray[0];
                if (Int32.TryParse(hopcountStr, out int hopcount))
                {
                    whoInfo.HopCount = hopcount;
                }
                else
                {
#if LOG4NET
                    Logger.MessageParser.Warn("Parse(): couldn't parse hopcount (as int): '" + hopcountStr + "'");
#endif
                }
                // skip hop count
                whoInfo.Realname = String.Join(" ", data.MessageArray, 1, data.MessageArray.Length - 1);
            }

            string usermode       = data.RawMessageArray[8];
            bool   owner          = false;
            bool   chanadmin      = false;
            bool   op             = false;
            bool   halfop         = false;
            bool   voice          = false;
            bool   ircop          = false;
            bool   away           = false;
            bool   registered     = false;
            int    usermodelength = usermode.Length;
            for (int i = 0; i < usermodelength; i++)
            {
                switch (usermode[i])
                {
                case 'H':
                    away = false;
                    break;

                case 'G':
                    away = true;
                    break;

                case '~':
                    owner = true;
                    break;

                case '&':
                    chanadmin = true;
                    break;

                case '@':
                    op = true;
                    break;

                case '%':
                    halfop = true;
                    break;

                case '+':
                    voice = true;
                    break;

                case '*':
                    ircop = true;
                    break;

                case 'r':
                    registered = true;
                    break;
                }
            }
            whoInfo.IsAway         = away;
            whoInfo.IsOwner        = owner;
            whoInfo.IsChannelAdmin = chanadmin;
            whoInfo.IsOp           = op;
            whoInfo.IsHalfop       = halfop;
            whoInfo.IsVoice        = voice;
            whoInfo.IsIrcOp        = ircop;

            whoInfo.IsRegistered = registered;

            return(whoInfo);
        }
 public void SendReply(IrcMessageData data, string message) => SendReply(data, message, Priority.Medium);
 internal JoinEventArgs(IrcMessageData data, string channel, string who) : base(data)
 {
     Channel = channel;
     Who     = who;
 }
Exemple #37
0
 internal TopicEventArgs(IrcMessageData data, string channel, string topic) : base(data)
 {
     _Channel = channel;
     _Topic   = topic;
 }
Exemple #38
0
 internal CtcpEventArgs(IrcMessageData data, string ctcpcmd, string ctcpparam) : base(data)
 {
     _CtcpCommand = ctcpcmd;
     _CtcpParameter = ctcpparam;
 }
Exemple #39
0
 internal TopicChangeEventArgs(IrcMessageData data, string channel, string who, string newtopic) : base(data)
 {
     _Channel  = channel;
     _Who      = who;
     _NewTopic = newtopic;
 }
Exemple #40
0
 internal ErrorEventArgs(IrcMessageData data, string errormsg) : base(data)
 {
     _ErrorMessage = errormsg;
 }
Exemple #41
0
 internal ChannelRoleChangeEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data)
 {
     Channel = channel;
     Who     = who;
     Whom    = whom;
 }
 internal DevoiceEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data)
 {
     _Channel = channel;
     _Who     = who;
     _Whom    = whom;
 }
Exemple #43
0
 internal CtcpEventArgs(IrcMessageData data, string ctcpcmd, string ctcpparam) : base(data)
 {
     _CtcpCommand   = ctcpcmd;
     _CtcpParameter = ctcpparam;
 }
Exemple #44
0
 internal QuitEventArgs(IrcMessageData data, string who, string quitmessage) : base(data)
 {
     _Who         = who;
     _QuitMessage = quitmessage;
 }
Exemple #45
0
 internal BounceEventArgs(IrcMessageData data, string server, int port) : base(data)
 {
     Server = server;
     Port   = Port;
 }
Exemple #46
0
 internal IrcEventArgs(IrcMessageData data)
 {
     this._Data = data;
 }
Exemple #47
0
 internal ErrorEventArgs(IrcMessageData data, string errormsg) : base(data)
 {
     _ErrorMessage = errormsg;
 }
Exemple #48
0
        void DownloadXdccReady(object aSender, EventArgs<Server, string> aEventArgs)
        {
            string file = CalculateXdccListFileName(aEventArgs.Value1, aEventArgs.Value2);
            var lines = System.IO.File.ReadAllLines(file);
            FileSystem.DeleteFile(file);

            var connection = _connections.FirstOrDefault(c => c.Server == aEventArgs.Value1);
            if (connection != null)
            {
                Model.Domain.Channel tChan = null;
                var user = connection.Client.GetIrcUser(aEventArgs.Value2);
                if (user != null)
                {
                    foreach (string channel in user.JoinedChannels)
                    {
                        tChan = aEventArgs.Value1.Channel(channel);
                        if (tChan != null)
                        {
                            break;
                        }
                    }
                }

                if (tChan == null)
                {
                    _log.Error(".DownloadXdccReady(" + aEventArgs.Value2 + ") cant find channel");
                    return;
                }

                foreach (var line in lines)
                {
                    IrcMessageData data = new IrcMessageData(connection.Client, "", aEventArgs.Value2, "", "", tChan.Name, line, line, ReceiveType.QueryNotice, ReplyCode.Null);

                    // damn internal contructors...
                    // uhh, this is evil - dont try this @ home kids!
                    IrcEventArgs args = (IrcEventArgs)System.Runtime.Serialization.FormatterServices.GetUninitializedObject(typeof(IrcEventArgs));
                    FieldInfo[] EventFields = typeof(IrcEventArgs).GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
                    EventFields[0].SetValue(args, data);

                    _parser.Parse(connection, args);
                }
            }
            else
            {
                _log.Error(".DownloadXdccReady(" + aEventArgs.Value2 + ") cant find connection");
            }
        }
Exemple #49
0
 internal PingEventArgs(IrcMessageData data, string pingdata) : base(data)
 {
     _PingData = pingdata;
 }
Exemple #50
0
 internal InviteEventArgs(IrcMessageData data, string channel, string who) : base(data)
 {
     _Channel = channel;
     _Who     = who;
 }
Exemple #51
0
 internal UnbanEventArgs(IrcMessageData data, string channel, string who, string hostmask) : base(data)
 {
     _Channel = channel;
     _Who = who;
     _Hostmask = hostmask;
 }
Exemple #52
0
 internal PartEventArgs(IrcMessageData data, string channel, string who, string partmessage) : base(data)
 {
     _Channel     = channel;
     _Who         = who;
     _PartMessage = partmessage;
 }
Exemple #53
0
 internal DevoiceEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data)
 {
     _Channel = channel;
     _Who = who;
     _Whom = whom;
 }
Exemple #54
0
 internal WhoEventArgs(IrcMessageData data, WhoInfo whoInfo) : base(data)
 {
     f_WhoInfo = whoInfo;
 }
Exemple #55
0
 internal PongEventArgs(IrcMessageData data, TimeSpan lag) : base(data)
 {
     _Lag = lag;
 }
Exemple #56
0
        public static WhoInfo Parse(IrcMessageData data)
        {
            WhoInfo whoInfo = new WhoInfo();

            // :fu-berlin.de 352 meebey_ * ~meebey e176002059.adsl.alicedsl.de fu-berlin.de meebey_ H :0 Mirco Bauer..
            whoInfo.f_Channel = data.RawMessageArray[3];
            whoInfo.f_Ident   = data.RawMessageArray[4];
            whoInfo.f_Host    = data.RawMessageArray[5];
            whoInfo.f_Server  = data.RawMessageArray[6];
            whoInfo.f_Nick    = data.RawMessageArray[7];
            // skip hop count
            whoInfo.f_Realname = String.Join(" ", data.MessageArray, 1, data.MessageArray.Length - 1);

            int    hopcount    = 0;
            string hopcountStr = data.MessageArray[0];

            try {
                hopcount = int.Parse(hopcountStr);
            } catch (FormatException ex) {
#if LOG4NET
                Logger.MessageParser.Warn("Parse(): couldn't parse (as int): '" + hopcountStr + "'", ex);
#endif
            }

            string usermode       = data.RawMessageArray[8];
            bool   op             = false;
            bool   voice          = false;
            bool   ircop          = false;
            bool   away           = false;
            int    usermodelength = usermode.Length;
            for (int i = 0; i < usermodelength; i++)
            {
                switch (usermode[i])
                {
                case 'H':
                    away = false;
                    break;

                case 'G':
                    away = true;
                    break;

                case '@':
                    op = true;
                    break;

                case '+':
                    voice = true;
                    break;

                case '*':
                    ircop = true;
                    break;
                }
            }
            whoInfo.f_IsAway  = away;
            whoInfo.f_IsOp    = op;
            whoInfo.f_IsVoice = voice;
            whoInfo.f_IsIrcOp = ircop;

            return(whoInfo);
        }
Exemple #57
0
 internal NamesEventArgs(IrcMessageData data, string channel, string[] userlist, string[] rawUserList) : base(data)
 {
     _Channel    = channel;
     _UserList   = userlist;
     RawUserList = rawUserList;
 }
Exemple #58
0
 internal ListEventArgs(IrcMessageData data, ChannelInfo listInfo) : base(data)
 {
     f_ListInfo = listInfo;
 }
Exemple #59
0
 public static void Reply(this IPluginHost host, IrcMessageData replyTo, SendType type, string message)
 {
     host.SendMessage(type, replyTo.Channel ?? replyTo.Ident, replyTo.Channel == null ? message : string.Concat(replyTo.Nick, ": ", message));
 }
Exemple #60
0
 public IrcEventArgs(IrcMessageData data)
 {
     _Data = data;
 }