@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
35 lines (32 loc) • 1.49 kB
JavaScript
;
var discordUtilities = require('@sapphire/discord-utilities');
var result = require('@sapphire/result');
var utilities = require('@sapphire/utilities');
var Identifiers_cjs = require('../errors/Identifiers.cjs');
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
async function resolveMember(parameter, guild, performFuzzySearch) {
let member = await resolveById(parameter, guild);
if (utilities.isNullish(member) && performFuzzySearch) {
member = await resolveByQuery(parameter, guild);
}
if (member) {
return result.Result.ok(member);
}
return result.Result.err(Identifiers_cjs.Identifiers.ArgumentMemberError);
}
__name(resolveMember, "resolveMember");
async function resolveById(argument, guild) {
const memberId = discordUtilities.UserOrMemberMentionRegex.exec(argument) ?? discordUtilities.SnowflakeRegex.exec(argument);
return memberId ? guild.members.fetch(memberId[1]).catch(() => null) : null;
}
__name(resolveById, "resolveById");
async function resolveByQuery(argument, guild) {
argument = argument.length > 5 && argument.at(-5) === "#" ? argument.slice(0, -5) : argument;
const members = await guild.members.fetch({ query: argument, limit: 1 }).catch(() => null);
return members?.first() ?? null;
}
__name(resolveByQuery, "resolveByQuery");
exports.resolveMember = resolveMember;
//# sourceMappingURL=member.cjs.map
//# sourceMappingURL=member.cjs.map