示例#1
0
 public void RemoveHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     if (!e.Channel.ClearFlag(Flag))
     {
         e.Cancel();
     }
 }
示例#2
0
 public void RemoveHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     if (!e.Channel.Properties.Remove(Key))
     {
         e.Cancel();
     }
 }
示例#3
0
 public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     if (!e.Channel.SetFlag(Flag))
     {
         e.Cancel();
     }
 }
示例#4
0
        public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
        {
            List <HostMask> list = GetList(e.Channel);

            if (list.Count > e.Server.Settings.MaximumListSize &&
                (!e.Channel.HasFlag("LongLists") ||
                 list.Count > e.Server.Settings.MaximumLongListSize))
            {
                e.User.SendNumeric(Numerics.ERR_BANLISTFULL, "That list is full.  Contact a network operator to override this.");
                e.Cancel();
                return;
            }

            HostMask mask = HostMask.Parse(e.Argument);

            if ((mask.Nickname == null || mask.Username == null || mask.Hostname == null) && mask.Account == null)
            {
                e.User.SendNumeric(Numerics.ERR_BADMASK, "List entries must be fully qualified hostmasks.");
                e.Cancel();
                return;
            }

            if (list.Contains(mask))
            {
                e.Cancel();
                return;
            }

            list.Add(mask);
        }
示例#5
0
        public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
        {
            uint value;

            if (uint.TryParse(e.Argument, out value))
            {
                e.Channel.Properties[this.GetType().Name] = value;
            }
        }
示例#6
0
        public void RemoveHandler(object sender, ReceivedChannelModeEventArgs e)
        {
            List <HostMask> list = GetList(e.Channel);
            HostMask        mask = HostMask.Parse(e.Argument);

            if (!list.Remove(mask))
            {
                e.Cancel();
            }
        }
示例#7
0
        public void RemoveHandler(object sender, ReceivedChannelModeEventArgs e)
        {
            UserBase target = e.Channel.GetUser(e.Argument, e.User);

            if (target == null)
            {
                e.Cancel();
                return;
            }

            e.Channel.RemovePrefix(target, Prefix);
        }
示例#8
0
        public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
        {
            ChannelBase channel = e.Server.GetChannel(e.Argument);

            if (channel != null && (e.User.IsProtect(channel) || channel.HasFlag("FreeTarget")))
            {
                e.Channel.Properties[this.GetType().Name] = e.Argument;
            }
            else
            {
                e.User.SendNumeric(Numerics.ERR_RESTRICTED, "MODE", ":You must be +a in the target channel in order to forward to it, unless it is a free target.");
                e.Cancel();
            }
        }
示例#9
0
        private bool AddMode(UserBase user, ChannelModeAttribute attr, string argument)
        {
            try
            {
                ReceivedChannelModeEventArgs e = new ReceivedChannelModeEventArgs(Server, this, user, argument);
                Server.Domains.AddChannelModeHandlers[attr.Mode].Invoke(this, e);

                if (e.IsCanceled)
                {
                    return(false);
                }
                else
                {
                    Modes[attr.Mode] = argument ?? string.Empty;
                    return(true);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error adding mode {0}: {1}", ex);
                return(false);
            }
        }
示例#10
0
文件: Key.cs 项目: Earth2Me/Aselia
 public void RemoveHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     e.Channel.Properties.Remove(this.GetType().Name);
 }
示例#11
0
文件: Key.cs 项目: Earth2Me/Aselia
 public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     e.Channel.Properties[this.GetType().Name] = e.Argument;
 }
示例#12
0
 public void AddHandler(object sender, ReceivedChannelModeEventArgs e)
 {
     e.Channel.Properties[Key] = Parse(e.Argument);
 }