mirror of
https://github.com/danbulant/Shasha
synced 2026-07-07 20:10:56 +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) {
|
async run(msg, arg) {
|
||||||
if (!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;
|
let show;
|
||||||
const showArg = arg.match(/(?<!\\)--s +\d+/);
|
const showArg = arg.match(/(?<!\\)--s +\d+/);
|
||||||
|
|
@ -30,9 +30,26 @@ module.exports = class lookup extends commando.Command {
|
||||||
}
|
}
|
||||||
arg = arg.replace(/(?<!\\)--s +\d+/, "").trim();
|
arg = arg.replace(/(?<!\\)--s +\d+/, "").trim();
|
||||||
const args = arg.split(/ +/);
|
const args = arg.split(/ +/);
|
||||||
|
console.log(args);
|
||||||
let [fetchedMember, fetchedRoles, fetchedChannels, memMes] = [[], [], [], ""];
|
let [fetchedMember, fetchedRoles, fetchedChannels, memMes] = [[], [], [], ""];
|
||||||
const lowCaseArg0 = args[0];
|
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]) {
|
if (args[1]) {
|
||||||
const cleanRoleID = cleanMentionID(arg.slice("--r ".length).trim());
|
const cleanRoleID = cleanMentionID(arg.slice("--r ".length).trim());
|
||||||
if (/^\d{17,19}$/.test(cleanRoleID)) {
|
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})\`\`\``;
|
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 {
|
} else {
|
||||||
if (lowCaseArg0.startsWith("--c")) {
|
if (arg.startsWith("--m")) {
|
||||||
if (args[1]) {
|
arg = arg.slice("--m ".length).trim();
|
||||||
const cleanChannelID = cleanMentionID(arg.slice("--c ".length).trim());
|
}
|
||||||
if (/^\d{17,19}$/.test(cleanChannelID)) {
|
arg = cleanMentionID(arg);
|
||||||
fetchedChannels.push(msg.guild.roles.cache.get(cleanChannelID));
|
if (/^\d{17,19}$/.test(arg)) {
|
||||||
} else {
|
fetchedMember.push(msg.guild.member(arg));
|
||||||
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 {
|
} else {
|
||||||
if (arg.startsWith("--m")) {
|
fetchedMember = findMemberRegEx(msg, arg);
|
||||||
arg = arg.slice("--m ".length).trim();
|
}
|
||||||
}
|
if (fetchedMember.length > 1) {
|
||||||
arg = cleanMentionID(arg);
|
memMes = multipleMembersFound(msg, fetchedMember, arg, show, true);
|
||||||
if (/^\d{17,19}$/.test(arg)) {
|
} else {
|
||||||
fetchedMember.push(msg.guild.member(arg));
|
if (fetchedMember.length === 0 || fetchedMember[0] === null) {
|
||||||
} else {
|
return trySend(this.client, msg, `No member found for: **${arg}**`);
|
||||||
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})\`\`\``;
|
|
||||||
}
|
}
|
||||||
|
memMes = `Member found for: **${arg}**\`\`\`js\n' ${fetchedMember[0].user.tag} (${fetchedMember[0].user.id})\`\`\``;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (memMes.length > 0) {
|
if (memMes.length > 0) {
|
||||||
|
|
|
||||||
|
|
@ -120,16 +120,18 @@ async function ranLog(msg, addition) {
|
||||||
* @param {string} key - Keyword
|
* @param {string} key - Keyword
|
||||||
* @param {number} max - Max length
|
* @param {number} max - Max length
|
||||||
* @param {boolean} withID - Include user_ID
|
* @param {boolean} withID - Include user_ID
|
||||||
|
* @param {string} withNick
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function multipleMembersFound(msg, arr, key, max = 4, withID) {
|
function multipleMembersFound(msg, arr, key, max = 4, withID, withNick) {
|
||||||
if (msg && arr.length > 1) {
|
if (msg && arr.length > 1) {
|
||||||
try {
|
try {
|
||||||
let multipleFound = [];
|
let multipleFound = [];
|
||||||
for (const one of arr) {
|
for (const one of arr) {
|
||||||
const user = one.user ?? one;
|
const user = one.user || one;
|
||||||
let mes = user.tag;
|
let mes = user.tag;
|
||||||
if (withID) mes = mes + ` (${user.id})`;
|
if (withNick) mes += ` (${one.displayName})`
|
||||||
|
if (withID) mes += ` (${user.id})`;
|
||||||
multipleFound.push(mes);
|
multipleFound.push(mes);
|
||||||
}
|
}
|
||||||
let multi = [];
|
let multi = [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue