Some fixes, and fire Ready on Resume
This commit is contained in:
		
							parent
							
								
									003fadc15a
								
							
						
					
					
						commit
						79a06f43d7
					
				
					 16 changed files with 412 additions and 15 deletions
				
			
		|  | @ -1,7 +1,7 @@ | ||||||
| import { Gateway, GatewayEventHandler } from '../index.ts' | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
| import cache from '../../models/cache.ts' | import cache from '../../models/cache.ts' | ||||||
| import { TextChannel } from '../../structures/textChannel.ts' | import { TextChannel } from '../../structures/textChannel.ts' | ||||||
| import { ChannelPayload } from "../../types/channelTypes.ts" | import { ChannelPayload } from "../../types/channel.ts" | ||||||
| 
 | 
 | ||||||
| export const channelPinsUpdate: GatewayEventHandler = async( | export const channelPinsUpdate: GatewayEventHandler = async( | ||||||
|   gateway: Gateway, |   gateway: Gateway, | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import { Gateway, GatewayEventHandler } from '../index.ts' | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
| import { Guild } from '../../structures/guild.ts' | import { Guild } from '../../structures/guild.ts' | ||||||
| import { GuildPayload } from "../../types/guildTypes.ts" | import { GuildPayload } from "../../types/guild.ts" | ||||||
| 
 | 
 | ||||||
| export const guildCreate: GatewayEventHandler = async(gateway: Gateway, d: any) => { | export const guildCreate: GatewayEventHandler = async(gateway: Gateway, d: any) => { | ||||||
|   let guild: Guild | void = await gateway.client.guilds.get(d.id) |   let guild: Guild | void = await gateway.client.guilds.get(d.id) | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ import { Message } from "../../structures/message.ts" | ||||||
| import { MessageMentions } from "../../structures/MessageMentions.ts" | import { MessageMentions } from "../../structures/MessageMentions.ts" | ||||||
| import { TextChannel } from "../../structures/textChannel.ts" | import { TextChannel } from "../../structures/textChannel.ts" | ||||||
| import { User } from "../../structures/user.ts" | import { User } from "../../structures/user.ts" | ||||||
| import { MessagePayload } from "../../types/channelTypes.ts" | import { MessagePayload } from "../../types/channel.ts" | ||||||
| import { Gateway, GatewayEventHandler } from '../index.ts' | import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
| 
 | 
 | ||||||
| export const messageCreate: GatewayEventHandler = async( | export const messageCreate: GatewayEventHandler = async( | ||||||
|  |  | ||||||
|  | @ -3,4 +3,5 @@ import { Gateway, GatewayEventHandler } from '../index.ts' | ||||||
| export const resume: GatewayEventHandler = (gateway: Gateway, d: any) => { | export const resume: GatewayEventHandler = (gateway: Gateway, d: any) => { | ||||||
|   gateway.debug(`Session Resumed!`) |   gateway.debug(`Session Resumed!`) | ||||||
|   gateway.client.emit('resume') |   gateway.client.emit('resume') | ||||||
|  |   gateway.client.emit('ready') | ||||||
| } | } | ||||||
|  | @ -5,7 +5,7 @@ import { | ||||||
|   DISCORD_API_VERSION |   DISCORD_API_VERSION | ||||||
| } from '../consts/urlsAndVersions.ts' | } from '../consts/urlsAndVersions.ts' | ||||||
| import { GatewayResponse } from '../types/gatewayResponse.ts' | import { GatewayResponse } from '../types/gatewayResponse.ts' | ||||||
| import { GatewayOpcodes, GatewayIntents, GatewayCloseCodes } from '../types/gatewayTypes.ts' | import { GatewayOpcodes, GatewayIntents, GatewayCloseCodes } from '../types/gateway.ts' | ||||||
| import { gatewayHandlers } from './handlers/index.ts' | import { gatewayHandlers } from './handlers/index.ts' | ||||||
| import { GATEWAY_BOT } from '../types/endpoint.ts' | import { GATEWAY_BOT } from '../types/endpoint.ts' | ||||||
| import { GatewayBotPayload } from "../types/gatewayBot.ts" | import { GatewayBotPayload } from "../types/gatewayBot.ts" | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import { Client } from "../models/client.ts"; | import { Client } from "../models/client.ts"; | ||||||
| import { Channel } from "../structures/channel.ts"; | import { Channel } from "../structures/channel.ts"; | ||||||
| import { User } from "../structures/user.ts"; | import { User } from "../structures/user.ts"; | ||||||
| import { ChannelPayload } from "../types/channelTypes.ts"; | import { ChannelPayload } from "../types/channel.ts"; | ||||||
| import { CHANNEL } from "../types/endpoint.ts"; | import { CHANNEL } from "../types/endpoint.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import { Client } from "../models/client.ts"; | import { Client } from "../models/client.ts"; | ||||||
| import { Emoji } from "../structures/emoji.ts"; | import { Emoji } from "../structures/emoji.ts"; | ||||||
| import { EmojiPayload } from "../types/emojiTypes.ts"; | import { EmojiPayload } from "../types/emoji.ts"; | ||||||
| import { CHANNEL } from "../types/endpoint.ts"; | import { CHANNEL } from "../types/endpoint.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import { Client } from "../models/client.ts"; | import { Client } from "../models/client.ts"; | ||||||
| import { Guild } from "../structures/guild.ts"; | import { Guild } from "../structures/guild.ts"; | ||||||
| import { GUILD } from "../types/endpoint.ts"; | import { GUILD } from "../types/endpoint.ts"; | ||||||
| import { GuildPayload } from "../types/guildTypes.ts"; | import { GuildPayload } from "../types/guild.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
| export class GuildManager extends BaseManager<GuildPayload, Guild> { | export class GuildManager extends BaseManager<GuildPayload, Guild> { | ||||||
|  |  | ||||||
|  | @ -2,9 +2,9 @@ import { Client } from "../models/client.ts"; | ||||||
| import { Message } from "../structures/message.ts"; | import { Message } from "../structures/message.ts"; | ||||||
| import { MessageMentions } from "../structures/MessageMentions.ts"; | import { MessageMentions } from "../structures/MessageMentions.ts"; | ||||||
| import { User } from "../structures/user.ts"; | import { User } from "../structures/user.ts"; | ||||||
| import { MessagePayload } from "../types/channelTypes.ts"; | import { MessagePayload } from "../types/channel.ts"; | ||||||
| import { CHANNEL_MESSAGE } from "../types/endpoint.ts"; | import { CHANNEL_MESSAGE } from "../types/endpoint.ts"; | ||||||
| import { UserPayload } from "../types/userTypes.ts"; | import { UserPayload } from "../types/user.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
| export class MessagesManager extends BaseManager<MessagePayload, Message> { | export class MessagesManager extends BaseManager<MessagePayload, Message> { | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ import { Guild } from "../structures/guild.ts"; | ||||||
| import { Role } from "../structures/role.ts"; | import { Role } from "../structures/role.ts"; | ||||||
| import { User } from "../structures/user.ts"; | import { User } from "../structures/user.ts"; | ||||||
| import { GUILD_ROLE } from "../types/endpoint.ts"; | import { GUILD_ROLE } from "../types/endpoint.ts"; | ||||||
| import { RolePayload } from "../types/roleTypes.ts"; | import { RolePayload } from "../types/role.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
| export class RolesManager extends BaseManager<RolePayload, Role> { | export class RolesManager extends BaseManager<RolePayload, Role> { | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| import { Client } from "../models/client.ts"; | import { Client } from "../models/client.ts"; | ||||||
| import { User } from "../structures/user.ts"; | import { User } from "../structures/user.ts"; | ||||||
| import { USER } from "../types/endpoint.ts"; | import { USER } from "../types/endpoint.ts"; | ||||||
| import { UserPayload } from "../types/userTypes.ts"; | import { UserPayload } from "../types/user.ts"; | ||||||
| import { BaseManager } from "./BaseManager.ts"; | import { BaseManager } from "./BaseManager.ts"; | ||||||
| 
 | 
 | ||||||
| export class UserManager extends BaseManager<UserPayload, User> { | export class UserManager extends BaseManager<UserPayload, User> { | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import cache from '../models/cache.ts' | import cache from '../models/cache.ts' | ||||||
| import { Client } from '../models/client.ts' | import { Client } from '../models/client.ts' | ||||||
| import { MessageOption, MessagePayload, TextChannelPayload } from '../types/channelTypes.ts' | import { MessageOption, MessagePayload, TextChannelPayload } from '../types/channel.ts' | ||||||
| import { CHANNEL_MESSAGE, CHANNEL_MESSAGES } from '../types/endpoint.ts' | import { CHANNEL_MESSAGE, CHANNEL_MESSAGES } from '../types/endpoint.ts' | ||||||
| import { Channel } from './channel.ts' | import { Channel } from './channel.ts' | ||||||
| import { Message } from './message.ts' | import { Message } from './message.ts' | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| import { Client } from '../models/client.ts' | import { Client } from '../models/client.ts' | ||||||
| import { GatewayIntents } from '../types/gatewayTypes.ts' | import { GatewayIntents } from '../types/gateway.ts' | ||||||
| import { TOKEN } from './config.ts' | import { TOKEN } from './config.ts' | ||||||
| import { Channel } from '../structures/channel.ts' | import { Channel } from '../structures/channel.ts' | ||||||
| import { GuildTextChannel } from '../structures/guildTextChannel.ts' | import { GuildTextChannel } from '../structures/guildTextChannel.ts' | ||||||
|  |  | ||||||
							
								
								
									
										396
									
								
								src/types/gatewayTypes.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										396
									
								
								src/types/gatewayTypes.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,396 @@ | ||||||
|  | // https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway
 | ||||||
|  | // https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events
 | ||||||
|  | import { EmojiPayload } from './emoji.ts' | ||||||
|  | import { MemberPayload } from './guild.ts' | ||||||
|  | import { ActivityPayload, PresenceUpdatePayload } from './presence.ts' | ||||||
|  | import { RolePayload } from './role.ts' | ||||||
|  | import { UserPayload } from './user.ts' | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Gateway OPcodes from Discord docs. | ||||||
|  |  */ | ||||||
|  | enum GatewayOpcodes { // 문서를 확인해본 결과 Opcode 5번은 비어있다. - UnderC -
 | ||||||
|  |   DISPATCH = 0, | ||||||
|  |   HEARTBEAT = 1, | ||||||
|  |   IDENTIFY = 2, | ||||||
|  |   PRESENCE_UPDATE = 3, | ||||||
|  |   VOICE_STATE_UPDATE = 4, | ||||||
|  |   RESUME = 6, | ||||||
|  |   RECONNECT = 7, | ||||||
|  |   REQUEST_GUILD_MEMBERS = 8, | ||||||
|  |   INVALID_SESSION = 9, | ||||||
|  |   HELLO = 10, | ||||||
|  |   HEARTBEAT_ACK = 11 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Gateway Close Codes from Discord docs. | ||||||
|  |  */ | ||||||
|  | enum GatewayCloseCodes { | ||||||
|  |   UNKNOWN_ERROR = 4000, | ||||||
|  |   UNKNOWN_OPCODE = 4001, | ||||||
|  |   DECODE_ERROR = 4002, | ||||||
|  |   NOT_AUTHENTICATED = 4003, | ||||||
|  |   AUTHENTICATION_FAILED = 4004, | ||||||
|  |   ALREADY_AUTHENTICATED = 4005, | ||||||
|  |   INVALID_SEQ = 4007, | ||||||
|  |   RATE_LIMITED = 4008, | ||||||
|  |   SESSION_TIMED_OUT = 4009, | ||||||
|  |   INVALID_SHARD = 4010, | ||||||
|  |   SHARDING_REQUIRED = 4011, | ||||||
|  |   INVALID_API_VERSION = 4012, | ||||||
|  |   INVALID_INTENTS = 4013, | ||||||
|  |   DISALLOWED_INTENTS = 4014 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | enum GatewayIntents { | ||||||
|  |   GUILDS = 1 << 0, | ||||||
|  |   GUILD_MEMBERS = 1 << 1, | ||||||
|  |   GUILD_BANS = 1 << 2, | ||||||
|  |   GUILD_EMOJIS = 1 << 3, | ||||||
|  |   GUILD_INTEGRATIONS = 1 << 4, | ||||||
|  |   GUILD_WEBHOOKS = 1 << 5, | ||||||
|  |   GUILD_INVITES = 1 << 6, | ||||||
|  |   GUILD_VOICE_STATES = 1 << 7, | ||||||
|  |   GUILD_PRESENCES = 1 << 8, | ||||||
|  |   GUILD_MESSAGES = 1 << 9, | ||||||
|  |   GUILD_MESSAGE_REACTIONS = 1 << 10, | ||||||
|  |   GUILD_MESSAGE_TYPING = 1 << 11, | ||||||
|  |   DIRECT_MESSAGES = 1 << 12, | ||||||
|  |   DIRECT_MESSAGE_REACTIONS = 1 << 13, | ||||||
|  |   DIRECT_MESSAGE_TYPING = 1 << 13 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | enum GatewayEvents { | ||||||
|  |   Ready = 'READY', | ||||||
|  |   Resumed = 'RESUMED', | ||||||
|  |   Reconnect = 'RECONNECT', | ||||||
|  |   Channel_Create = 'CHANNEL_CREATE', | ||||||
|  |   Channel_Update = 'CHANNEL_UPDATE', | ||||||
|  |   Channel_Delete = 'CHANNEL_DELETE', | ||||||
|  |   Channel_Pins_Update = 'CHANNEL_PINS_UPDATE', | ||||||
|  |   Guild_Create = 'GUILD_CREATE', | ||||||
|  |   Guild_Update = 'GUILD_UPDATE', | ||||||
|  |   Guild_Delete = 'GUILD_DELETE', | ||||||
|  |   Guild_Ban_Add = 'GUILD_BAN_ADD', | ||||||
|  |   Guild_Ban_Remove = 'GUILD_BAN_REMOVE', | ||||||
|  |   Guild_Emojis_Update = 'GUILD_EMOJIS_UPDATE', | ||||||
|  |   Guild_Integrations_Update = 'GUILD_INTEGRATIONS_UPDATE', | ||||||
|  |   Guild_Member_Add = 'GUILD_MEMBER_ADD', | ||||||
|  |   Guild_Member_Remove = 'GUILD_MEMBER_REMOVE', | ||||||
|  |   Guild_Member_Update = 'GUILD_MEMBER_UPDATE', | ||||||
|  |   Guild_Members_Chunk = 'GUILD_MEMBERS_CHUNK', | ||||||
|  |   Guild_Role_Create = 'GUILD_ROLE_CREATE', | ||||||
|  |   Guild_Role_Update = 'GUILD_ROLE_UPDATE', | ||||||
|  |   Guild_Role_Delete = 'GUILD_ROLE_DELETE', | ||||||
|  |   Invite_Create = 'INVITE_CREATE', | ||||||
|  |   Invite_Delete = 'INVITE_DELETE', | ||||||
|  |   Message_Create = 'MESSAGE_CREATE', | ||||||
|  |   Message_Update = 'MESSAGE_UPDATE', | ||||||
|  |   Message_Delete = 'MESSAGE_DELETE', | ||||||
|  |   Message_Delete_Bulk = 'MESSAGE_DELETE_BULK', | ||||||
|  |   Message_Reaction_Add = 'MESSAGE_REACTION_ADD', | ||||||
|  |   Message_Reaction_Remove = 'MESSAGE_REACTION_REMOVE', | ||||||
|  |   Message_Reaction_Remove_All = 'MESSAGE_REACTION_REMOVE_ALL', | ||||||
|  |   Message_Reaction_Remove_Emoji = 'MESSAGE_REACTION_REMOVE_EMOJI', | ||||||
|  |   Presence_Update = 'PRESENCE_UPDATE', | ||||||
|  |   Typing_Start = 'TYPING_START', | ||||||
|  |   User_Update = 'USER_UPDATE', | ||||||
|  |   Voice_Server_Update = 'VOICE_SERVER_UPDATE', | ||||||
|  |   Webhooks_Update = 'WEBHOOKS_UPDATE' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface IdentityPayload { | ||||||
|  |   token: string | ||||||
|  |   properties: IdentityConnection | ||||||
|  |   compress?: boolean | ||||||
|  |   large_threshold?: number | ||||||
|  |   shard?: number[] | ||||||
|  |   presence?: UpdateStatus | ||||||
|  |   guildSubscriptions?: boolean | ||||||
|  |   intents: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | enum UpdateStatus { | ||||||
|  |   online = 'online', | ||||||
|  |   dnd = 'dnd', | ||||||
|  |   afk = 'idle', | ||||||
|  |   invisible = 'invisible', | ||||||
|  |   offline = 'offline' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface IdentityConnection { | ||||||
|  |   $os: 'darwin' | 'windows' | 'linux' | 'custom os' | ||||||
|  |   $browser: 'discord.deno' | ||||||
|  |   $device: 'discord.deno' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface Resume { | ||||||
|  |   token: string | ||||||
|  |   session_id: string | ||||||
|  |   seq: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildRequestMembers { | ||||||
|  |   guild_id: string | string[] | ||||||
|  |   query?: string | ||||||
|  |   limit: number | ||||||
|  |   presences?: boolean | ||||||
|  |   user_ids?: string | string[] | ||||||
|  |   nonce?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GatewayVoiceStateUpdate { | ||||||
|  |   guild_id: string | ||||||
|  |   channel_id: string | ||||||
|  |   self_mute: boolean | ||||||
|  |   self_deaf: boolean | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GatewayStatusUpdate { | ||||||
|  |   since: number | undefined | ||||||
|  |   activities: ActivityPayload[] | ||||||
|  |   status: string | ||||||
|  |   afk: boolean | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface Hello { | ||||||
|  |   heartbeat_interval: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ReadyEvent { | ||||||
|  |   v: number | ||||||
|  |   user: UserPayload | ||||||
|  |   privateChannels: [] | ||||||
|  |   guilds: [] | ||||||
|  |   session_id: string | ||||||
|  |   shard?: number[] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ChannelPinsUpdate { | ||||||
|  |   guild_id?: string | ||||||
|  |   channel_id: string | ||||||
|  |   last_pin_timestamp?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildBanAdd { | ||||||
|  |   guild_id: string | ||||||
|  |   user: UserPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildBanRemove { | ||||||
|  |   guild_id: string | ||||||
|  |   user: UserPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildEmojiUpdate { | ||||||
|  |   guild_id: string | ||||||
|  |   emojis: [] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildIntegrationsUpdate { | ||||||
|  |   guild_id: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildMemberAddExtra { | ||||||
|  |   guild_id: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildMemberRemove { | ||||||
|  |   guild_id: string | ||||||
|  |   user: UserPayload | ||||||
|  | } | ||||||
|  | interface GuildMemberUpdate { | ||||||
|  |   guild_id: string | ||||||
|  |   roles: string[] | ||||||
|  |   user: UserPayload | ||||||
|  |   nick?: string | undefined | ||||||
|  |   joined_at: string | ||||||
|  |   premium_since?: string | undefined | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildMemberChunk { | ||||||
|  |   guild_id: string | ||||||
|  |   members: MemberPayload[] | ||||||
|  |   chunk_index: number | ||||||
|  |   chunk_count: number | ||||||
|  |   not_found?: [] | ||||||
|  |   presences?: PresenceUpdatePayload[] | ||||||
|  |   nonce?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildRoleCreate { | ||||||
|  |   guild_id: string | ||||||
|  |   role: RolePayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildRoleUpdate { | ||||||
|  |   guild_id: string | ||||||
|  |   role: RolePayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface GuildRoleDelete { | ||||||
|  |   guild_id: string | ||||||
|  |   role_id: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface InviteCreate { | ||||||
|  |   channel_id: string | ||||||
|  |   code: string | ||||||
|  |   created_at: string | ||||||
|  |   guild_id?: string | ||||||
|  |   inviter?: UserPayload | ||||||
|  |   max_age: number | ||||||
|  |   max_uses: number | ||||||
|  |   target_user?: UserPayload | ||||||
|  |   target_user_type?: number | ||||||
|  |   temporary: boolean | ||||||
|  |   uses: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface InviteDelete { | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   code: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageDelete { | ||||||
|  |   id: string | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageDeleteBulk { | ||||||
|  |   ids: string[] | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageReactionAdd { | ||||||
|  |   user_id: string | ||||||
|  |   channel_id: string | ||||||
|  |   message_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   emoji: EmojiPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageReactionRemove { | ||||||
|  |   user_id: string | ||||||
|  |   channel_id: string | ||||||
|  |   message_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   emoji: EmojiPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageReactionRemoveAll { | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   message_id: string | ||||||
|  |   emoji: EmojiPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface MessageReactionRemove { | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   message_id: string | ||||||
|  |   emoji: EmojiPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface PresenceUpdate { | ||||||
|  |   user: UserPayload | ||||||
|  |   guild_id: string | ||||||
|  |   status: string | ||||||
|  |   activities: ActivityPayload[] | ||||||
|  |   client_status: UpdateStatus[] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface CilentStatus { | ||||||
|  |   desktop?: string | ||||||
|  |   moblie?: string | ||||||
|  |   web?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface Activity { | ||||||
|  |   name: string | ||||||
|  |   type: number | ||||||
|  |   url?: string | undefined | ||||||
|  |   created_at: number | ||||||
|  |   timestamps?: string | ||||||
|  |   application_id: string | ||||||
|  |   details?: string | undefined | ||||||
|  |   state?: string | undefined | ||||||
|  |   emoji?: EmojiPayload | undefined | ||||||
|  |   party?: ActivityParty | ||||||
|  |   assets?: ActivityAssets | ||||||
|  |   secrets?: ActivitySecrets | ||||||
|  |   instance?: boolean | ||||||
|  |   flags?: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | enum ActivityTypes { | ||||||
|  |   GAME = 0, | ||||||
|  |   STREAMING = 1, | ||||||
|  |   LISTENING = 2, | ||||||
|  |   CUSTOM = 4, | ||||||
|  |   COMPETING = 5 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ActivityTimestamps { | ||||||
|  |   start?: number | ||||||
|  |   end?: number | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ActivityEmoji { | ||||||
|  |   name: string | ||||||
|  |   id?: string | ||||||
|  |   animated?: boolean | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ActivityParty { | ||||||
|  |   id?: string | ||||||
|  |   size?: number[] | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ActivityAssets { | ||||||
|  |   large_image?: string | ||||||
|  |   large_text?: string | ||||||
|  |   small_image?: string | ||||||
|  |   small_text?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface ActivitySecrets { | ||||||
|  |   join?: string | ||||||
|  |   spectate?: string | ||||||
|  |   match?: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | enum ActivityFlags { | ||||||
|  |   INSTANCE = 1 << 0, | ||||||
|  |   JOIN = 1 << 1, | ||||||
|  |   SPECTATE = 1 << 2, | ||||||
|  |   JOIN_REQUEST = 1 << 3, | ||||||
|  |   SYNC = 1 << 4, | ||||||
|  |   PLAY = 1 << 5 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface TypeStart { | ||||||
|  |   channel_id: string | ||||||
|  |   guild_id?: string | ||||||
|  |   user_id: string | ||||||
|  |   timestamp: number | ||||||
|  |   member?: MemberPayload | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface VoiceServerUpdate { | ||||||
|  |   token: string | ||||||
|  |   guild_id: string | ||||||
|  |   endpoint: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | interface WebhooksUpdate { | ||||||
|  |   guild_id: string | ||||||
|  |   channel_id: string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // https://discord.com/developers/docs/topics/gateway#typing-start-typing-start-event-fields
 | ||||||
|  | export { GatewayCloseCodes, GatewayOpcodes, GatewayIntents, GatewayEvents } | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| // https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice
 | // https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice
 | ||||||
| import { MemberPayload } from './guildTypes.ts' | import { MemberPayload } from './guild.ts' | ||||||
| 
 | 
 | ||||||
| enum VoiceOpcodes { // VoiceOpcodes 추가 - UnderC -
 | enum VoiceOpcodes { // VoiceOpcodes 추가 - UnderC -
 | ||||||
|   IDENTIFY = 0, |   IDENTIFY = 0, | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import { UserPayload } from './userTypes.ts' | import { UserPayload } from './user.ts' | ||||||
| 
 | 
 | ||||||
| export interface WebhookPayload { | export interface WebhookPayload { | ||||||
|   id: string |   id: string | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue