diff --git a/TGServerService/Discord.cs b/TGServerService/Discord.cs index 5c0c6f4bbe..076d375a84 100644 --- a/TGServerService/Discord.cs +++ b/TGServerService/Discord.cs @@ -163,13 +163,25 @@ namespace TGServerService //noop } + void DisconnectAndDispose() + { + try + { + client.Disconnect().Wait(); + } + catch (Exception e) { + TGServerService.WriteLog("Discord failed DnD: " + e.ToString()); + } + client.Dispose(); + } + public string SetProviderInfo(TGChatSetupInfo info) { try { lock (DiscordLock) { - client.Dispose(); + DisconnectAndDispose(); Init(info); if (Properties.Settings.Default.ChatEnabled) Connect(); @@ -191,7 +203,7 @@ namespace TGServerService { if (disposing) { - client.Dispose(); + DisconnectAndDispose(); // TODO: dispose managed state (managed objects). }