diff --git a/src/bot.ts b/src/bot.ts index 733976de7..32e98863d 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -2,6 +2,7 @@ import { getGatewayBot } from "./api/handlers/gateway.ts"; import { BotConfig, DiscordBotGatewayData, + DiscordIdentify, EventHandlers, Intents, } from "./types/mod.ts"; @@ -17,7 +18,7 @@ export let eventHandlers: EventHandlers = {}; export let botGatewayData: DiscordBotGatewayData; export let proxyWSURL = `wss://gateway.discord.gg`; -export const identifyPayload: IdentifyPayload = { +export const identifyPayload: DiscordIdentify = { token: "", compress: true, properties: { @@ -29,18 +30,6 @@ export const identifyPayload: IdentifyPayload = { shard: [0, 0], }; -export interface IdentifyPayload { - token: string; - compress: boolean; - properties: { - $os: string; - $browser: string; - $device: string; - }; - intents: number; - shard: [number, number]; -} - export async function startBot(config: BotConfig) { if (config.eventHandlers) eventHandlers = config.eventHandlers; authorization = `Bot ${config.token}`; diff --git a/src/ws/shard.ts b/src/ws/shard.ts index 91e81068f..9f41b45bc 100644 --- a/src/ws/shard.ts +++ b/src/ws/shard.ts @@ -1,12 +1,8 @@ -import { - botGatewayData, - eventHandlers, - IdentifyPayload, - proxyWSURL, -} from "../bot.ts"; +import { botGatewayData, eventHandlers, proxyWSURL } from "../bot.ts"; import { DiscordBotGatewayData, DiscordHeartbeatPayload, + DiscordIdentify, DiscordPayload, FetchMembersOptions, GatewayOpcode, @@ -41,7 +37,7 @@ interface RequestMemberQueuedRequest { export function createShard( data: DiscordBotGatewayData, - identifyPayload: IdentifyPayload, + identifyPayload: DiscordIdentify, resuming = false, shardID = 0, ) { @@ -174,7 +170,7 @@ export function createShard( }; } -function identify(shard: BasicShard, payload: IdentifyPayload) { +function identify(shard: BasicShard, payload: DiscordIdentify) { eventHandlers.debug?.( { type: "gatewayIdentify", @@ -190,7 +186,7 @@ function identify(shard: BasicShard, payload: IdentifyPayload) { }, shard.id); } -function resume(shard: BasicShard, payload: IdentifyPayload) { +function resume(shard: BasicShard, payload: DiscordIdentify) { sendWS({ op: GatewayOpcode.Resume, d: { @@ -204,7 +200,7 @@ function resume(shard: BasicShard, payload: IdentifyPayload) { async function heartbeat( shard: BasicShard, interval: number, - payload: IdentifyPayload, + payload: DiscordIdentify, data: DiscordBotGatewayData, ) { // We lost socket connection between heartbeats, resume connection @@ -257,7 +253,7 @@ async function heartbeat( async function resumeConnection( data: DiscordBotGatewayData, - payload: IdentifyPayload, + payload: DiscordIdentify, shardID: number, ) { const shard = basicShards.get(shardID); diff --git a/src/ws/shard_manager.ts b/src/ws/shard_manager.ts index 019bd0229..b43a8eaa5 100644 --- a/src/ws/shard_manager.ts +++ b/src/ws/shard_manager.ts @@ -1,9 +1,10 @@ import { controllers } from "../api/controllers/mod.ts"; import { Guild } from "../api/structures/guild.ts"; import { Member } from "../api/structures/mod.ts"; -import { eventHandlers, IdentifyPayload } from "../bot.ts"; +import { eventHandlers } from "../bot.ts"; import { DiscordBotGatewayData, + DiscordIdentify, DiscordPayload, FetchMembersOptions, GatewayOpcode, @@ -26,7 +27,7 @@ export function allowNextShard(enabled = true) { export async function spawnShards( data: DiscordBotGatewayData, - payload: IdentifyPayload, + payload: DiscordIdentify, shardID: number, lastShardID: number, skipChecks?: number,