UNPKG

@sapphire/framework

Version:

Discord bot framework built for advanced and amazing bots.

35 lines (32 loc) 1.49 kB
'use strict'; 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