diff --git a/src/api/controllers/interactions.ts b/src/api/controllers/interactions.ts index c0df8e1e0..34582d2d0 100644 --- a/src/api/controllers/interactions.ts +++ b/src/api/controllers/interactions.ts @@ -1,12 +1,15 @@ import { eventHandlers } from "../../bot.ts"; -import { DiscordPayload, InteractionCommandPayload } from "../../types/mod.ts"; +import { + Application, + DiscordPayload, + InteractionCommandPayload, +} from "../../types/mod.ts"; import { structures } from "../structures/mod.ts"; -export async function handleInternalInteractionsCreate(data: DiscordPayload) { +export async function handleInternalInteractionCreate(data: DiscordPayload) { if (data.t !== "INTERACTION_CREATE") return; const payload = data.d as InteractionCommandPayload; - eventHandlers.interactionCreate?.( { ...payload, @@ -15,11 +18,10 @@ export async function handleInternalInteractionsCreate(data: DiscordPayload) { ); } -export async function handleInternalInteractionsCommandCreate( +export async function handleInternalApplicationCommandCreate( data: DiscordPayload, ) { if (data.t !== "APPLICATION_COMMAND_CREATE") return; - console.log(data); - eventHandlers.interactionCreate?.(data); + eventHandlers.applicationCommandCreate?.(data.d as Application); } diff --git a/src/api/controllers/mod.ts b/src/api/controllers/mod.ts index c4137f31b..e6250f8b5 100644 --- a/src/api/controllers/mod.ts +++ b/src/api/controllers/mod.ts @@ -14,8 +14,8 @@ import { handleInternalGuildUpdate, } from "./guilds.ts"; import { - handleInternalInteractionsCommandCreate, - handleInternalInteractionsCreate, + handleInternalApplicationCommandCreate, + handleInternalInteractionCreate, } from "./interactions.ts"; import { handleInternalGuildMemberAdd, @@ -67,8 +67,8 @@ export let controllers = { GUILD_ROLE_CREATE: handleInternalGuildRoleCreate, GUILD_ROLE_DELETE: handleInternalGuildRoleDelete, GUILD_ROLE_UPDATE: handleInternalGuildRoleUpdate, - INTERACTION_CREATE: handleInternalInteractionsCreate, - APPLICATION_COMMAND_CREATE: handleInternalInteractionsCommandCreate, + INTERACTION_CREATE: handleInternalInteractionCreate, + APPLICATION_COMMAND_CREATE: handleInternalApplicationCommandCreate, MESSAGE_CREATE: handleInternalMessageCreate, MESSAGE_DELETE: handleInternalMessageDelete, MESSAGE_DELETE_BULK: handleInternalMessageDeleteBulk, diff --git a/src/types/options.ts b/src/types/options.ts index 464c7400c..39bddc322 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -13,7 +13,9 @@ import { VoiceStateUpdatePayload, } from "./discord.ts"; import { UserPayload } from "./guild.ts"; +import { InteractionCommandPayload } from "./interactions.ts"; import { + Application, Attachment, BaseMessageReactionPayload, Embed, @@ -71,6 +73,7 @@ export interface DebugArg { } export interface EventHandlers { + applicationCommandCreate?: (data: Application) => unknown; botUpdate?: (user: UserPayload) => unknown; channelCreate?: (channel: Channel) => unknown; channelUpdate?: (channel: Channel, cachedChannel: Channel) => unknown; @@ -104,8 +107,7 @@ export interface EventHandlers { cachedMember?: Member, ) => unknown; heartbeat?: () => unknown; - // TODO: FIX THIS - interactionCreate?: (data: unknown) => unknown; + interactionCreate?: (data: InteractionCommandPayload) => unknown; messageCreate?: (message: Message) => unknown; messageDelete?: (partial: PartialMessage, message?: Message) => unknown; messageUpdate?: (message: Message, cachedMessage: OldMessage) => unknown;