diff --git a/dist/models/Event.d.ts b/dist/models/Event.d.ts
index 233ebf33..693c1b5a 100644
--- a/dist/models/Event.d.ts
+++ b/dist/models/Event.d.ts
@@ -15,8 +15,13 @@ export interface Event {
user_id?: bigint;
channel_id?: bigint;
created_at: number;
+ event: EVENT;
+ data?: any;
}
-export interface Event {
+export interface InvalidatedEvent extends Event {
+ event: "INVALIDATED";
+}
+export interface ReadyEvent extends Event {
event: "READY";
data: {
v: number;
@@ -78,19 +83,19 @@ export interface Event {
}[];
};
}
-export interface Event {
+export interface ChannelCreateEvent extends Event {
event: "CHANNEL_CREATE";
data: Channel;
}
-export interface Event {
+export interface ChannelUpdateEvent extends Event {
event: "CHANNEL_UPDATE";
data: Channel;
}
-export interface Event {
+export interface ChannelDeleteEvent extends Event {
event: "CHANNEL_DELETE";
data: Channel;
}
-export interface Event {
+export interface ChannelPinsUpdateEvent extends Event {
event: "CHANNEL_PINS_UPDATE";
data: {
guild_id?: bigint;
@@ -98,59 +103,59 @@ export interface Event {
last_pin_timestamp: number;
};
}
-export interface Event {
+export interface GuildCreateEvent extends Event {
event: "GUILD_CREATE";
data: Guild;
}
-export interface Event {
+export interface GuildUpdateEvent extends Event {
event: "GUILD_UPDATE";
data: Guild;
}
-export interface Event {
+export interface GuildDeleteEvent extends Event {
event: "GUILD_DELETE";
data: Guild;
}
-export interface Event {
+export interface GuildBanAddEvent extends Event {
event: "GUILD_BAN_ADD";
data: {
guild_id: bigint;
user: User;
};
}
-export interface Event {
+export interface GuildBanRemoveEvent extends Event {
event: "GUILD_BAN_REMOVE";
data: {
guild_id: bigint;
user: User;
};
}
-export interface Event {
+export interface GuildEmojiUpdateEvent extends Event {
event: "GUILD_EMOJI_UPDATE";
data: {
guild_id: bigint;
emojis: Emoji[];
};
}
-export interface Event {
+export interface GuildIntegrationUpdateEvent extends Event {
event: "GUILD_INTEGRATIONS_UPDATE";
data: {
guild_id: bigint;
};
}
-export interface Event {
+export interface GuildMemberAddEvent extends Event {
event: "GUILD_MEMBER_ADD";
data: PublicMember & {
guild_id: bigint;
};
}
-export interface Event {
+export interface GuildMemberRemoveEvent extends Event {
event: "GUILD_MEMBER_REMOVE";
data: {
guild_id: bigint;
user: User;
};
}
-export interface Event {
+export interface GuildMemberUpdateEvent extends Event {
event: "GUILD_MEMBER_UPDATE";
data: {
guild_id: bigint;
@@ -162,7 +167,7 @@ export interface Event {
pending?: boolean;
};
}
-export interface Event {
+export interface GuildMembersChunkEvent extends Event {
event: "GUILD_MEMBERS_CHUNK";
data: {
guild_id: bigint;
@@ -174,35 +179,35 @@ export interface Event {
nonce?: string;
};
}
-export interface Event {
+export interface GuildRoleCreateEvent extends Event {
event: "GUILD_ROLE_CREATE";
data: {
guild_id: bigint;
role: Role;
};
}
-export interface Event {
+export interface GuildRoleUpdateEvent extends Event {
event: "GUILD_ROLE_UPDATE";
data: {
guild_id: bigint;
role: Role;
};
}
-export interface Event {
+export interface GuildRoleDeleteEvent extends Event {
event: "GUILD_ROLE_DELETE";
data: {
guild_id: bigint;
role_id: bigint;
};
}
-export interface Event {
+export interface InviteCreateEvent extends Event {
event: "INVITE_CREATE";
- data: Omit<Invite, "guild", "channel"> & {
+ data: Omit<Invite, "guild" | "channel"> & {
channel_id: bigint;
guild_id?: bigint;
};
}
-export interface Event {
+export interface InviteDeleteEvent extends Event {
event: "INVITE_DELETE";
data: {
channel_id: bigint;
@@ -219,15 +224,15 @@ export declare type MessagePayload = Omit<Message, "author_id"> & {
member: PublicMember;
})[];
};
-export interface Event {
+export interface MessageCreateEvent extends Event {
event: "MESSAGE_CREATE";
data: MessagePayload;
}
-export interface Event {
+export interface MessageUpdateEvent extends Event {
event: "MESSAGE_UPDATE";
data: MessagePayload;
}
-export interface Event {
+export interface MessageDeleteEvent extends Event {
event: "MESSAGE_DELETE";
data: {
id: bigint;
@@ -235,7 +240,7 @@ export interface Event {
guild_id?: bigint;
};
}
-export interface Event {
+export interface MessageDeleteBulkEvent extends Event {
event: "MESSAGE_DELETE_BULK";
data: {
ids: bigint[];
@@ -243,7 +248,7 @@ export interface Event {
guild_id?: bigint;
};
}
-export interface Event {
+export interface MessageReactionAddEvent extends Event {
event: "MESSAGE_REACTION_ADD";
data: {
user_id: bigint;
@@ -254,7 +259,7 @@ export interface Event {
emoji: PartialEmoji;
};
}
-export interface Event {
+export interface MessageReactionRemoveEvent extends Event {
event: "MESSAGE_REACTION_REMOVE";
data: {
user_id: bigint;
@@ -264,7 +269,7 @@ export interface Event {
emoji: PartialEmoji;
};
}
-export interface Event {
+export interface MessageReactionRemoveAllEvent extends Event {
event: "MESSAGE_REACTION_REMOVE_ALL";
data: {
channel_id: bigint;
@@ -272,7 +277,7 @@ export interface Event {
guild_id?: bigint;
};
}
-export interface Event {
+export interface MessageReactionRemoveEmojiEvent extends Event {
event: "MESSAGE_REACTION_REMOVE_EMOJI";
data: {
channel_id: bigint;
@@ -281,11 +286,11 @@ export interface Event {
emoji: PartialEmoji;
};
}
-export interface Event {
+export interface PresenceUpdateEvent extends Event {
event: "PRESENCE_UPDATE";
data: Presence;
}
-export interface Event {
+export interface TypingStartEvent extends Event {
event: "TYPING_START";
data: {
channel_id: bigint;
@@ -295,17 +300,17 @@ export interface Event {
member?: PublicMember;
};
}
-export interface Event {
+export interface UserUpdateEvent extends Event {
event: "USER_UPDATE";
data: User;
}
-export interface Event {
+export interface VoiceStateUpdateEvent extends Event {
event: "VOICE_STATE_UPDATE";
data: VoiceState & {
member: PublicMember;
};
}
-export interface Event {
+export interface VoiceServerUpdateEvent extends Event {
event: "VOICE_SERVER_UPDATE";
data: {
token: string;
@@ -313,7 +318,7 @@ export interface Event {
endpoint: string;
};
}
-export interface Event {
+export interface WebhooksUpdateEvent extends Event {
event: "WEBHOOKS_UPDATE";
data: {
guild_id: bigint;
@@ -323,20 +328,21 @@ export interface Event {
export declare type ApplicationCommandPayload = ApplicationCommand & {
guild_id: bigint;
};
-export interface Event {
+export interface ApplicationCommandCreateEvent extends Event {
event: "APPLICATION_COMMAND_CREATE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface ApplicationCommandUpdateEvent extends Event {
event: "APPLICATION_COMMAND_UPDATE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface ApplicationCommandDeleteEvent extends Event {
event: "APPLICATION_COMMAND_DELETE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface InteractionCreateEvent extends Event {
event: "INTERACTION_CREATE";
data: Interaction;
}
-export declare type EVENT = "READY" | "CHANNEL_CREATE" | "CHANNEL_UPDATE" | "CHANNEL_DELETE" | "CHANNEL_PINS_UPDATE" | "GUILD_CREATE" | "GUILD_UPDATE" | "GUILD_DELETE" | "GUILD_BAN_ADD" | "GUILD_BAN_REMOVE" | "GUILD_EMOJI_UPDATE" | "GUILD_INTEGRATIONS_UPDATE" | "GUILD_MEMBER_ADD" | "GUILD_MEMBER_REMOVE" | "GUILD_MEMBER_UPDATE" | "GUILD_MEMBER_AVAILABLE" | "GUILD_MEMBER_SPEAKING" | "GUILD_MEMBERS_CHUNK" | "GUILD_ROLE_CREATE" | "GUILD_ROLE_DELETE" | "GUILD_ROLE_UPDATE" | "INVITE_CREATE" | "INVITE_DELETE" | "MESSAGE_CREATE" | "MESSAGE_DELETE" | "MESSAGE_UPDATE" | "MESSAGE_BULK_DELETE" | "MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_REMOVE" | "MESSAGE_REACTION_REMOVE_ALL" | "PRESENCE_UPDATE" | "TYPING_START" | "USER_UPDATE" | "WEBHOOKS_UPDATE" | "INTERACTION_CREATE" | "VOICE_STATE_UPDATE" | "VOICE_SERVER_UPDATE" | "APPLICATION_COMMAND_CREATE" | "APPLICATION_COMMAND_UPDATE" | "APPLICATION_COMMAND_DELETE";
+export declare type EVENT = "READY" | "CHANNEL_CREATE" | "CHANNEL_UPDATE" | "CHANNEL_DELETE" | "CHANNEL_PINS_UPDATE" | "GUILD_CREATE" | "GUILD_UPDATE" | "GUILD_DELETE" | "GUILD_BAN_ADD" | "GUILD_BAN_REMOVE" | "GUILD_EMOJI_UPDATE" | "GUILD_INTEGRATIONS_UPDATE" | "GUILD_MEMBER_ADD" | "GUILD_MEMBER_REMOVE" | "GUILD_MEMBER_UPDATE" | "GUILD_MEMBER_AVAILABLE" | "GUILD_MEMBER_SPEAKING" | "GUILD_MEMBERS_CHUNK" | "GUILD_ROLE_CREATE" | "GUILD_ROLE_DELETE" | "GUILD_ROLE_UPDATE" | "INVITE_CREATE" | "INVITE_DELETE" | "MESSAGE_CREATE" | "MESSAGE_UPDATE" | "MESSAGE_DELETE" | "MESSAGE_DELETE_BULK" | "MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_REMOVE" | "MESSAGE_REACTION_REMOVE_ALL" | "MESSAGE_REACTION_REMOVE_EMOJI" | "PRESENCE_UPDATE" | "TYPING_START" | "USER_UPDATE" | "WEBHOOKS_UPDATE" | "INTERACTION_CREATE" | "VOICE_STATE_UPDATE" | "VOICE_SERVER_UPDATE" | "APPLICATION_COMMAND_CREATE" | "APPLICATION_COMMAND_UPDATE" | "APPLICATION_COMMAND_DELETE" | CUSTOMEVENTS;
+export declare type CUSTOMEVENTS = "INVALIDATED";
diff --git a/src/models/Event.ts b/src/models/Event.ts
index 9bc67c13..34c330d3 100644
--- a/src/models/Event.ts
+++ b/src/models/Event.ts
@@ -1,4 +1,3 @@
-// @ts-nocheck
import { ConnectedAccount, User, UserSettings } from "./User";
import { DMChannel, Channel } from "./Channel";
import { Guild } from "./Guild";
@@ -18,11 +17,19 @@ export interface Event {
user_id?: bigint;
channel_id?: bigint;
created_at: number;
- // data: any;
- // event: EVENT;
+ event: EVENT;
+ data?: any;
}
-export interface Event {
+// ! Custom Events that shouldn't get sent to the client but processed by the server
+
+export interface InvalidatedEvent extends Event {
+ event: "INVALIDATED";
+}
+
+// ! END Custom Events that shouldn't get sent to the client but processed by the server
+
+export interface ReadyEvent extends Event {
event: "READY";
data: {
v: number;
@@ -78,22 +85,22 @@ export interface Event {
};
}
-export interface Event {
+export interface ChannelCreateEvent extends Event {
event: "CHANNEL_CREATE";
data: Channel;
}
-export interface Event {
+export interface ChannelUpdateEvent extends Event {
event: "CHANNEL_UPDATE";
data: Channel;
}
-export interface Event {
+export interface ChannelDeleteEvent extends Event {
event: "CHANNEL_DELETE";
data: Channel;
}
-export interface Event {
+export interface ChannelPinsUpdateEvent extends Event {
event: "CHANNEL_PINS_UPDATE";
data: {
guild_id?: bigint;
@@ -102,22 +109,22 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildCreateEvent extends Event {
event: "GUILD_CREATE";
data: Guild;
}
-export interface Event {
+export interface GuildUpdateEvent extends Event {
event: "GUILD_UPDATE";
data: Guild;
}
-export interface Event {
+export interface GuildDeleteEvent extends Event {
event: "GUILD_DELETE";
data: Guild;
}
-export interface Event {
+export interface GuildBanAddEvent extends Event {
event: "GUILD_BAN_ADD";
data: {
guild_id: bigint;
@@ -125,7 +132,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildBanRemoveEvent extends Event {
event: "GUILD_BAN_REMOVE";
data: {
guild_id: bigint;
@@ -133,7 +140,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildEmojiUpdateEvent extends Event {
event: "GUILD_EMOJI_UPDATE";
data: {
guild_id: bigint;
@@ -141,21 +148,21 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildIntegrationUpdateEvent extends Event {
event: "GUILD_INTEGRATIONS_UPDATE";
data: {
guild_id: bigint;
};
}
-export interface Event {
+export interface GuildMemberAddEvent extends Event {
event: "GUILD_MEMBER_ADD";
data: PublicMember & {
guild_id: bigint;
};
}
-export interface Event {
+export interface GuildMemberRemoveEvent extends Event {
event: "GUILD_MEMBER_REMOVE";
data: {
guild_id: bigint;
@@ -163,7 +170,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildMemberUpdateEvent extends Event {
event: "GUILD_MEMBER_UPDATE";
data: {
guild_id: bigint;
@@ -176,7 +183,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildMembersChunkEvent extends Event {
event: "GUILD_MEMBERS_CHUNK";
data: {
guild_id: bigint;
@@ -189,7 +196,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildRoleCreateEvent extends Event {
event: "GUILD_ROLE_CREATE";
data: {
guild_id: bigint;
@@ -197,7 +204,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildRoleUpdateEvent extends Event {
event: "GUILD_ROLE_UPDATE";
data: {
guild_id: bigint;
@@ -205,7 +212,7 @@ export interface Event {
};
}
-export interface Event {
+export interface GuildRoleDeleteEvent extends Event {
event: "GUILD_ROLE_DELETE";
data: {
guild_id: bigint;
@@ -213,15 +220,15 @@ export interface Event {
};
}
-export interface Event {
+export interface InviteCreateEvent extends Event {
event: "INVITE_CREATE";
- data: Omit<Invite, "guild", "channel"> & {
+ data: Omit<Invite, "guild" | "channel"> & {
channel_id: bigint;
guild_id?: bigint;
};
}
-export interface Event {
+export interface InviteDeleteEvent extends Event {
event: "INVITE_DELETE";
data: {
channel_id: bigint;
@@ -238,17 +245,17 @@ export type MessagePayload = Omit<Message, "author_id"> & {
mentions: (User & { member: PublicMember })[];
};
-export interface Event {
+export interface MessageCreateEvent extends Event {
event: "MESSAGE_CREATE";
data: MessagePayload;
}
-export interface Event {
+export interface MessageUpdateEvent extends Event {
event: "MESSAGE_UPDATE";
data: MessagePayload;
}
-export interface Event {
+export interface MessageDeleteEvent extends Event {
event: "MESSAGE_DELETE";
data: {
id: bigint;
@@ -257,7 +264,7 @@ export interface Event {
};
}
-export interface Event {
+export interface MessageDeleteBulkEvent extends Event {
event: "MESSAGE_DELETE_BULK";
data: {
ids: bigint[];
@@ -266,7 +273,7 @@ export interface Event {
};
}
-export interface Event {
+export interface MessageReactionAddEvent extends Event {
event: "MESSAGE_REACTION_ADD";
data: {
user_id: bigint;
@@ -278,7 +285,7 @@ export interface Event {
};
}
-export interface Event {
+export interface MessageReactionRemoveEvent extends Event {
event: "MESSAGE_REACTION_REMOVE";
data: {
user_id: bigint;
@@ -289,7 +296,7 @@ export interface Event {
};
}
-export interface Event {
+export interface MessageReactionRemoveAllEvent extends Event {
event: "MESSAGE_REACTION_REMOVE_ALL";
data: {
channel_id: bigint;
@@ -298,7 +305,7 @@ export interface Event {
};
}
-export interface Event {
+export interface MessageReactionRemoveEmojiEvent extends Event {
event: "MESSAGE_REACTION_REMOVE_EMOJI";
data: {
channel_id: bigint;
@@ -308,12 +315,12 @@ export interface Event {
};
}
-export interface Event {
+export interface PresenceUpdateEvent extends Event {
event: "PRESENCE_UPDATE";
data: Presence;
}
-export interface Event {
+export interface TypingStartEvent extends Event {
event: "TYPING_START";
data: {
channel_id: bigint;
@@ -324,19 +331,19 @@ export interface Event {
};
}
-export interface Event {
+export interface UserUpdateEvent extends Event {
event: "USER_UPDATE";
data: User;
}
-export interface Event {
+export interface VoiceStateUpdateEvent extends Event {
event: "VOICE_STATE_UPDATE";
data: VoiceState & {
member: PublicMember;
};
}
-export interface Event {
+export interface VoiceServerUpdateEvent extends Event {
event: "VOICE_SERVER_UPDATE";
data: {
token: string;
@@ -345,7 +352,7 @@ export interface Event {
};
}
-export interface Event {
+export interface WebhooksUpdateEvent extends Event {
event: "WEBHOOKS_UPDATE";
data: {
guild_id: bigint;
@@ -357,22 +364,22 @@ export type ApplicationCommandPayload = ApplicationCommand & {
guild_id: bigint;
};
-export interface Event {
+export interface ApplicationCommandCreateEvent extends Event {
event: "APPLICATION_COMMAND_CREATE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface ApplicationCommandUpdateEvent extends Event {
event: "APPLICATION_COMMAND_UPDATE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface ApplicationCommandDeleteEvent extends Event {
event: "APPLICATION_COMMAND_DELETE";
data: ApplicationCommandPayload;
}
-export interface Event {
+export interface InteractionCreateEvent extends Event {
event: "INTERACTION_CREATE";
data: Interaction;
}
@@ -404,14 +411,15 @@ export type EVENT =
| "INVITE_CREATE"
| "INVITE_DELETE"
| "MESSAGE_CREATE"
- | "MESSAGE_DELETE"
| "MESSAGE_UPDATE"
- | "MESSAGE_BULK_DELETE"
+ | "MESSAGE_DELETE"
+ | "MESSAGE_DELETE_BULK"
| "MESSAGE_REACTION_ADD"
// TODO: add a new event: bulk add reaction:
// | "MESSAGE_REACTION_BULK_ADD"
| "MESSAGE_REACTION_REMOVE"
| "MESSAGE_REACTION_REMOVE_ALL"
+ | "MESSAGE_REACTION_REMOVE_EMOJI"
| "PRESENCE_UPDATE"
| "TYPING_START"
| "USER_UPDATE"
@@ -421,4 +429,7 @@ export type EVENT =
| "VOICE_SERVER_UPDATE"
| "APPLICATION_COMMAND_CREATE"
| "APPLICATION_COMMAND_UPDATE"
- | "APPLICATION_COMMAND_DELETE";
+ | "APPLICATION_COMMAND_DELETE"
+ | CUSTOMEVENTS;
+
+export type CUSTOMEVENTS = "INVALIDATED";
|