/// <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); }
public void Setup() { userRegex = new UserRegex(); }