UNPKG

solara-testing-beta

Version:

A modern, customizable, and lightweight Discord framework.

119 lines 3.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveUser = resolveUser; exports.resolveMember = resolveMember; exports.getTargetMember = getTargetMember; exports.getTargetUser = getTargetUser; async function resolveUser(client, guild, identifier) { if (!identifier) return null; identifier = identifier.replace(/[<@!>]/g, ''); try { if (/^\d{17,19}$/.test(identifier)) { const user = await client.users.fetch(identifier).catch(() => null); if (user) return user; } } catch { } if (guild) { try { const members = await guild.members.search({ query: identifier, limit: 1 }); if (members.size > 0) { return members.first().user; } } catch { } const memberByName = guild.members.cache.find(m => m.user.username.toLowerCase() === identifier.toLowerCase() || m.user.tag.toLowerCase() === identifier.toLowerCase() || m.displayName.toLowerCase() === identifier.toLowerCase()); if (memberByName) return memberByName.user; } const userByName = client.users.cache.find(u => u.username.toLowerCase() === identifier.toLowerCase() || u.tag.toLowerCase() === identifier.toLowerCase()); if (userByName) return userByName; try { if (/^\d{17,19}$/.test(identifier)) { const user = await client.users.fetch(identifier).catch(() => null); if (user) return user; } } catch { } return null; } async function resolveMember(client, guild, identifier) { if (!guild || !identifier) return null; identifier = identifier.replace(/[<@!>]/g, ''); try { if (/^\d{17,19}$/.test(identifier)) { const member = await guild.members.fetch(identifier).catch(() => null); if (member) return member; } } catch { } try { const members = await guild.members.search({ query: identifier, limit: 1 }); if (members.size > 0) { return members.first(); } } catch (e) { console.warn(`Member search failed in guild ${guild.id}: ${e}`); } const memberByName = guild.members.cache.find(m => m.user.username.toLowerCase() === identifier.toLowerCase() || m.user.tag.toLowerCase() === identifier.toLowerCase() || m.displayName.toLowerCase() === identifier.toLowerCase() || m.id === identifier); if (memberByName) return memberByName; try { if (/^\d{17,19}$/.test(identifier)) { const member = await guild.members.fetch(identifier).catch(() => null); if (member) return member; } } catch { } return null; } async function getTargetMember(ctx, argIndex) { const guild = ctx.message?.guild ?? ctx.interaction?.guild; if (!guild) return null; const targetIdentifier = ctx.args[argIndex]; if (targetIdentifier) { return await resolveMember(ctx.client, guild, targetIdentifier); } else if (ctx.interaction) { return ctx.interaction.member; } else if (ctx.message) { return ctx.message.member; } return null; } async function getTargetUser(ctx, argIndex) { const targetIdentifier = ctx.args[argIndex]; if (targetIdentifier) { const guild = ctx.message?.guild ?? ctx.interaction?.guild; if (guild) { const member = await resolveMember(ctx.client, guild, targetIdentifier); if (member) return member.user; } return await resolveUser(ctx.client, guild ?? null, targetIdentifier); } else if (ctx.interaction) { return ctx.interaction.user; } else if (ctx.message) { return ctx.message.author; } return null; } //# sourceMappingURL=resolveUser.js.map