| @@ -15,7 +15,6 @@ | |||||
| public static bool HasStringPrefix(this IMessage msg, string str, ref int argPos) | public static bool HasStringPrefix(this IMessage msg, string str, ref int argPos) | ||||
| { | { | ||||
| var text = msg.Content; | var text = msg.Content; | ||||
| //str = str + ' '; | |||||
| if (text.StartsWith(str)) | if (text.StartsWith(str)) | ||||
| { | { | ||||
| argPos = str.Length; | argPos = str.Length; | ||||
| @@ -26,19 +25,14 @@ | |||||
| public static bool HasMentionPrefix(this IMessage msg, IUser user, ref int argPos) | public static bool HasMentionPrefix(this IMessage msg, IUser user, ref int argPos) | ||||
| { | { | ||||
| var text = msg.Content; | var text = msg.Content; | ||||
| string mention = user.Mention + ' '; | |||||
| if (text.StartsWith(mention)) | |||||
| { | |||||
| argPos = mention.Length; | |||||
| return true; | |||||
| } | |||||
| string nickMention = user.NicknameMention + ' '; | |||||
| if (text.StartsWith(mention)) | |||||
| { | |||||
| argPos = nickMention.Length; | |||||
| return true; | |||||
| } | |||||
| return false; | |||||
| if (text.Length <= 3 || text[0] != '<' || text[1] != '@') return false; | |||||
| int endPos = text.IndexOf('>'); | |||||
| if (endPos == -1) return false; | |||||
| ulong userId; | |||||
| if (!MentionUtils.TryParseUser(text.Substring(0, endPos), out userId)) return false; | |||||
| return userId == user.Id; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -16,9 +16,8 @@ namespace Discord | |||||
| public ushort DiscriminatorValue => User.DiscriminatorValue; | public ushort DiscriminatorValue => User.DiscriminatorValue; | ||||
| public bool IsAttached => User.IsAttached; | public bool IsAttached => User.IsAttached; | ||||
| public bool IsBot => User.IsBot; | public bool IsBot => User.IsBot; | ||||
| public string Mention => User.Mention; | |||||
| public string NicknameMention => User.NicknameMention; | |||||
| public string Username => User.Username; | public string Username => User.Username; | ||||
| public string Mention => MentionUtils.Mention(this, false); | |||||
| public virtual UserStatus Status => UserStatus.Unknown; | public virtual UserStatus Status => UserStatus.Unknown; | ||||
| public virtual Game Game => null; | public virtual Game Game => null; | ||||
| @@ -29,8 +29,7 @@ namespace Discord | |||||
| public ushort DiscriminatorValue => User.DiscriminatorValue; | public ushort DiscriminatorValue => User.DiscriminatorValue; | ||||
| public bool IsAttached => User.IsAttached; | public bool IsAttached => User.IsAttached; | ||||
| public bool IsBot => User.IsBot; | public bool IsBot => User.IsBot; | ||||
| public string Mention => User.Mention; | |||||
| public string NicknameMention => User.NicknameMention; | |||||
| public string Mention => MentionUtils.Mention(this, Nickname != null); | |||||
| public string Username => User.Username; | public string Username => User.Username; | ||||
| public virtual UserStatus Status => UserStatus.Unknown; | public virtual UserStatus Status => UserStatus.Unknown; | ||||
| @@ -12,7 +12,5 @@ namespace Discord | |||||
| bool IsBot { get; } | bool IsBot { get; } | ||||
| /// <summary> Gets the username for this user. </summary> | /// <summary> Gets the username for this user. </summary> | ||||
| string Username { get; } | string Username { get; } | ||||
| /// <summary> Returns a special string used to mention this object, by nickname. </summary> | |||||
| string NicknameMention { get; } | |||||
| } | } | ||||
| } | } | ||||
| @@ -17,8 +17,7 @@ namespace Discord | |||||
| public string AvatarUrl => API.CDN.GetUserAvatarUrl(Id, _avatarId); | public string AvatarUrl => API.CDN.GetUserAvatarUrl(Id, _avatarId); | ||||
| public string Discriminator => DiscriminatorValue.ToString("D4"); | public string Discriminator => DiscriminatorValue.ToString("D4"); | ||||
| public string Mention => MentionUtils.Mention(this, false); | |||||
| public string NicknameMention => MentionUtils.Mention(this, true); | |||||
| public string Mention => MentionUtils.Mention(this); | |||||
| public virtual Game Game => null; | public virtual Game Game => null; | ||||
| public virtual UserStatus Status => UserStatus.Unknown; | public virtual UserStatus Status => UserStatus.Unknown; | ||||
| @@ -22,8 +22,7 @@ namespace Discord | |||||
| public ushort DiscriminatorValue => User.DiscriminatorValue; | public ushort DiscriminatorValue => User.DiscriminatorValue; | ||||
| public bool IsAttached => User.IsAttached; | public bool IsAttached => User.IsAttached; | ||||
| public bool IsBot => User.IsBot; | public bool IsBot => User.IsBot; | ||||
| public string Mention => User.Mention; | |||||
| public string NicknameMention => User.NicknameMention; | |||||
| public string Mention => MentionUtils.Mention(this); | |||||
| public string Username => User.Username; | public string Username => User.Username; | ||||
| public CachedDMUser(CachedGlobalUser user) | public CachedDMUser(CachedGlobalUser user) | ||||
| @@ -13,7 +13,8 @@ namespace Discord | |||||
| private static readonly Regex _channelRegex = new Regex(@"<#([0-9]+)>", RegexOptions.Compiled); | private static readonly Regex _channelRegex = new Regex(@"<#([0-9]+)>", RegexOptions.Compiled); | ||||
| private static readonly Regex _roleRegex = new Regex(@"<@&([0-9]+)>", RegexOptions.Compiled); | private static readonly Regex _roleRegex = new Regex(@"<@&([0-9]+)>", RegexOptions.Compiled); | ||||
| internal static string Mention(IUser user, bool useNickname) => useNickname ? $"<@!{user.Id}>" : $"<@{user.Id}>"; | |||||
| //Unsure the system can be positive a user doesn't have a nickname, assume useNickname = true (source: Jake) | |||||
| internal static string Mention(IUser user, bool useNickname = true) => useNickname ? $"<@!{user.Id}>" : $"<@{user.Id}>"; | |||||
| internal static string Mention(IChannel channel) => $"<#{channel.Id}>"; | internal static string Mention(IChannel channel) => $"<#{channel.Id}>"; | ||||
| internal static string Mention(IRole role) => $"<&{role.Id}>"; | internal static string Mention(IRole role) => $"<&{role.Id}>"; | ||||