diff --git a/src/classes/DiscordWebhook/sendOfferReview.ts b/src/classes/DiscordWebhook/sendOfferReview.ts index a512bdd27..10e6b37db 100644 --- a/src/classes/DiscordWebhook/sendOfferReview.ts +++ b/src/classes/DiscordWebhook/sendOfferReview.ts @@ -20,8 +20,9 @@ export default function sendOfferReview( ): void { const opt = bot.options.discordWebhook; + // TODO: APPLY MENTIONS ON OTHER REASONS let noMentionOnInvalidValue = false; - if (!opt.offerReview.mentionInvalidValue) { + if (!opt.offerReview.mentions.invalidValue) { noMentionOnInvalidValue = reasons.includes('🟥_INVALID_VALUE') && !( @@ -37,7 +38,7 @@ export default function sendOfferReview( noMentionOnInvalidValue && !reasons.includes('⬜_REVIEW_FORCED') ? `${offer.id}` : `${ - opt.offerReview.isMention && opt.ownerID.length > 0 + opt.offerReview.mentions.enable && opt.ownerID.length > 0 ? opt.ownerID.map(id => `<@!${id}>`).join(', ') + `, ` : '' }check this! - ${offer.id}`; diff --git a/src/classes/Options.ts b/src/classes/Options.ts index 112832d2e..e1722e732 100644 --- a/src/classes/Options.ts +++ b/src/classes/Options.ts @@ -544,8 +544,19 @@ export const DEFAULTS: JsonOptions = { offerReview: { enable: true, url: '', - mentionInvalidValue: true, - isMention: true, + mentions: { + enable: true, + invalidValue: false, + invalidItems: true, + overstocked: true, + understocked: true, + duped: true, + dupedCheckFailed: true, + escrowCheckFailed: true, + bannedCheckFailed: true, + halted: true, + reviewForced: true + }, misc: { showQuickLinks: true, showKeyRate: true, @@ -1668,11 +1679,24 @@ interface MentionOwner extends OnlyEnable { interface OfferReviewDW extends OnlyEnable { url?: string; - mentionInvalidValue?: boolean; - isMention?: boolean; + mentions?: ReviewMentions; misc?: MiscOfferReview; } +interface ReviewMentions { + enable: boolean; + invalidValue: boolean; + invalidItems: boolean; + overstocked: boolean; + understocked: boolean; + duped: boolean; + dupedCheckFailed: boolean; + escrowCheckFailed: boolean; + bannedCheckFailed: boolean; + halted: boolean; + reviewForced: boolean; +} + interface MiscOfferReview { showQuickLinks?: boolean; showKeyRate?: boolean; @@ -2476,6 +2500,30 @@ function replaceOldProperties(options: DeprecatedJsonOptions): boolean { isChanged = true; } + // <=v5.8.4 -> v5.9.0 + /*eslint-disable */ + //@ts-ignore + if (options.discordWebhook?.offerReview?.isMention) { + //@ts-ignore + options.discordWebhook.offerReview.mentions.enable = options.discordWebhook.offerReview.isMention; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + delete options.discordWebhook.offerReview.isMention; + isChanged = true; + } + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + if (options.discordWebhook?.offerReview?.mentionInvalidValue) { + options.discordWebhook.offerReview.mentions.invalidValue = //@ts-ignore + options.discordWebhook.offerReview.mentionInvalidValue; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + delete options.discordWebhook.offerReview.mentionInvalidValue; + isChanged = true; + } + /*eslint-enable */ + return isChanged; } diff --git a/src/schemas/options-json/options.ts b/src/schemas/options-json/options.ts index 20ab7345e..ccf528029 100644 --- a/src/schemas/options-json/options.ts +++ b/src/schemas/options-json/options.ts @@ -1646,11 +1646,57 @@ export const optionsSchema: jsonschema.Schema = { type: 'string', pattern: '^$|https://discord(app)?.com/api/webhooks/[0-9]+/(.)+' }, - mentionInvalidValue: { - type: 'boolean' - }, - isMention: { - type: 'boolean' + mentions: { + type: 'object', + properties: { + enable: { + type: 'boolean' + }, + invalidValue: { + type: 'boolean' + }, + invalidItems: { + type: 'boolean' + }, + overstocked: { + type: 'boolean' + }, + understocked: { + type: 'boolean' + }, + duped: { + type: 'boolean' + }, + dupedCheckFailed: { + type: 'boolean' + }, + escrowCheckFailed: { + type: 'boolean' + }, + bannedCheckFailed: { + type: 'boolean' + }, + halted: { + type: 'boolean' + }, + reviewForced: { + type: 'boolean' + } + }, + required: [ + 'enable', + 'invalidValue', + 'invalidItems', + 'overstocked', + 'understocked', + 'duped', + 'dupedCheckFailed', + 'escrowCheckFailed', + 'bannedCheckFailed', + 'halted', + 'reviewForced' + ], + additionalProperties: false }, misc: { type: 'object', @@ -1672,7 +1718,7 @@ export const optionsSchema: jsonschema.Schema = { additionalProperties: false } }, - required: ['enable', 'url', 'mentionInvalidValue', 'isMention', 'misc'], + required: ['enable', 'url', 'mentions', 'misc'], additionalProperties: false }, messages: {