mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-14 22:05:01 +00:00
Made cases commands ephemeral by default
This commit is contained in:
parent
b428e18fc7
commit
ba65ecb48f
8 changed files with 52 additions and 15 deletions
|
@ -2,6 +2,10 @@ import { commandTypeHelpers as ct } from "../../../../commandTypes";
|
|||
import { actualCaseCmd } from "../../functions/actualCommands/actualCaseCmd";
|
||||
import { modActionsMsgCmd } from "../../types";
|
||||
|
||||
const opts = {
|
||||
show: ct.switchOption({ def: false, shortcut: "sh" }),
|
||||
};
|
||||
|
||||
export const CaseMsgCmd = modActionsMsgCmd({
|
||||
trigger: "case",
|
||||
permission: "can_view",
|
||||
|
@ -10,10 +14,12 @@ export const CaseMsgCmd = modActionsMsgCmd({
|
|||
signature: [
|
||||
{
|
||||
caseNumber: ct.number(),
|
||||
|
||||
...opts,
|
||||
},
|
||||
],
|
||||
|
||||
async run({ pluginData, message: msg, args }) {
|
||||
actualCaseCmd(pluginData, msg, msg.author.id, args.caseNumber);
|
||||
actualCaseCmd(pluginData, msg, msg.author.id, args.caseNumber, args.show);
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
import { slashOptions } from "knub";
|
||||
import { actualCaseCmd } from "../../functions/actualCommands/actualCaseCmd";
|
||||
|
||||
const opts = [
|
||||
slashOptions.boolean({ name: "show", description: "To make the result visible to everyone", required: false }),
|
||||
];
|
||||
|
||||
export const CaseSlashCmd = {
|
||||
name: "case",
|
||||
configPermission: "can_view",
|
||||
|
@ -9,9 +13,11 @@ export const CaseSlashCmd = {
|
|||
|
||||
signature: [
|
||||
slashOptions.number({ name: "case-number", description: "The number of the case to show", required: true }),
|
||||
|
||||
...opts,
|
||||
],
|
||||
|
||||
async run({ interaction, options, pluginData }) {
|
||||
actualCaseCmd(pluginData, interaction, interaction.user.id, options["case-number"]);
|
||||
actualCaseCmd(pluginData, interaction, interaction.user.id, options["case-number"], options.show);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -13,6 +13,7 @@ const opts = {
|
|||
unmutes: ct.switchOption({ def: false, shortcut: "um" }),
|
||||
bans: ct.switchOption({ def: false, shortcut: "b" }),
|
||||
unbans: ct.switchOption({ def: false, shortcut: "ub" }),
|
||||
show: ct.switchOption({ def: false, shortcut: "sh" }),
|
||||
};
|
||||
|
||||
export const CasesModMsgCmd = modActionsMsgCmd({
|
||||
|
@ -42,6 +43,7 @@ export const CasesModMsgCmd = modActionsMsgCmd({
|
|||
args.reverseFilters,
|
||||
args.hidden,
|
||||
args.expand,
|
||||
args.show,
|
||||
);
|
||||
},
|
||||
});
|
||||
|
|
|
@ -17,6 +17,7 @@ const opts = [
|
|||
slashOptions.boolean({ name: "unmutes", description: "To filter unmutes", required: false }),
|
||||
slashOptions.boolean({ name: "bans", description: "To filter bans", required: false }),
|
||||
slashOptions.boolean({ name: "unbans", description: "To filter unbans", required: false }),
|
||||
slashOptions.boolean({ name: "show", description: "To make the result visible to everyone", required: false }),
|
||||
];
|
||||
|
||||
export const CasesSlashCmd = {
|
||||
|
@ -43,6 +44,7 @@ export const CasesSlashCmd = {
|
|||
options["reverse-filters"],
|
||||
options.hidden,
|
||||
options.expand,
|
||||
options.show,
|
||||
);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -15,6 +15,7 @@ const opts = {
|
|||
unmutes: ct.switchOption({ def: false, shortcut: "um" }),
|
||||
bans: ct.switchOption({ def: false, shortcut: "b" }),
|
||||
unbans: ct.switchOption({ def: false, shortcut: "ub" }),
|
||||
show: ct.switchOption({ def: false, shortcut: "sh" }),
|
||||
};
|
||||
|
||||
export const CasesUserMsgCmd = modActionsMsgCmd({
|
||||
|
@ -55,6 +56,7 @@ export const CasesUserMsgCmd = modActionsMsgCmd({
|
|||
args.reverseFilters,
|
||||
args.hidden,
|
||||
args.expand,
|
||||
args.show,
|
||||
);
|
||||
},
|
||||
});
|
||||
|
|
|
@ -10,6 +10,7 @@ export async function actualCaseCmd(
|
|||
context: Message | ChatInputCommandInteraction,
|
||||
authorId: string,
|
||||
caseNumber: number,
|
||||
show: boolean | null,
|
||||
) {
|
||||
const theCase = await pluginData.state.cases.findByCaseNumber(caseNumber);
|
||||
|
||||
|
@ -21,5 +22,5 @@ export async function actualCaseCmd(
|
|||
const casesPlugin = pluginData.getPlugin(CasesPlugin);
|
||||
const embed = await casesPlugin.getCaseEmbed(theCase.id, authorId);
|
||||
|
||||
sendContextResponse(context, embed);
|
||||
sendContextResponse(context, { ...embed, ephemeral: show !== true });
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ async function sendExpandedCases(
|
|||
context: Message | ChatInputCommandInteraction,
|
||||
casesCount: number,
|
||||
cases: Case[],
|
||||
show: boolean | null,
|
||||
) {
|
||||
if (casesCount > maxExpandedCases) {
|
||||
await sendContextResponse(context, "Too many cases for expanded view. Please use compact view instead.");
|
||||
|
@ -40,7 +41,7 @@ async function sendExpandedCases(
|
|||
|
||||
for (const theCase of cases) {
|
||||
const embed = await casesPlugin.getCaseEmbed(theCase.id);
|
||||
await sendContextResponse(context, embed);
|
||||
await sendContextResponse(context, { ...embed, ephemeral: !show });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,6 +55,7 @@ async function casesUserCmd(
|
|||
typesToShow: CaseTypes[],
|
||||
hidden: boolean | null,
|
||||
expand: boolean | null,
|
||||
show: boolean | null,
|
||||
) {
|
||||
const casesPlugin = pluginData.getPlugin(CasesPlugin);
|
||||
const casesFilters: Omit<FindOptionsWhere<Case>, "guild_id" | "user_id"> = { type: In(typesToShow) };
|
||||
|
@ -86,7 +88,7 @@ async function casesUserCmd(
|
|||
}
|
||||
|
||||
if (expand) {
|
||||
sendExpandedCases(pluginData, context, casesToDisplay.length, casesToDisplay);
|
||||
sendExpandedCases(pluginData, context, casesToDisplay.length, casesToDisplay, show);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -129,7 +131,7 @@ async function casesUserCmd(
|
|||
fields: [...(isLastChunk ? [footerField] : [])],
|
||||
} satisfies APIEmbed;
|
||||
|
||||
sendContextResponse(context, { embeds: [embed] });
|
||||
sendContextResponse(context, { embeds: [embed], ephemeral: !show });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -143,6 +145,7 @@ async function casesModCmd(
|
|||
typesToShow: CaseTypes[],
|
||||
hidden: boolean | null,
|
||||
expand: boolean | null,
|
||||
show: boolean | null,
|
||||
) {
|
||||
const casesPlugin = pluginData.getPlugin(CasesPlugin);
|
||||
const casesFilters = { type: In(typesToShow), is_hidden: !!hidden };
|
||||
|
@ -161,7 +164,7 @@ async function casesModCmd(
|
|||
// Expanded view (= individual case embeds)
|
||||
const cases = totalCases > 8 ? [] : await casesPlugin.getRecentCasesByMod(modId ?? author.id, 8, 0, casesFilters);
|
||||
|
||||
sendExpandedCases(pluginData, context, totalCases, cases);
|
||||
sendExpandedCases(pluginData, context, totalCases, cases, show);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -199,7 +202,7 @@ async function casesModCmd(
|
|||
],
|
||||
} satisfies APIEmbed;
|
||||
|
||||
return { embeds: [embed] };
|
||||
return { embeds: [embed], ephemeral: !show };
|
||||
},
|
||||
{
|
||||
limitToUserId: author.id,
|
||||
|
@ -222,6 +225,7 @@ export async function actualCasesCmd(
|
|||
reverseFilters: boolean | null,
|
||||
hidden: boolean | null,
|
||||
expand: boolean | null,
|
||||
show: boolean | null,
|
||||
) {
|
||||
const mod = modId
|
||||
? (await resolveMember(pluginData.client, pluginData.guild, modId)) || (await resolveUser(pluginData.client, modId))
|
||||
|
@ -253,6 +257,17 @@ export async function actualCasesCmd(
|
|||
}
|
||||
|
||||
user
|
||||
? casesUserCmd(pluginData, context, author.user, modId!, user, modName, typesToShow, hidden, expand)
|
||||
: casesModCmd(pluginData, context, author.user, modId!, mod ?? author, modName, typesToShow, hidden, expand);
|
||||
? casesUserCmd(pluginData, context, author.user, modId!, user, modName, typesToShow, hidden, expand, show === true)
|
||||
: casesModCmd(
|
||||
pluginData,
|
||||
context,
|
||||
author.user,
|
||||
modId!,
|
||||
mod ?? author,
|
||||
modName,
|
||||
typesToShow,
|
||||
hidden,
|
||||
expand,
|
||||
show === true,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue