Skip to content

Commit

Permalink
Discord: Keep track of session ID
Browse files Browse the repository at this point in the history
  • Loading branch information
UnknownShadow200 committed Jun 26, 2021
1 parent 325006d commit 2787621
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions MCGalaxy/Modules/Relay/Discord/DiscordWebsocket.cs
Expand Up @@ -51,7 +51,7 @@ public sealed class DiscordWebsocket : ClientWebSocket {

readonly object sendLock = new object();
SchedulerTask heartbeat;
string lastSequence;
string lastSequence, sessionID;
TcpClient client;
SslStream stream;

Expand Down Expand Up @@ -106,7 +106,7 @@ public sealed class DiscordWebsocket : ClientWebSocket {
Logger.Log(LogType.Warning, "Discord relay: Invalid bot token provided - unable to connect");
CanReconnect = false;
}
Logger.Log(LogType.SystemActivity, "Discord relay bot closing: " + reason);
Close();
}
Expand All @@ -133,8 +133,14 @@ public sealed class DiscordWebsocket : ClientWebSocket {
}

void DispatchPacket(int opcode, JsonObject obj) {
if (opcode == OPCODE_DISPATCH) HandleDispatch(obj);
if (opcode == OPCODE_HELLO) HandleHello(obj);
if (opcode == OPCODE_DISPATCH) {
HandleDispatch(obj);
} else if (opcode == OPCODE_HELLO) {
HandleHello(obj);
} else if (opcode == OPCODE_INVALID_SESSION) {
// session no longer valid for whatever reason
sessionID = null;
}
}


Expand All @@ -159,6 +165,7 @@ public sealed class DiscordWebsocket : ClientWebSocket {

if (eventName == "READY") {
data = (JsonObject)obj["d"];
HandleReady(data);
OnReady(data);
} else if (eventName == "MESSAGE_CREATE") {
data = (JsonObject)obj["d"];
Expand All @@ -169,6 +176,12 @@ public sealed class DiscordWebsocket : ClientWebSocket {
}
}

void HandleReady(JsonObject data) {
object session;
if (data.TryGetValue("session_id", out session))
sessionID = (string)session;
}


public void SendMessage(int opcode, JsonObject data) {
JsonObject obj = new JsonObject()
Expand Down

0 comments on commit 2787621

Please sign in to comment.