Added a Websocket disconnection event to Shuffle that rebuilds the Shuffle connection if it's forcibly disconnected. This seems to have resolved issues with the bot disconnecting from Shuffle and never reconnecting.

This commit is contained in:
barelyprofessional
2024-06-23 13:26:30 +08:00
parent ff2a4c0e2e
commit 4aef087f3b
2 changed files with 24 additions and 7 deletions

View File

@@ -27,7 +27,7 @@ public class KickBot
private bool _initialStartCooldown = true;
private readonly CancellationToken _cancellationToken = new();
private readonly Twitch _twitch;
private readonly Shuffle _shuffle;
private Shuffle _shuffle;
private bool _isBmjLive = false;
private bool _isBmjLiveSynced = false;
@@ -94,16 +94,30 @@ public class KickBot
_logger.Debug("Ignoring Twitch client as TwitchChannels is not defined");
}
_shuffle = new Shuffle(_config.Proxy, _cancellationToken);
_shuffle.OnLatestBetUpdated += ShuffleOnOnLatestBetUpdated;
_shuffle.StartWsClient().Wait(_cancellationToken);
BuildShuffle();
_logger.Debug("Blocking the main thread");
var exitEvent = new ManualResetEvent(false);
exitEvent.WaitOne();
}
private void ShuffleOnOnLatestBetUpdated(object sender, ShuffleLatestBetModel bet)
private void BuildShuffle()
{
_shuffle = new Shuffle(_config.Proxy, _cancellationToken);
_shuffle.OnLatestBetUpdated += ShuffleOnLatestBetUpdated;
_shuffle.OnWsDisconnection += ShuffleOnWsDisconnection;
_shuffle.StartWsClient().Wait(_cancellationToken);
}
private void ShuffleOnWsDisconnection(object sender, DisconnectionInfo e)
{
if (e.Type == DisconnectionType.ByServer)
{
BuildShuffle();
}
}
private void ShuffleOnLatestBetUpdated(object sender, ShuffleLatestBetModel bet)
{
_logger.Debug("Shuffle bet has arrived");
if (bet.Username != "TheBossmanJack")