private void HELLO(dynamic data) { CarrotcordLogger.LogServer(CarrotcordLogger.LogSource.WEBSOCKET, "[HELLO]"); heartbeat_interval = Convert.ToInt32(data.d.heartbeat_interval); CarrotcordLogger.log(CarrotcordLogger.LogSource.BOT, $"Heartbeat interval set to {heartbeat_interval}."); if (timer == null || bootup == false || ConnectionStatus == Connection.RESUMING) { timer = new Timer(heartbeat_interval); timer.AutoReset = true; timer.Elapsed += Timer_Elapsed; timer.Start(); CarrotcordLogger.log(CarrotcordLogger.LogSource.WEBSOCKET, "HEARTBEAT"); socket.SendAsync($"{{\"op\":{OPCodes.HEARTBEAT}, \"d\": null}}", new Action <bool>(completed => { helloHeartbeat = true; })); } }
private void handleData(dynamic data) { string t = Convert.ToString(data.t); if (data.code != null && data.code != "") { var code = Convert.ToInt32(data.code); CarrotcordLogger.logBork($"Error Code: {code}, {(ErrorCode)code}"); return; } if (t != "null" && t != "") { CarrotcordLogger.LogServer(CarrotcordLogger.LogSource.EVENT, t); switch (t) { case "READY": READY(data); break; case "MESSAGE_CREATE": MESSAGE_CREATED(data); break; case "MESSAGE_DELETE": MESSAGE_DELETED(data); break; case "GUILD_CREATE": GUILD_CREATE(data); break; } } if (data.s != null && Convert.ToInt32(data.s) != null) { //session_id = Convert.ToInt32(data.s); sequence = Convert.ToInt32(data.s); } if (Convert.ToString(data.op) != null) { //CarrotcordLogger.log(CarrotcordLogger.LogSource.WEBSOCKET, "OPCODE " + Convert.ToString(data.op)); } switch (Convert.ToString(data.op)) { case "9": INVALID_SESSIONS_EVENT(data); CarrotcordLogger.logBork("BIG BORK OPCODE 9"); break; case "10": HELLO(data); break; case "11": CarrotcordLogger.LogServer(CarrotcordLogger.LogSource.WEBSOCKET, "<- HEARTBEAT RECEIVED"); if (helloHeartbeat) { HELLO_AFTER_HEARTBEAT(); } break; } }