예제 #1
0
 public FlagDefinition(char FlagChar, ModeArt Art, FlagParameter SetParameter, FlagParameter UnsetParameter)
 {
     flagChar = FlagChar;
     art = Art;
     setParameter = SetParameter;
     unsetParameter = UnsetParameter;
 }
예제 #2
0
 public FlagDefinition(char FlagChar, ModeArt Art, FlagParameter Parameters)
 {
     flagChar = FlagChar;
     art = Art;
     setParameter = Parameters;
     unsetParameter = Parameters;
 }
예제 #3
0
 public FlagDefinition(char FlagChar, ModeArt Art, FlagParameter Parameters, Regex ParameterChecker)
 {
     flagChar = FlagChar;
     art = Art;
     setParameter = Parameters;
     unsetParameter = Parameters;
     parameterCheck = ParameterChecker;
 }
예제 #4
0
        public ModeReceivedEventArgs(IrcLine BaseLine)
            : base(BaseLine)
        {
            long currentParam;
            FlagArt currentArt = FlagArt.Set;
            List<Mode> modes = new List<Mode>();
            List<FlagDefinition> flags = new List<FlagDefinition>();
            setter = BaseLine.Prefix;
            AimValue = BaseLine.Parameters[0];
            if (Client.Standard.IsAllowedChannel(AimValue))
            {
                flags.AddRange(Client.Standard.ChannelFlags);
                flags.AddRange(Client.Standard.UserPrefixFlags.Values);
                AimArtValue = ModeArt.Channel;
            }
            else
            {
                flags.AddRange(Client.Standard.UserFlags);
                AimArtValue = ModeArt.User;
            }
            currentParam = 2;

            foreach (char c in BaseLine.Parameters[1])
            {
                if (c == '+')
                    currentArt = FlagArt.Set;
                else if (c == '-')
                    currentArt = FlagArt.Unset;
                else
                {
                    foreach (FlagDefinition currentFlag in flags)
                    {
                        if (currentFlag.Char == c)
                        {
                            if (currentParam < BaseLine.Parameters.Length && currentFlag.IsParameter(currentArt, BaseLine.Parameters[currentParam]))
                            {
                                modes.Add(new Mode(currentFlag, currentArt, BaseLine.Parameters[currentParam]));
                                currentParam++;
                            }
                            else if (!currentFlag.NeedParameter(currentArt))
                            {
                                modes.Add(new Mode(currentFlag, currentArt));
                            }
                            break;
                        }
                    }
                }
            }
            ModesValue = modes.ToArray();
        }
예제 #5
0
 public FlagDefinition(char FlagChar, ModeArt Art)
 {
     flagChar = FlagChar;
     art = Art;
 }
예제 #6
0
 /// <summary>
 /// Initializes a new instance of the FlagDefinition class with the given flag character, mode art and parameter definition.
 /// </summary>
 /// <param name="flag">
 /// The <see cref="System.Char"/> what represents this flag.
 /// </param>
 /// <param name="art">
 /// The <see cref="ModeArt"/>, this flag can be applied to.
 /// </param>
 /// <param name="parameters">
 /// The <see cref="FlagParameter"/> used when the flag is set or unset.
 /// </param>
 public FlagDefinition(char flag, ModeArt art, FlagParameter parameters)
 {
     character = flag;
     appliesTo = art;
     setParameter = parameters;
     unsetParameter = parameters;
 }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the FlagDefinition class with the given flag character and mode art.
 /// </summary>
 /// <param name="flag">
 /// The <see cref="System.Char"/> what represents this flag.
 /// </param>
 /// <param name="art">
 /// The <see cref="ModeArt"/>, this flag can be applied to.
 /// </param>
 public FlagDefinition(char flag, ModeArt art)
 {
     character = flag;
     appliesTo = art;
 }