using System; namespace Discord.Commands { public static class MessageExtensions { public static bool HasCharPrefix(this IUserMessage msg, char c, ref int argPos) { var text = msg.Content; if (text.Length > 0 && text[0] == c) { argPos = 1; return true; } return false; } public static bool HasStringPrefix(this IUserMessage msg, string str, ref int argPos, StringComparison comparisonType = StringComparison.Ordinal) { var text = msg.Content; if (text.StartsWith(str, comparisonType)) { argPos = str.Length; return true; } return false; } public static bool HasMentionPrefix(this IUserMessage msg, IUser user, ref int argPos) { var text = msg.Content; if (text.Length <= 3 || text[0] != '<' || text[1] != '@') return false; int endPos = text.IndexOf('>'); if (endPos == -1) return false; if (text.Length < endPos + 2 || text[endPos + 1] != ' ') return false; //Must end in "> " ulong userId; if (!MentionUtils.TryParseUser(text.Substring(0, endPos + 1), out userId)) return false; if (userId == user.Id) { argPos = endPos + 2; return true; } return false; } public static string GetJumpUrl(this IMessage msg) { var channel = msg.Channel; return $"https://discordapp.com/channels/{(channel is IDMChannel ? "@me" : $"{(channel as IGuildChannel).GuildId}")}/{channel.Id}/{msg.Id}"; } } }