diff --git a/handlers/Actions.ts b/handlers/Actions.ts index 986e8f3..ecfe1dd 100644 --- a/handlers/Actions.ts +++ b/handlers/Actions.ts @@ -1,6 +1,7 @@ import type { DiscordChannel, DiscordChannelPinsUpdate, + DiscordGuild, DiscordGuildMemberAdd, DiscordGuildMemberRemove, DiscordGuildMemberUpdate, @@ -27,6 +28,7 @@ import ThreadMember from "../structures/ThreadMember.ts"; import Member from "../structures/Member.ts"; import Message from "../structures/Message.ts"; import User from "../structures/User.ts"; +import Guild from "../structures/guilds/Guild.ts"; import Interaction from "../structures/interactions/Interaction.ts"; export type RawHandler = (...args: [Session, number, T]) => void; @@ -50,6 +52,14 @@ export const MESSAGE_DELETE: RawHandler = (session, _shard session.emit("messageDelete", { id, channelId: channel_id, guildId: guild_id }); }; +export const GUILD_CREATE: RawHandler = (session, _shardId, guild) => { + session.emit("guildCreate", new Guild(session, guild)); +}; + +export const GUILD_DELETE: RawHandler = (session, _shardId, guild) => { + session.emit("guildDelete", { id: guild.id, unavailable: true }); +}; + export const GUILD_MEMBER_ADD: RawHandler = (session, _shardId, member) => { session.emit("guildMemberAdd", new Member(session, member, member.guild_id)); }; @@ -159,6 +169,8 @@ export interface Events { "messageReactionRemove": Handler<[MessageReaction]>; "messageReactionRemoveAll": Handler<[MessageReaction]>; "messageReactionRemoveEmoji": Handler<[MessageReaction]>; + "guildCreate": Handler<[Guild]>; + "guildDelete": Handler<[{ id: Snowflake, unavailable: boolean }]>; "guildMemberAdd": Handler<[Member]>; "guildMemberUpdate": Handler<[Member]>; "guildMemberRemove": Handler<[User, Snowflake]>;