Aselia.Common.Core.ChannelBase.GetPrefix C# (CSharp) Method

GetPrefix() public abstract method

public abstract GetPrefix ( UserBase user ) : string
user UserBase
return string
        public abstract string GetPrefix(UserBase user);

Usage Example

Beispiel #1
0
        private void OnJoin(ChannelBase channel, UserBase user)
        {
            channel.BroadcastInclusive(CMD, user, channel.Name);
            user.Names(channel);

            if (channel.Properties.ContainsKey("Topic"))
            { // Note: Shouldn't send RPL_NOTOPIC under any circumstances at this point.
                user.SendNumeric(Numerics.RPL_TOPIC, channel.Name, ":" + (string)channel.Properties["Topic"]);
            }

            if (channel.Users.Count < 2)
            {
                return;
            }

            string prefix = channel.GetPrefix(user);
            if (!string.IsNullOrEmpty(prefix))
            {
                StringBuilder modes = new StringBuilder(prefix.Length + 1).Append('+');
                StringBuilder args = new StringBuilder(prefix.Length * (user.Mask.Nickname.Length + 1));
                foreach (char c in prefix)
                {
                    char m;
                    switch (c)
                    {
                    case '$':
                        m = 'X';
                        break;

                    case '~':
                        m = 'O';
                        break;

                    case '&':
                        m = 'a';
                        break;

                    case '@':
                        m = 'o';
                        break;

                    case '%':
                        m = 'h';
                        break;

                    case '+':
                        m = 'v';
                        break;

                    case '!':
                        m = 'x';
                        break;

                    default:
                        continue;
                    }

                    modes.Append(m);
                    args.Append(' ').Append(user.Mask.Nickname);
                }

                channel.BroadcastInclusive("MODE", null, channel.Name, modes.ToString() + args.ToString());
            }
        }