summaryrefslogtreecommitdiff
path: root/packages/interactions
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-10-01 21:04:29 -0700
committerFuwn <[email protected]>2025-10-01 21:04:29 -0700
commitc2ba8c2c4b2d0bde82149a357e616f582fc92e28 (patch)
tree6e0bd86f18a17376f6e2588aa37471c23485b3de /packages/interactions
parentfeat(interactions): Add nsfw-apply command (diff)
downloadumabotdiscord-c2ba8c2c4b2d0bde82149a357e616f582fc92e28.tar.xz
umabotdiscord-c2ba8c2c4b2d0bde82149a357e616f582fc92e28.zip
feat(interactions): Support GIFs in audit logs
Diffstat (limited to 'packages/interactions')
-rw-r--r--packages/interactions/discord/commands/index.ts3
-rw-r--r--packages/interactions/discord/embeds.ts6
-rw-r--r--packages/interactions/server.ts36
3 files changed, 31 insertions, 14 deletions
diff --git a/packages/interactions/discord/commands/index.ts b/packages/interactions/discord/commands/index.ts
index 0a13e33..c916d85 100644
--- a/packages/interactions/discord/commands/index.ts
+++ b/packages/interactions/discord/commands/index.ts
@@ -141,8 +141,7 @@ export const ROLEPLAY_VERIFY_COMMAND: DiscordCommand = {
export const AGE_VERIFY_COMMAND: DiscordCommand = {
name: "age-verify",
- description:
- "Manage the verified age role (Staff only)",
+ description: "Manage the verified age role (Staff only)",
options: [
{
type: 3,
diff --git a/packages/interactions/discord/embeds.ts b/packages/interactions/discord/embeds.ts
index 16e485e..2d2dfe9 100644
--- a/packages/interactions/discord/embeds.ts
+++ b/packages/interactions/discord/embeds.ts
@@ -136,7 +136,7 @@ export const createComplaintEmbed = (
],
thumbnail: complainant.avatar
? {
- url: `https://cdn.discordapp.com/avatars/${complainant.id}/${complainant.avatar}.png?size=256`,
+ url: `https://cdn.discordapp.com/avatars/${complainant.id}/${complainant.avatar}${complainant.avatar.startsWith("a_") ? ".gif" : ".png"}?size=256`,
}
: undefined,
footer: {
@@ -171,7 +171,7 @@ export const createAppealEmbed = (
],
thumbnail: appellant.avatar
? {
- url: `https://cdn.discordapp.com/avatars/${appellant.id}/${appellant.avatar}.png?size=256`,
+ url: `https://cdn.discordapp.com/avatars/${appellant.id}/${appellant.avatar}${appellant.avatar.startsWith("a_") ? ".gif" : ".png"}?size=256`,
}
: undefined,
footer: {
@@ -204,7 +204,7 @@ export const createNSFWApplicationEmbed = (
],
thumbnail: applicant.avatar
? {
- url: `https://cdn.discordapp.com/avatars/${applicant.id}/${applicant.avatar}.png?size=256`,
+ url: `https://cdn.discordapp.com/avatars/${applicant.id}/${applicant.avatar}${applicant.avatar.startsWith("a_") ? ".gif" : ".png"}?size=256`,
}
: undefined,
footer: {
diff --git a/packages/interactions/server.ts b/packages/interactions/server.ts
index 29245b6..d120f1a 100644
--- a/packages/interactions/server.ts
+++ b/packages/interactions/server.ts
@@ -518,13 +518,15 @@ router.post("/", async (request: Request, environment: Environment) => {
case NSFW_APPLY_COMMAND.name.toLowerCase(): {
try {
- const applicationMessage = interaction.data.options?.[0]?.value as string;
+ const applicationMessage = interaction.data.options?.[0]
+ ?.value as string;
if (!applicationMessage)
return new JSONResponse({
type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,
data: {
- content: "❌ Please provide a message for your NSFW access application.",
+ content:
+ "❌ Please provide a message for your NSFW access application.",
flags: 64,
},
});
@@ -546,7 +548,10 @@ router.post("/", async (request: Request, environment: Environment) => {
Date.now(),
isDM,
);
- const success = await sendNSFWApplicationToChannel(environment, applicationEmbed);
+ const success = await sendNSFWApplicationToChannel(
+ environment,
+ applicationEmbed,
+ );
if (success) {
return new JSONResponse({
@@ -573,7 +578,8 @@ router.post("/", async (request: Request, environment: Environment) => {
return new JSONResponse({
type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,
data: {
- content: "❌ An error occurred while processing your NSFW access application.",
+ content:
+ "❌ An error occurred while processing your NSFW access application.",
flags: 64,
},
});
@@ -798,11 +804,21 @@ router.post("/", async (request: Request, environment: Environment) => {
const hasAdminPermission =
member?.permissions && (parseInt(member.permissions) & 0x8) === 0x8;
const hasOwnerRole = member?.roles?.includes(OWNER_ROLE_ID);
- const hasAdministratorRole = member?.roles?.includes(ADMINISTRATOR_ROLE_ID);
+ const hasAdministratorRole = member?.roles?.includes(
+ ADMINISTRATOR_ROLE_ID,
+ );
const hasModeratorRole = member?.roles?.includes(MODERATOR_ROLE_ID);
- const hasTrialModeratorRole = member?.roles?.includes(TRIAL_MODERATOR_ROLE_ID);
+ const hasTrialModeratorRole = member?.roles?.includes(
+ TRIAL_MODERATOR_ROLE_ID,
+ );
- if (!hasAdminPermission && !hasOwnerRole && !hasAdministratorRole && !hasModeratorRole && !hasTrialModeratorRole)
+ if (
+ !hasAdminPermission &&
+ !hasOwnerRole &&
+ !hasAdministratorRole &&
+ !hasModeratorRole &&
+ !hasTrialModeratorRole
+ )
return new JSONResponse({
type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,
data: {
@@ -847,7 +863,8 @@ router.post("/", async (request: Request, environment: Environment) => {
const targetMember = await guild.json();
const currentRoles = targetMember.roles || [];
- const targetRoleId = access === "art_media" ? ART_MEDIA_ROLE_ID : ROLEPLAY_NSFW_ROLE_ID;
+ const targetRoleId =
+ access === "art_media" ? ART_MEDIA_ROLE_ID : ROLEPLAY_NSFW_ROLE_ID;
const hasRole = currentRoles.includes(targetRoleId);
let actionTaken = "";
let newRoles = [...currentRoles];
@@ -918,7 +935,8 @@ router.post("/", async (request: Request, environment: Environment) => {
});
}
- const accessTypeName = access === "art_media" ? "Art & Media" : "Roleplay NSFW";
+ const accessTypeName =
+ access === "art_media" ? "Art & Media" : "Roleplay NSFW";
return new JSONResponse({
type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,