diff --git a/packages/biscuit/Actions.ts b/packages/biscuit/Actions.ts index 7c2bf62..cdd7265 100644 --- a/packages/biscuit/Actions.ts +++ b/packages/biscuit/Actions.ts @@ -58,7 +58,7 @@ import Integration from "./structures/Integration.ts"; import Guild from "./structures/guilds/Guild.ts"; import InteractionFactory from "./structures/interactions/InteractionFactory.ts"; import { InviteCreate, NewInviteCreate } from "./structures/Invite.ts"; -import { MessageReactionAdd, NewMessageReactionAdd } from "./structures/MessageReaction.ts"; +import { MessageReactionAdd, MessageReactionRemove, MessageReactionRemoveAll, MessageReactionRemoveEmoji, NewMessageReactionAdd } from "./structures/MessageReaction.ts"; export type RawHandler = (...args: [Session, number, T]) => void; export type Handler = (...args: T) => unknown; @@ -278,7 +278,7 @@ export const MESSAGE_REACTION_REMOVE_ALL: RawHandler { - session.emit("messageReactionRemoveAll", null); + session.emit("messageReactionRemoveAll", NewMessageReactionAdd(session, reaction as DiscordMessageReactionAdd)); }; export const MESSAGE_REACTION_REMOVE_EMOJI: RawHandler = ( @@ -286,7 +286,7 @@ export const MESSAGE_REACTION_REMOVE_EMOJI: RawHandler { - session.emit("messageReactionRemoveEmoji", null); + session.emit("messageReactionRemoveEmoji", NewMessageReactionAdd(session, reaction as DiscordMessageReactionAdd)); }; export const INVITE_CREATE: RawHandler = (session, _shardId, invite) => { @@ -363,9 +363,9 @@ export interface Events { "messageUpdate": Handler<[Partial]>; "messageDelete": Handler<[{ id: Snowflake, channelId: Snowflake, guildId?: Snowflake }]>; "messageReactionAdd": Handler<[MessageReactionAdd]>; - "messageReactionRemove": Handler<[MessageReactionAdd]>; - "messageReactionRemoveAll": Handler<[MessageReaction]>; - "messageReactionRemoveEmoji": Handler<[MessageReaction]>; + "messageReactionRemove": Handler<[MessageReactionRemove]>; + "messageReactionRemoveAll": Handler<[MessageReactionRemoveAll]>; + "messageReactionRemoveEmoji": Handler<[MessageReactionRemoveEmoji]>; "guildCreate": Handler<[Guild]>; "guildDelete": Handler<[{ id: Snowflake, unavailable: boolean }]>; "guildMemberAdd": Handler<[Member]>; diff --git a/packages/biscuit/structures/MessageReaction.ts b/packages/biscuit/structures/MessageReaction.ts index 9846f5f..794acc0 100644 --- a/packages/biscuit/structures/MessageReaction.ts +++ b/packages/biscuit/structures/MessageReaction.ts @@ -12,6 +12,15 @@ export interface MessageReactionAdd { emoji: Partial } +export interface MessageReactionRemove extends Omit {} + +export interface MessageReactionRemoveAll extends Pick {} + +export type MessageReactionRemoveEmoji = Pick< + MessageReactionAdd, + "channelId" | "guildId" | "messageId" | "emoji" +>; + export function NewMessageReactionAdd(session: Session, data: DiscordMessageReactionAdd): MessageReactionAdd { return { userId: data.user_id,