Attempt a few extra ways to resolve users
This commit is contained in:
@@ -59,7 +59,7 @@ export default {
|
|||||||
|
|
||||||
const idToUse = matches ? matches.groups!.id : discordUserInput;
|
const idToUse = matches ? matches.groups!.id : discordUserInput;
|
||||||
|
|
||||||
const user = await resolveUser(client, idToUse);
|
const user = await resolveUser(client, idToUse, interaction.guild);
|
||||||
|
|
||||||
if (!user) return interaction.editReply('User not found.');
|
if (!user) return interaction.editReply('User not found.');
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export default {
|
|||||||
|
|
||||||
await deferInteraction(interaction);
|
await deferInteraction(interaction);
|
||||||
|
|
||||||
const user = await resolveUser(client, idToUse);
|
const user = await resolveUser(client, idToUse, interaction.guild);
|
||||||
|
|
||||||
if (!user) return interaction.editReply('User not found.');
|
if (!user) return interaction.editReply('User not found.');
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,26 @@
|
|||||||
import { Client, User } from 'discord.js';
|
import { Client, Guild, User } from 'discord.js';
|
||||||
|
|
||||||
export async function resolveUser(client: Client, value: string): Promise<User | null | undefined> {
|
export async function resolveUser(client: Client, value: string, guild: Guild | null = null): Promise<User | null | undefined> {
|
||||||
let user: User | null | undefined = null;
|
let user: User | null | undefined = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
user = await client.users.fetch(value);
|
user = await client.users.fetch(value);
|
||||||
} catch (e) {
|
} catch {
|
||||||
user = client.users.cache.find(u => u.username == value);
|
user = client.users.cache.find(u => u.username == value);
|
||||||
|
|
||||||
|
if (!user && guild) {
|
||||||
|
user = guild.members.cache.find(m => m.displayName == value)?.user;
|
||||||
|
|
||||||
|
if (!user) {
|
||||||
|
try {
|
||||||
|
const users = await guild.members.fetch({
|
||||||
|
query: value
|
||||||
|
});
|
||||||
|
|
||||||
|
if (users.size > 0) user = users.first()!.user;
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return user;
|
return user;
|
||||||
|
|||||||
Reference in New Issue
Block a user