fix: make /ban ignore target input when targetting by reply

This commit is contained in:
JandereDev 2022-05-24 07:33:20 +02:00
parent 9b3eaa6752
commit 96a0d2b7c8
No known key found for this signature in database
GPG key ID: 5D5E18ACB990F57A
2 changed files with 14 additions and 15 deletions

View file

@ -31,7 +31,7 @@ export default {
] }); ] });
} }
const userInput = args.shift() || ''; const userInput = !message.reply_ids?.length ? args.shift() || '' : undefined;
if (!userInput && !message.reply_ids?.length) return message.reply({ embeds: [ if (!userInput && !message.reply_ids?.length) return message.reply({ embeds: [
embed( embed(
`Please specify one or more users by replying to their message while running this command or ` + `Please specify one or more users by replying to their message while running this command or ` +
@ -78,25 +78,19 @@ export default {
const targetUsers: User|{ _id: string }[] = []; const targetUsers: User|{ _id: string }[] = [];
const targetInput = dedupeArray( const targetInput = dedupeArray(
// Replied messages message.reply_ids?.length
(await Promise.allSettled( ? (await Promise.allSettled(
(message.reply_ids ?? []).map(msg => message.channel?.fetchMessage(msg)) message.reply_ids.map(msg => message.channel?.fetchMessage(msg))
)) ))
.filter(m => m.status == 'fulfilled').map(m => (m as any).value.author_id), .filter(m => m.status == 'fulfilled').map(m => (m as any).value.author_id)
// Provided users : userInput!.split(','),
userInput.split(','),
); );
for (const userStr of targetInput) { for (const userStr of targetInput) {
try { try {
let user = await parseUserOrId(userStr); let user = await parseUserOrId(userStr);
if (!user) { if (!user) {
if (message.reply_ids?.length && userStr == userInput) { embeds.push(embed(`I can't resolve \`${sanitizeMessageContent(userStr).trim()}\` to a user.`, null, '#ff785d'));
reason = reason ? `${userInput} ${reason}` : userInput;
}
else {
embeds.push(embed(`I can't resolve \`${sanitizeMessageContent(userStr).trim()}\` to a user.`, null, '#ff785d'));
}
continue; continue;
} }
@ -175,6 +169,7 @@ export default {
colour: EmbedColor.Success, colour: EmbedColor.Success,
description: `This is ${userWarnCount == 1 ? '**the first infraction**' : `infraction number **${userWarnCount}**`}` + description: `This is ${userWarnCount == 1 ? '**the first infraction**' : `infraction number **${userWarnCount}**`}` +
` for ${await fetchUsername(user._id)}.\n` + ` for ${await fetchUsername(user._id)}.\n` +
`**User ID:** \`${user._id}\`\n` +
`**Infraction ID:** \`${infraction._id}\`\n` + `**Infraction ID:** \`${infraction._id}\`\n` +
`**Reason:** \`${infraction.reason}\`` `**Reason:** \`${infraction.reason}\``
}); });
@ -222,7 +217,8 @@ export default {
colour: EmbedColor.Success, colour: EmbedColor.Success,
description: `This is ${userWarnCount == 1 ? '**the first infraction**' : `infraction number **${userWarnCount}**`}` + description: `This is ${userWarnCount == 1 ? '**the first infraction**' : `infraction number **${userWarnCount}**`}` +
` for ${await fetchUsername(user._id)}.\n` + ` for ${await fetchUsername(user._id)}.\n` +
`**Ban duration:** ` + `**Ban duration:** ${banDurationFancy}\n` +
`**User ID:** \`${user._id}\`\n` +
`**Infraction ID:** \`${infraction._id}\`\n` + `**Infraction ID:** \`${infraction._id}\`\n` +
`**Reason:** \`${infraction.reason}\`` `**Reason:** \`${infraction.reason}\``
}); });

View file

@ -7,6 +7,9 @@ class Infraction {
user: string; user: string;
createdBy: string|null; createdBy: string|null;
server: string; server: string;
channel?: string;
message?: string;
targetMessages?: string[];
reason: string; reason: string;
date: number; date: number;
} }