diff --git a/cmds/utility/lookup.js b/cmds/utility/lookup.js index 1f79548..8273fda 100644 --- a/cmds/utility/lookup.js +++ b/cmds/utility/lookup.js @@ -15,7 +15,7 @@ module.exports = class lookup extends commando.Command { } async run(msg, arg) { if (!arg) { - return trySend(this.client, msg, "Args: `--[m|c|r]` [Member|Channel|Role]: `[mention|ID|name]` `--s` Show: `[number]`") + return trySend(this.client, msg, "Args: `--[m|c|r|hr]` [Member|Channel|Role|HasRole]: `[mention|ID|name]` `--s` Show: `[number]`") } let show; const showArg = arg.match(/(? r); + if (!HR.length) return trySend(this.client, msg, `No member with role \`${fetchedRoles[0].name}\` found`) + if (HR.length === 1) memMes = `Member with role: **${fetchedRoles[0].name}**\`\`\`js\n' ${HR[0].displayName} (${HR[0].tag})\`\`\``; + else memMes = multipleMembersFound(msg, HR, fetchedRoles[0].name, show, false, true).replace("Multiple members found for", "Multiple members found with role"); + } + } else if (lowCaseArg0.startsWith("--r")) { if (args[1]) { const cleanRoleID = cleanMentionID(arg.slice("--r ".length).trim()); if (/^\d{17,19}$/.test(cleanRoleID)) { @@ -49,42 +66,40 @@ module.exports = class lookup extends commando.Command { memMes = `Role found for: **${cleanRoleID}**\`\`\`js\n' ${fetchedRoles[0].name} (${fetchedRoles[0].id})\`\`\``; } } + } else if (lowCaseArg0.startsWith("--c")) { + if (args[1]) { + const cleanChannelID = cleanMentionID(arg.slice("--c ".length).trim()); + if (/^\d{17,19}$/.test(cleanChannelID)) { + fetchedChannels.push(msg.guild.roles.cache.get(cleanChannelID)); + } else { + fetchedChannels = findChannelRegEx(msg, cleanChannelID); + } + if (fetchedChannels.length > 1) { + memMes = multipleChannelsFound(msg, fetchedChannels, cleanChannelID, show, true); + } else { + if (fetchedChannels.length === 0 || fetchedChannels[0] === null) { + return trySend(this.client, msg, `No channel found for: **${cleanChannelID}**`); + } + memMes = `Channel found for: **${cleanChannelID}**\`\`\`js\n' ${fetchedChannels[0].name} (${fetchedChannels[0].id})\`\`\``; + } + } } else { - if (lowCaseArg0.startsWith("--c")) { - if (args[1]) { - const cleanChannelID = cleanMentionID(arg.slice("--c ".length).trim()); - if (/^\d{17,19}$/.test(cleanChannelID)) { - fetchedChannels.push(msg.guild.roles.cache.get(cleanChannelID)); - } else { - fetchedChannels = findChannelRegEx(msg, cleanChannelID); - } - if (fetchedChannels.length > 1) { - memMes = multipleChannelsFound(msg, fetchedChannels, cleanChannelID, show, true); - } else { - if (fetchedChannels.length === 0 || fetchedChannels[0] === null) { - return trySend(this.client, msg, `No channel found for: **${cleanChannelID}**`); - } - memMes = `Channel found for: **${cleanChannelID}**\`\`\`js\n' ${fetchedChannels[0].name} (${fetchedChannels[0].id})\`\`\``; - } - } + if (arg.startsWith("--m")) { + arg = arg.slice("--m ".length).trim(); + } + arg = cleanMentionID(arg); + if (/^\d{17,19}$/.test(arg)) { + fetchedMember.push(msg.guild.member(arg)); } else { - if (arg.startsWith("--m")) { - arg = arg.slice("--m ".length).trim(); - } - arg = cleanMentionID(arg); - if (/^\d{17,19}$/.test(arg)) { - fetchedMember.push(msg.guild.member(arg)); - } else { - fetchedMember = findMemberRegEx(msg, arg); - } - if (fetchedMember.length > 1) { - memMes = multipleMembersFound(msg, fetchedMember, arg, show, true); - } else { - if (fetchedMember.length === 0 || fetchedMember[0] === null) { - return trySend(this.client, msg, `No member found for: **${arg}**`); - } - memMes = `Member found for: **${arg}**\`\`\`js\n' ${fetchedMember[0].user.tag} (${fetchedMember[0].user.id})\`\`\``; + fetchedMember = findMemberRegEx(msg, arg); + } + if (fetchedMember.length > 1) { + memMes = multipleMembersFound(msg, fetchedMember, arg, show, true); + } else { + if (fetchedMember.length === 0 || fetchedMember[0] === null) { + return trySend(this.client, msg, `No member found for: **${arg}**`); } + memMes = `Member found for: **${arg}**\`\`\`js\n' ${fetchedMember[0].user.tag} (${fetchedMember[0].user.id})\`\`\``; } } if (memMes.length > 0) { diff --git a/resources/functions.js b/resources/functions.js index daf5a63..79bc187 100644 --- a/resources/functions.js +++ b/resources/functions.js @@ -120,16 +120,18 @@ async function ranLog(msg, addition) { * @param {string} key - Keyword * @param {number} max - Max length * @param {boolean} withID - Include user_ID + * @param {string} withNick * @returns {string} */ -function multipleMembersFound(msg, arr, key, max = 4, withID) { +function multipleMembersFound(msg, arr, key, max = 4, withID, withNick) { if (msg && arr.length > 1) { try { let multipleFound = []; for (const one of arr) { - const user = one.user ?? one; + const user = one.user || one; let mes = user.tag; - if (withID) mes = mes + ` (${user.id})`; + if (withNick) mes += ` (${one.displayName})` + if (withID) mes += ` (${user.id})`; multipleFound.push(mes); } let multi = [];