public async Task <IDiscordGuildUser> GetUserAsync(IDiscordGuild guild) { if (string.IsNullOrWhiteSpace(Argument)) { return(null); } if (IsMention) { return(await guild.GetUserAsync(ulong.Parse(Argument .TrimStart('<') .TrimStart('@') .TrimStart('!') .TrimEnd('>')))); } else if (ulong.TryParse(Argument, out ulong id)) { return(await guild.GetUserAsync(id)); } return((await guild.GetUsersAsync()) .Where(x => x.Username.ToLower() == Argument.ToLower() || (x.Nickname?.ToLower() ?? "") == Argument.ToLower() || x.Username.ToLower() + "#" + x.Discriminator == Argument.ToLower()) .FirstOrDefault()); }
public static string RemoveMentions(this ArgObject arg, IDiscordGuild guild) { return(Regex.Replace(arg.Argument, "<@!?(\\d+)>", (m) => { return (guild.GetUserAsync(ulong.Parse(m.Groups[1].Value))).Result.Username; }, RegexOptions.None)); }
public async Task <IDiscordUser> GetUserAsync(IDiscordGuild guild) { if (IsMention) { return(await guild.GetUserAsync(ulong.Parse(Argument .TrimStart('<') .TrimStart('@') .TrimStart('!') .TrimEnd('>')))); } else if (ulong.TryParse(Argument, out ulong id)) { return(await guild.GetUserAsync(id)); } return(await guild.GetUserAsync(Argument)); }