diff --git a/src/chat/_chatwidget.py b/src/chat/_chatwidget.py index 17cb522fe..f0d68d4ba 100644 --- a/src/chat/_chatwidget.py +++ b/src/chat/_chatwidget.py @@ -91,7 +91,9 @@ def __init__(self, client, *args, **kwargs): def disconnect(self): self.canDisconnect = True self.irc_disconnect() - self._notifier = None + if self._notifier: + self._notifier.activated.disconnect(self.once) + self._notifier = None @QtCore.pyqtSlot(object) diff --git a/src/client/_clientwindow.py b/src/client/_clientwindow.py index dc1ca4f5e..e1a58e042 100644 --- a/src/client/_clientwindow.py +++ b/src/client/_clientwindow.py @@ -990,7 +990,7 @@ def disconnectedFromServer(self): self.urls = {} self.usersUpdated.emit(oldplayers) - if self.state != ClientState.DISCONNECTED: + if self.state != ClientState.DISCONNECTED and self.state != ClientState.SHUTDOWN: self.state = ClientState.DROPPED if self._connection_attempts < 2: logger.info("Reconnecting immediately") @@ -1118,6 +1118,8 @@ def handle_session(self, message): @QtCore.pyqtSlot() def perform_login(self): self.uniqueId = util.uniqueID(self.login, self.session) + if not self.uniqueId: + return False self.send(dict(command="hello", login=self.login, password=self.password, diff --git a/src/util/__init__.py b/src/util/__init__.py index af6080e25..47d7c025f 100644 --- a/src/util/__init__.py +++ b/src/util/__init__.py @@ -585,8 +585,10 @@ def uniqueID(user, session): return baseString except: - logger.error("UniqueID Failure", exc_info=sys.exc_info()) - return None + QtGui.QMessageBox.warning(None, "C++ 2010 Runtime Missing", + "You are missing the Microsoft Visual C++ 2010 Runtime.

Get it from here: https://www.microsoft.com/en-us/download/details.aspx?id=5555") + logger.warning("UniqueID Failure, user warned", exc_info=sys.exc_info()) + QtGui.QApplication.quit() import datetime