/// <summary>
        /// Checks whether the message contains a specified mention prefix.
        /// </summary>
        /// <param name="msg">Message to check.</param>
        /// <param name="user">User to check for.</param>
        /// <returns>Positive number if the prefix is present, -1 otherwise.</returns>
        public static int GetMentionPrefixLength(this DiscordMessage msg, DiscordUser user)
        {
            var cnt = msg.Content;

            if (!cnt.StartsWith("<@"))
            {
                return(-1);
            }

            var cni = cnt.IndexOf('>');

            if (cni == -1 || cnt.Length <= cni + 2)
            {
                return(-1);
            }

            var cnp = cnt.Substring(0, cni + 2);
            var m   = UserRegex.Match(cnp);

            if (!m.Success)
            {
                return(-1);
            }

            var uid = ulong.Parse(m.Groups[1].Value, CultureInfo.InvariantCulture);

            if (user.Id != uid)
            {
                return(-1);
            }

            int sn = 0;

            for (var i = m.Value.Length; i < cnt.Length; i++)
            {
                if (char.IsWhiteSpace(cnt[i]))
                {
                    sn++;
                }
                else
                {
                    break;
                }
            }

            return(m.Value.Length + sn);
        }
Beispiel #2
0
 public void Setup()
 {
     userRegex = new UserRegex();
 }