prep for app commands

This commit is contained in:
Ean Milligan 2025-07-17 17:53:31 -04:00
parent 6d731951c7
commit 633e786d95
1 changed files with 13 additions and 14 deletions

View File

@ -1,13 +1,12 @@
import { import {
ButtonData,
DiscordenoMessage, DiscordenoMessage,
DiscordMessageComponentTypes, DiscordMessageComponentTypes,
editMessage, editMessage,
getMessage, getMessage,
Interaction, Interaction,
InteractionResponseTypes, InteractionResponseTypes,
InteractionTypes,
MessageFlags, MessageFlags,
SelectMenuData,
sendInteractionResponse, sendInteractionResponse,
structures, structures,
} from '@discordeno'; } from '@discordeno';
@ -34,26 +33,24 @@ const ackInteraction = (interaction: Interaction) =>
export const interactionCreateHandler = async (interaction: Interaction) => { export const interactionCreateHandler = async (interaction: Interaction) => {
try { try {
if (interaction.data) { if (interaction.type === InteractionTypes.MessageComponent && interaction.data) {
const parsedData = JSON.parse(JSON.stringify(interaction.data)) as SelectMenuData | ButtonData; if (interaction.data.customId.startsWith(helpCustomId) && interaction.data.componentType === DiscordMessageComponentTypes.SelectMenu) {
if (parsedData.customId.startsWith(helpCustomId) && parsedData.componentType === DiscordMessageComponentTypes.SelectMenu) {
// Acknowledge the request since we're editing the original message // Acknowledge the request since we're editing the original message
ackInteraction(interaction); ackInteraction(interaction);
// Edit original message // Edit original message
editMessage(BigInt(interaction.channelId ?? '0'), BigInt(interaction.message?.id ?? '0'), generateHelpMessage(parsedData.values[0])).catch((e) => editMessage(BigInt(interaction.channelId ?? '0'), BigInt(interaction.message?.id ?? '0'), generateHelpMessage(interaction.data.values[0])).catch((e) =>
utils.commonLoggers.messageEditError('interactionCreate.ts:30', interaction, e) utils.commonLoggers.messageEditError('interactionCreate.ts:30', interaction, e)
); );
return; return;
} }
if (parsedData.customId.startsWith(webViewCustomId) && interaction.message) { if (interaction.data.customId.startsWith(webViewCustomId) && interaction.message) {
const ownerId = parsedData.customId.split(InteractionValueSeparator)[1] ?? 'missingOwnerId'; const ownerId = interaction.data.customId.split(InteractionValueSeparator)[1] ?? 'missingOwnerId';
const userInteractingId = interaction.member?.user.id ?? interaction.user?.id ?? 'missingUserId'; const userInteractingId = interaction.member?.user.id ?? interaction.user?.id ?? 'missingUserId';
if (ownerId === userInteractingId) { if (ownerId === userInteractingId) {
ackInteraction(interaction); ackInteraction(interaction);
const enableWebView = parsedData.customId.split(InteractionValueSeparator)[2] === 'enable'; const enableWebView = interaction.data.customId.split(InteractionValueSeparator)[2] === 'enable';
const ddMsg: DiscordenoMessage = await structures.createDiscordenoMessage(interaction.message); const ddMsg: DiscordenoMessage = await structures.createDiscordenoMessage(interaction.message);
toggleWebView(ddMsg, ownerId, enableWebView); toggleWebView(ddMsg, ownerId, enableWebView);
@ -75,8 +72,8 @@ export const interactionCreateHandler = async (interaction: Interaction) => {
return; return;
} }
if (parsedData.customId.startsWith(repeatRollCustomId) && interaction.message) { if (interaction.data.customId.startsWith(repeatRollCustomId) && interaction.message) {
const ownerId = parsedData.customId.split(InteractionValueSeparator)[1] ?? 'missingOwnerId'; const ownerId = interaction.data.customId.split(InteractionValueSeparator)[1] ?? 'missingOwnerId';
const userInteractingId = interaction.member?.user.id ?? interaction.user?.id ?? 'missingUserId'; const userInteractingId = interaction.member?.user.id ?? interaction.user?.id ?? 'missingUserId';
if (ownerId === userInteractingId) { if (ownerId === userInteractingId) {
ackInteraction(interaction); ackInteraction(interaction);
@ -104,9 +101,11 @@ export const interactionCreateHandler = async (interaction: Interaction) => {
return; return;
} }
log(LT.WARN, `UNHANDLED INTERACTION!!! data: ${JSON.stringify(interaction.data)} | Full Interaction: ${JSON.stringify(interaction)}`); log(LT.WARN, `UNHANDLED COMPONENT!!! data: ${JSON.stringify(interaction.data)} | Full Interaction: ${JSON.stringify(interaction)}`);
} else if (interaction.type === InteractionTypes.ApplicationCommand && interaction.data) {
log(LT.WARN, `UNHANDLED APPLICATION COMMAND!!! data: ${JSON.stringify(interaction.data)} | Full Interaction: ${JSON.stringify(interaction)}`);
} else { } else {
log(LT.WARN, `UNHANDLED INTERACTION!!! Missing data! ${JSON.stringify(interaction)}`); log(LT.WARN, `UNHANDLED INTERACTION!!! Missing data! ${JSON.stringify(interaction)} | Full Interaction: ${JSON.stringify(interaction)}`);
} }
} catch (e) { } catch (e) {
log(LT.ERROR, `UNHANDLED INTERACTION!!! ERR! interaction: ${JSON.stringify(interaction)} error: ${JSON.stringify(e)}`); log(LT.ERROR, `UNHANDLED INTERACTION!!! ERR! interaction: ${JSON.stringify(interaction)} error: ${JSON.stringify(e)}`);