/// <summary> /// Setup a heartbeat for this bot with the given interval /// </summary> /// <param name="interval"></param> internal void SetupHeartbeat(float interval) { if (_timer != null) { _logger.Debug($"{nameof(HeartbeatHandler)}.{nameof(SetupHeartbeat)} Previous heartbeat timer exists."); DestroyHeartbeat(); } HeartbeatAcknowledged = true; _interval = interval; _initial = true; _timer = new Timer(_interval * Random.Range(0f, 1f)); _timer.Elapsed += HeartbeatElapsed; _timer.Start(); _logger.Debug($"{nameof(HeartbeatHandler)}.{nameof(SetupHeartbeat)} Creating heartbeat with interval {interval.ToString()}ms."); _client.CallHook(DiscordExtHooks.OnDiscordSetupHeartbeat, interval); }