diff options
author | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-02-11 20:43:51 +0100 |
---|---|---|
committer | Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> | 2021-02-11 20:43:51 +0100 |
commit | b601263099c4a8e415dd289ff81a7b429beff171 (patch) | |
tree | 3b2c664538019b3b9a0409c0796868c9639d2f1e | |
parent | :wrench: build (diff) | |
download | server-b601263099c4a8e415dd289ff81a7b429beff171.tar.xz |
:sparkles: Event model
-rw-r--r-- | dist/models/Event.d.ts | 338 | ||||
-rw-r--r-- | dist/models/Event.js | 1 | ||||
-rw-r--r-- | dist/models/Event.js.map | 2 | ||||
-rw-r--r-- | src/models/Event.ts | 418 |
4 files changed, 753 insertions, 6 deletions
diff --git a/dist/models/Event.d.ts b/dist/models/Event.d.ts index a86f3c07..233ebf33 100644 --- a/dist/models/Event.d.ts +++ b/dist/models/Event.d.ts @@ -1,8 +1,342 @@ +import { ConnectedAccount, User, UserSettings } from "./User"; +import { DMChannel, Channel } from "./Channel"; +import { Guild } from "./Guild"; +import { PublicMember, UserGuildSettings } from "./Member"; +import { Emoji } from "./Emoji"; +import { Presence } from "./Activity"; +import { Role } from "./Role"; +import { Invite } from "./Invite"; +import { Message, PartialEmoji } from "./Message"; +import { VoiceState } from "./VoiceState"; +import { ApplicationCommand } from "./Application"; +import { Interaction } from "./Interaction"; export interface Event { guild_id?: bigint; user_id?: bigint; channel_id?: bigint; created_at: number; - data: any; - event: string; } +export interface Event { + event: "READY"; + data: { + v: number; + user: Omit<User, "guilds" | "user_settings" | "valid_tokens_since" | "connected_accounts" | "relationships">; + private_channels: DMChannel[]; + session_id: string; + guilds: Guild[]; + analytics_token?: string; + connected_accounts?: ConnectedAccount[]; + consents?: { + personalization?: { + consented?: boolean; + }; + }; + country_code?: string; + friend_suggestion_count?: number; + geo_ordered_rtc_regions?: string[]; + experiments?: [number, number, number, number, number][]; + guild_experiments?: [ + number, + null, + number, + [ + [number, { + e: number; + s: number; + }[]] + ], + [ + number, + [[number, [number, number]]] + ], + { + b: number; + k: bigint[]; + }[] + ][]; + guild_join_requests?: []; + shard?: [number, number]; + user_settings?: UserSettings; + relationships?: []; + user_guild_settings?: { + entries: UserGuildSettings[]; + version: number; + partial: boolean; + }; + application?: { + id: bigint; + flags: bigint; + }; + merged_members?: PublicMember[][]; + users?: { + avatar?: string; + discriminator: string; + id: bigint; + username: string; + bot: boolean; + public_flags: bigint; + }[]; + }; +} +export interface Event { + event: "CHANNEL_CREATE"; + data: Channel; +} +export interface Event { + event: "CHANNEL_UPDATE"; + data: Channel; +} +export interface Event { + event: "CHANNEL_DELETE"; + data: Channel; +} +export interface Event { + event: "CHANNEL_PINS_UPDATE"; + data: { + guild_id?: bigint; + channel_id: bigint; + last_pin_timestamp: number; + }; +} +export interface Event { + event: "GUILD_CREATE"; + data: Guild; +} +export interface Event { + event: "GUILD_UPDATE"; + data: Guild; +} +export interface Event { + event: "GUILD_DELETE"; + data: Guild; +} +export interface Event { + event: "GUILD_BAN_ADD"; + data: { + guild_id: bigint; + user: User; + }; +} +export interface Event { + event: "GUILD_BAN_REMOVE"; + data: { + guild_id: bigint; + user: User; + }; +} +export interface Event { + event: "GUILD_EMOJI_UPDATE"; + data: { + guild_id: bigint; + emojis: Emoji[]; + }; +} +export interface Event { + event: "GUILD_INTEGRATIONS_UPDATE"; + data: { + guild_id: bigint; + }; +} +export interface Event { + event: "GUILD_MEMBER_ADD"; + data: PublicMember & { + guild_id: bigint; + }; +} +export interface Event { + event: "GUILD_MEMBER_REMOVE"; + data: { + guild_id: bigint; + user: User; + }; +} +export interface Event { + event: "GUILD_MEMBER_UPDATE"; + data: { + guild_id: bigint; + roles: bigint[]; + user: User; + nick?: string; + joined_at: number; + premium_since?: number; + pending?: boolean; + }; +} +export interface Event { + event: "GUILD_MEMBERS_CHUNK"; + data: { + guild_id: bigint; + members: PublicMember[]; + chunk_index: number; + chunk_count: number; + not_found: bigint[]; + presences: Presence[]; + nonce?: string; + }; +} +export interface Event { + event: "GUILD_ROLE_CREATE"; + data: { + guild_id: bigint; + role: Role; + }; +} +export interface Event { + event: "GUILD_ROLE_UPDATE"; + data: { + guild_id: bigint; + role: Role; + }; +} +export interface Event { + event: "GUILD_ROLE_DELETE"; + data: { + guild_id: bigint; + role_id: bigint; + }; +} +export interface Event { + event: "INVITE_CREATE"; + data: Omit<Invite, "guild", "channel"> & { + channel_id: bigint; + guild_id?: bigint; + }; +} +export interface Event { + event: "INVITE_DELETE"; + data: { + channel_id: bigint; + guild_id?: bigint; + code: string; + }; +} +export declare type MessagePayload = Omit<Message, "author_id"> & { + channel_id: bigint; + guild_id?: bigint; + author: User; + member: PublicMember; + mentions: (User & { + member: PublicMember; + })[]; +}; +export interface Event { + event: "MESSAGE_CREATE"; + data: MessagePayload; +} +export interface Event { + event: "MESSAGE_UPDATE"; + data: MessagePayload; +} +export interface Event { + event: "MESSAGE_DELETE"; + data: { + id: bigint; + channel_id: bigint; + guild_id?: bigint; + }; +} +export interface Event { + event: "MESSAGE_DELETE_BULK"; + data: { + ids: bigint[]; + channel_id: bigint; + guild_id?: bigint; + }; +} +export interface Event { + event: "MESSAGE_REACTION_ADD"; + data: { + user_id: bigint; + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + member?: PublicMember; + emoji: PartialEmoji; + }; +} +export interface Event { + event: "MESSAGE_REACTION_REMOVE"; + data: { + user_id: bigint; + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + emoji: PartialEmoji; + }; +} +export interface Event { + event: "MESSAGE_REACTION_REMOVE_ALL"; + data: { + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + }; +} +export interface Event { + event: "MESSAGE_REACTION_REMOVE_EMOJI"; + data: { + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + emoji: PartialEmoji; + }; +} +export interface Event { + event: "PRESENCE_UPDATE"; + data: Presence; +} +export interface Event { + event: "TYPING_START"; + data: { + channel_id: bigint; + user_id: bigint; + timestamp: number; + guild_id?: bigint; + member?: PublicMember; + }; +} +export interface Event { + event: "USER_UPDATE"; + data: User; +} +export interface Event { + event: "VOICE_STATE_UPDATE"; + data: VoiceState & { + member: PublicMember; + }; +} +export interface Event { + event: "VOICE_SERVER_UPDATE"; + data: { + token: string; + guild_id: bigint; + endpoint: string; + }; +} +export interface Event { + event: "WEBHOOKS_UPDATE"; + data: { + guild_id: bigint; + channel_id: bigint; + }; +} +export declare type ApplicationCommandPayload = ApplicationCommand & { + guild_id: bigint; +}; +export interface Event { + event: "APPLICATION_COMMAND_CREATE"; + data: ApplicationCommandPayload; +} +export interface Event { + event: "APPLICATION_COMMAND_UPDATE"; + data: ApplicationCommandPayload; +} +export interface Event { + event: "APPLICATION_COMMAND_DELETE"; + data: ApplicationCommandPayload; +} +export interface 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"; diff --git a/dist/models/Event.js b/dist/models/Event.js index 5a8077b3..c5315321 100644 --- a/dist/models/Event.js +++ b/dist/models/Event.js @@ -1,4 +1,3 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -// located in collection events //# sourceMappingURL=Event.js.map \ No newline at end of file diff --git a/dist/models/Event.js.map b/dist/models/Event.js.map index 4f46ac0a..63cd8fca 100644 --- a/dist/models/Event.js.map +++ b/dist/models/Event.js.map @@ -1 +1 @@ -{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":";;AASA,+BAA+B"} \ No newline at end of file +{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/models/Event.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/models/Event.ts b/src/models/Event.ts index 8b19fc13..9bc67c13 100644 --- a/src/models/Event.ts +++ b/src/models/Event.ts @@ -1,10 +1,424 @@ +// @ts-nocheck +import { ConnectedAccount, User, UserSettings } from "./User"; +import { DMChannel, Channel } from "./Channel"; +import { Guild } from "./Guild"; +import { Member, PublicMember, UserGuildSettings } from "./Member"; +import { Emoji } from "./Emoji"; +import { ClientStatus, Status } from "./Status"; +import { Activity, Presence } from "./Activity"; +import { Role } from "./Role"; +import { Invite } from "./Invite"; +import { Message, PartialEmoji } from "./Message"; +import { VoiceState } from "./VoiceState"; +import { ApplicationCommand } from "./Application"; +import { Interaction } from "./Interaction"; + export interface Event { guild_id?: bigint; user_id?: bigint; channel_id?: bigint; created_at: number; - data: any; - event: string; + // data: any; + // event: EVENT; +} + +export interface Event { + event: "READY"; + data: { + v: number; + user: Omit<User, "guilds" | "user_settings" | "valid_tokens_since" | "connected_accounts" | "relationships">; + private_channels: DMChannel[]; // this will be empty for bots + session_id: string; // resuming + guilds: Guild[]; + analytics_token?: string; + connected_accounts?: ConnectedAccount[]; + consents?: { + personalization?: { + consented?: boolean; + }; + }; + country_code?: string; // e.g. DE + friend_suggestion_count?: number; + geo_ordered_rtc_regions?: string[]; // ["europe","russie","india","us-east","us-central"] + experiments?: [number, number, number, number, number][]; + guild_experiments?: [ + // ? what are guild_experiments? + // this is the structure of it: + number, + null, + number, + [[number, { e: number; s: number }[]]], + [number, [[number, [number, number]]]], + { b: number; k: bigint[] }[] + ][]; + guild_join_requests?: []; // ? what is this? this is new + shard?: [number, number]; + user_settings?: UserSettings; + relationships?: []; + user_guild_settings?: { + entries: UserGuildSettings[]; + version: number; + partial: boolean; + }; + application?: { + id: bigint; + flags: bigint; + }; + + merged_members?: PublicMember[][]; // every guild member object for the current user + // probably all users who the user is in contact with + users?: { + avatar?: string; + discriminator: string; + id: bigint; + username: string; + bot: boolean; + public_flags: bigint; + }[]; + }; +} + +export interface Event { + event: "CHANNEL_CREATE"; + data: Channel; +} + +export interface Event { + event: "CHANNEL_UPDATE"; + data: Channel; +} + +export interface Event { + event: "CHANNEL_DELETE"; + data: Channel; +} + +export interface Event { + event: "CHANNEL_PINS_UPDATE"; + data: { + guild_id?: bigint; + channel_id: bigint; + last_pin_timestamp: number; + }; +} + +export interface Event { + event: "GUILD_CREATE"; + data: Guild; +} + +export interface Event { + event: "GUILD_UPDATE"; + data: Guild; +} + +export interface Event { + event: "GUILD_DELETE"; + data: Guild; +} + +export interface Event { + event: "GUILD_BAN_ADD"; + data: { + guild_id: bigint; + user: User; + }; +} + +export interface Event { + event: "GUILD_BAN_REMOVE"; + data: { + guild_id: bigint; + user: User; + }; +} + +export interface Event { + event: "GUILD_EMOJI_UPDATE"; + data: { + guild_id: bigint; + emojis: Emoji[]; + }; +} + +export interface Event { + event: "GUILD_INTEGRATIONS_UPDATE"; + data: { + guild_id: bigint; + }; +} + +export interface Event { + event: "GUILD_MEMBER_ADD"; + data: PublicMember & { + guild_id: bigint; + }; +} + +export interface Event { + event: "GUILD_MEMBER_REMOVE"; + data: { + guild_id: bigint; + user: User; + }; +} + +export interface Event { + event: "GUILD_MEMBER_UPDATE"; + data: { + guild_id: bigint; + roles: bigint[]; + user: User; + nick?: string; + joined_at: number; + premium_since?: number; + pending?: boolean; + }; +} + +export interface Event { + event: "GUILD_MEMBERS_CHUNK"; + data: { + guild_id: bigint; + members: PublicMember[]; + chunk_index: number; + chunk_count: number; + not_found: bigint[]; + presences: Presence[]; + nonce?: string; + }; +} + +export interface Event { + event: "GUILD_ROLE_CREATE"; + data: { + guild_id: bigint; + role: Role; + }; +} + +export interface Event { + event: "GUILD_ROLE_UPDATE"; + data: { + guild_id: bigint; + role: Role; + }; +} + +export interface Event { + event: "GUILD_ROLE_DELETE"; + data: { + guild_id: bigint; + role_id: bigint; + }; +} + +export interface Event { + event: "INVITE_CREATE"; + data: Omit<Invite, "guild", "channel"> & { + channel_id: bigint; + guild_id?: bigint; + }; +} + +export interface Event { + event: "INVITE_DELETE"; + data: { + channel_id: bigint; + guild_id?: bigint; + code: string; + }; +} + +export type MessagePayload = Omit<Message, "author_id"> & { + channel_id: bigint; + guild_id?: bigint; + author: User; + member: PublicMember; + mentions: (User & { member: PublicMember })[]; +}; + +export interface Event { + event: "MESSAGE_CREATE"; + data: MessagePayload; +} + +export interface Event { + event: "MESSAGE_UPDATE"; + data: MessagePayload; +} + +export interface Event { + event: "MESSAGE_DELETE"; + data: { + id: bigint; + channel_id: bigint; + guild_id?: bigint; + }; +} + +export interface Event { + event: "MESSAGE_DELETE_BULK"; + data: { + ids: bigint[]; + channel_id: bigint; + guild_id?: bigint; + }; +} + +export interface Event { + event: "MESSAGE_REACTION_ADD"; + data: { + user_id: bigint; + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + member?: PublicMember; + emoji: PartialEmoji; + }; +} + +export interface Event { + event: "MESSAGE_REACTION_REMOVE"; + data: { + user_id: bigint; + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + emoji: PartialEmoji; + }; +} + +export interface Event { + event: "MESSAGE_REACTION_REMOVE_ALL"; + data: { + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + }; +} + +export interface Event { + event: "MESSAGE_REACTION_REMOVE_EMOJI"; + data: { + channel_id: bigint; + message_id: bigint; + guild_id?: bigint; + emoji: PartialEmoji; + }; +} + +export interface Event { + event: "PRESENCE_UPDATE"; + data: Presence; +} + +export interface Event { + event: "TYPING_START"; + data: { + channel_id: bigint; + user_id: bigint; + timestamp: number; + guild_id?: bigint; + member?: PublicMember; + }; +} + +export interface Event { + event: "USER_UPDATE"; + data: User; +} + +export interface Event { + event: "VOICE_STATE_UPDATE"; + data: VoiceState & { + member: PublicMember; + }; +} + +export interface Event { + event: "VOICE_SERVER_UPDATE"; + data: { + token: string; + guild_id: bigint; + endpoint: string; + }; +} + +export interface Event { + event: "WEBHOOKS_UPDATE"; + data: { + guild_id: bigint; + channel_id: bigint; + }; +} + +export type ApplicationCommandPayload = ApplicationCommand & { + guild_id: bigint; +}; + +export interface Event { + event: "APPLICATION_COMMAND_CREATE"; + data: ApplicationCommandPayload; +} + +export interface Event { + event: "APPLICATION_COMMAND_UPDATE"; + data: ApplicationCommandPayload; +} + +export interface Event { + event: "APPLICATION_COMMAND_DELETE"; + data: ApplicationCommandPayload; +} + +export interface Event { + event: "INTERACTION_CREATE"; + data: Interaction; } // located in collection events + +export 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" + // TODO: add a new event: bulk add reaction: + // | "MESSAGE_REACTION_BULK_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"; |