mirror of
https://github.com/danbulant/Shasha
synced 2026-06-20 06:41:19 +00:00
feat: hr flag for lookup cmd
This commit is contained in:
parent
ee864bfefa
commit
671712659e
2 changed files with 55 additions and 38 deletions
|
|
@ -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(/(?<!\\)--s +\d+/);
|
||||
|
|
@ -30,9 +30,26 @@ module.exports = class lookup extends commando.Command {
|
|||
}
|
||||
arg = arg.replace(/(?<!\\)--s +\d+/, "").trim();
|
||||
const args = arg.split(/ +/);
|
||||
console.log(args);
|
||||
let [fetchedMember, fetchedRoles, fetchedChannels, memMes] = [[], [], [], ""];
|
||||
const lowCaseArg0 = args[0];
|
||||
if (lowCaseArg0.startsWith("--r")) {
|
||||
if (lowCaseArg0.startsWith("--hr")) {
|
||||
console.log("HR");
|
||||
if (args[1]) {
|
||||
console.log("ARGS[1]");
|
||||
const cleanRoleID = cleanMentionID(arg.slice("--hr ".length).trim());
|
||||
if (/^\d{17,19}$/.test(cleanRoleID)) {
|
||||
fetchedRoles.push(msg.guild.roles.cache.get(cleanRoleID));
|
||||
} else {
|
||||
fetchedRoles = findRoleRegEx(msg, cleanRoleID);
|
||||
}
|
||||
if (!fetchedRoles[0]) return trySend(this.client, msg, `No role found for: **${cleanRoleID}**`);
|
||||
const HR = fetchedRoles[0].members.map(r => 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) {
|
||||
|
|
|
|||
|
|
@ -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 = [];
|
||||
|
|
|
|||
Loading…
Reference in a new issue