Add postInCaseLog option for mod action Automod actions; allow forcing case log even when log_automatic_actions is disabled
This commit is contained in:
parent
aa43f05173
commit
45e81848a7
7 changed files with 18 additions and 13 deletions
|
@ -12,6 +12,7 @@ export const BanAction = automodAction({
|
|||
notify: tNullable(t.string),
|
||||
notifyChannel: tNullable(t.string),
|
||||
deleteMessageDays: tNullable(t.number),
|
||||
postInCaseLog: tNullable(t.boolean),
|
||||
}),
|
||||
|
||||
defaultConfig: {
|
||||
|
@ -27,6 +28,7 @@ export const BanAction = automodAction({
|
|||
modId: pluginData.client.user.id,
|
||||
extraNotes: matchResult.fullSummary ? [matchResult.fullSummary] : [],
|
||||
automatic: true,
|
||||
postInCaseLogOverride: actionConfig.postInCaseLog ?? undefined,
|
||||
};
|
||||
|
||||
const userIdsToBan = unique(contexts.map(c => c.user?.id).filter(nonNullish));
|
||||
|
|
|
@ -11,6 +11,7 @@ export const KickAction = automodAction({
|
|||
reason: tNullable(t.string),
|
||||
notify: tNullable(t.string),
|
||||
notifyChannel: tNullable(t.string),
|
||||
postInCaseLog: tNullable(t.boolean),
|
||||
}),
|
||||
|
||||
defaultConfig: {
|
||||
|
@ -25,6 +26,7 @@ export const KickAction = automodAction({
|
|||
modId: pluginData.client.user.id,
|
||||
extraNotes: matchResult.fullSummary ? [matchResult.fullSummary] : [],
|
||||
automatic: true,
|
||||
postInCaseLogOverride: actionConfig.postInCaseLog ?? undefined,
|
||||
};
|
||||
|
||||
const userIdsToKick = unique(contexts.map(c => c.user?.id).filter(nonNullish));
|
||||
|
|
|
@ -25,6 +25,7 @@ export const MuteAction = automodAction({
|
|||
notifyChannel: tNullable(t.string),
|
||||
remove_roles_on_mute: tNullable(t.union([t.boolean, t.array(t.string)])),
|
||||
restore_roles_on_mute: tNullable(t.union([t.boolean, t.array(t.string)])),
|
||||
postInCaseLog: tNullable(t.boolean),
|
||||
}),
|
||||
|
||||
defaultConfig: {
|
||||
|
@ -42,6 +43,7 @@ export const MuteAction = automodAction({
|
|||
modId: pluginData.client.user.id,
|
||||
extraNotes: matchResult.fullSummary ? [matchResult.fullSummary] : [],
|
||||
automatic: true,
|
||||
postInCaseLogOverride: actionConfig.postInCaseLog ?? undefined,
|
||||
};
|
||||
|
||||
const userIdsToMute = unique(contexts.map(c => c.user?.id).filter(nonNullish));
|
||||
|
|
|
@ -11,6 +11,7 @@ export const WarnAction = automodAction({
|
|||
reason: tNullable(t.string),
|
||||
notify: tNullable(t.string),
|
||||
notifyChannel: tNullable(t.string),
|
||||
postInCaseLog: tNullable(t.boolean),
|
||||
}),
|
||||
|
||||
defaultConfig: {
|
||||
|
@ -25,6 +26,7 @@ export const WarnAction = automodAction({
|
|||
modId: pluginData.client.user.id,
|
||||
extraNotes: matchResult.fullSummary ? [matchResult.fullSummary] : [],
|
||||
automatic: true,
|
||||
postInCaseLogOverride: actionConfig.postInCaseLog ?? undefined,
|
||||
};
|
||||
|
||||
const userIdsToWarn = unique(contexts.map(c => c.user?.id).filter(nonNullish));
|
||||
|
|
|
@ -62,11 +62,11 @@ export async function createCase(pluginData: GuildPluginData<CasesPluginType>, a
|
|||
|
||||
const config = pluginData.config.get();
|
||||
|
||||
if (
|
||||
config.case_log_channel &&
|
||||
(!args.automatic || config.log_automatic_actions) &&
|
||||
args.postInCaseLogOverride !== false
|
||||
) {
|
||||
const shouldPostToCaseLogChannel =
|
||||
args.postInCaseLogOverride === true ||
|
||||
((!args.automatic || config.log_automatic_actions) && args.postInCaseLogOverride !== false);
|
||||
|
||||
if (config.case_log_channel && shouldPostToCaseLogChannel) {
|
||||
await postCaseToCaseLogChannel(pluginData, createdCase);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,10 @@ export async function createCaseNote(pluginData: GuildPluginData<CasesPluginType
|
|||
}
|
||||
|
||||
const modConfig = pluginData.config.getForUser(mod);
|
||||
if ((!args.automatic || modConfig.log_automatic_actions) && args.postInCaseLogOverride !== false) {
|
||||
if (
|
||||
args.postInCaseLogOverride === true ||
|
||||
((!args.automatic || modConfig.log_automatic_actions) && args.postInCaseLogOverride !== false)
|
||||
) {
|
||||
await postCaseToCaseLogChannel(pluginData, theCase.id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -188,8 +188,6 @@ export async function muteUser(
|
|||
|
||||
if (theCase) {
|
||||
// Update old case
|
||||
// Since mutes can often have multiple notes (extraNotes), we won't post each case note individually,
|
||||
// but instead we'll post the entire case afterwards
|
||||
const noteDetails = [`Mute updated to ${muteTime ? timeUntilUnmute : "indefinite"}`];
|
||||
const reasons = reason ? [reason] : [];
|
||||
if (muteOptions.caseArgs?.extraNotes) {
|
||||
|
@ -201,13 +199,9 @@ export async function muteUser(
|
|||
modId: muteOptions.caseArgs?.modId,
|
||||
body: noteReason,
|
||||
noteDetails,
|
||||
postInCaseLogOverride: false,
|
||||
postInCaseLogOverride: muteOptions.caseArgs?.postInCaseLogOverride,
|
||||
});
|
||||
}
|
||||
|
||||
if (muteOptions.caseArgs?.postInCaseLogOverride !== false) {
|
||||
casesPlugin.postCaseToCaseLogChannel(existingMute!.case_id);
|
||||
}
|
||||
} else {
|
||||
// Create new case
|
||||
const noteDetails = [`Muted ${muteTime ? `for ${timeUntilUnmute}` : "indefinitely"}`];
|
||||
|
|
Loading…
Add table
Reference in a new issue