@sapphire/framework
Version:
Discord bot framework built for advanced and amazing bots.
28 lines (26 loc) • 1.34 kB
JavaScript
;
const require_lib_errors_Identifiers = require('../errors/Identifiers.cjs');
let __sapphire_utilities = require("@sapphire/utilities");
let __sapphire_result = require("@sapphire/result");
let __sapphire_discord_utilities = require("@sapphire/discord-utilities");
//#region src/lib/resolvers/member.ts
async function resolveMember(parameter, guild, performFuzzySearch) {
let member = await resolveById(parameter, guild);
if ((0, __sapphire_utilities.isNullish)(member) && performFuzzySearch) member = await resolveByQuery(parameter, guild);
if (member) return __sapphire_result.Result.ok(member);
return __sapphire_result.Result.err(require_lib_errors_Identifiers.Identifiers.ArgumentMemberError);
}
async function resolveById(argument, guild) {
const memberId = __sapphire_discord_utilities.UserOrMemberMentionRegex.exec(argument) ?? __sapphire_discord_utilities.SnowflakeRegex.exec(argument);
return memberId ? guild.members.fetch(memberId[1]).catch(() => null) : null;
}
async function resolveByQuery(argument, guild) {
argument = argument.length > 5 && argument.at(-5) === "#" ? argument.slice(0, -5) : argument;
return (await guild.members.fetch({
query: argument,
limit: 1
}).catch(() => null))?.first() ?? null;
}
//#endregion
exports.resolveMember = resolveMember;
//# sourceMappingURL=member.cjs.map