From 52c23514120ad84f1ecb728e24133fdcadd81df7 Mon Sep 17 00:00:00 2001 From: TriForMine Date: Sat, 8 Oct 2022 19:09:54 +0200 Subject: [PATCH] Parse Gateway Identify and Resume Urls (#2502) * parse gateway and resume Urls #2475 * fix params * deno fmt * convert version to string --- gateway/shard/connect.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gateway/shard/connect.ts b/gateway/shard/connect.ts index 6bb729f94..a5bdf81a6 100644 --- a/gateway/shard/connect.ts +++ b/gateway/shard/connect.ts @@ -8,12 +8,14 @@ export async function connect(shard: Shard): Promise { } shard.events.connecting?.(shard); - let url = shard.gatewayConfig.url; + let url = new URL(shard.gatewayConfig.url); // If not connecting to a proxy but directly to discord need to handle resuming - if (url === "wss://gateway.discord.gg") { - url = `${ - shard.state === ShardState.Resuming ? shard.resumeGatewayUrl : shard.gatewayConfig.url - }/?v=${shard.gatewayConfig.version}&encoding=json`; + if (url.origin === "wss://gateway.discord.gg") { + if (shard.state === ShardState.Resuming) { + url = new URL(shard.resumeGatewayUrl); + } + url.searchParams.set("v", shard.gatewayConfig.version.toString()); + url.searchParams.set("encoding", "json"); } const socket = new WebSocket(url);