BanName() public method

public BanName ( string name, string channel, string reason, System.DateTime time ) : string
name string
channel string
reason string
time System.DateTime
return string
Example #1
0
        private void HandlePrivmsg(IRCMessage sIRCMessage)
        {
            Task.Factory.StartNew(() =>
            {
                var sMyChannelInfo = sIrcBase.Networks[sIRCMessage.ServerName].sMyChannelInfo;
                var sSender        = sIrcBase.Networks[sIRCMessage.ServerName].sSender;
                string channel     = sIRCMessage.Channel.ToLower();

                if (sMyChannelInfo.FSelect(IFunctions.Antiflood) && sMyChannelInfo.FSelect(IChannelFunctions.Antiflood, channel))
                {
                    string nick = sIRCMessage.Nick.ToLower();

                    if (nick == "py-ctcp")
                    {
                        return;
                    }

                    if (FloodList.ContainsKey(nick) && FloodList[nick].Channel.ContainsKey(channel))
                    {
                        if (FloodList[nick].Channel[channel].Piece == CalendarConfig.NumberOfFlooding)
                        {
                            var time = DateTime.Now;
                            if (time.Minute < 30)
                            {
                                sBan.BanName(nick, channel, sLManager.GetWarningText("RecurrentFlooding", channel, sIRCMessage.ServerName), DateTime.Now.Hour, DateTime.Now.Minute + 30);
                            }
                            else if (time.Minute >= 30)
                            {
                                sBan.BanName(nick, channel, sLManager.GetWarningText("RecurrentFlooding", channel, sIRCMessage.ServerName), DateTime.Now.Hour + 1, DateTime.Now.Minute - 30);
                            }

                            FloodList[nick].Channel[channel].Piece = 0;
                            return;
                        }
                        else
                        {
                            if (FloodList[nick].Channel[channel].Message >= CalendarConfig.NumberOfMessages)
                            {
                                sSender.Kick(channel, nick, sLManager.GetWarningText("StopFlooding", channel, sIRCMessage.ServerName));
                                FloodList[nick].Channel[channel].Message = 0;
                                FloodList[nick].Channel[channel].Piece++;
                                return;
                            }
                        }
                    }

                    if (FloodList.ContainsKey(nick) && FloodList[nick].Channel.ContainsKey(channel))
                    {
                        FloodList[nick].Channel[channel].Message++;
                    }
                    else if (FloodList.ContainsKey(nick) && !FloodList[nick].Channel.ContainsKey(channel))
                    {
                        FloodList[nick].Channel.Add(channel, new FloodChannelParameter());
                    }
                    else if (!FloodList.ContainsKey(nick))
                    {
                        FloodList.Add(nick, new Flood());
                        FloodList[nick].Channel.Add(channel, new FloodChannelParameter());
                    }
                }
            });
        }