summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-02-11 20:43:51 +0100
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-02-11 20:43:51 +0100
commitb601263099c4a8e415dd289ff81a7b429beff171 (patch)
tree3b2c664538019b3b9a0409c0796868c9639d2f1e
parent:wrench: build (diff)
downloadserver-b601263099c4a8e415dd289ff81a7b429beff171.tar.xz
:sparkles: Event model
-rw-r--r--dist/models/Event.d.ts338
-rw-r--r--dist/models/Event.js1
-rw-r--r--dist/models/Event.js.map2
-rw-r--r--src/models/Event.ts418
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";