diff --git a/syncplay/__init__.py b/syncplay/__init__.py index ef963d5..a1fa3eb 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,3 +1,3 @@ -version = '1.2.9' -milestone = 'Pineapple, Pulverize and Destroy!' +version = '1.3.0' +milestone = 'Akki' projectURL = 'http://syncplay.pl/' diff --git a/syncplay/messages.py b/syncplay/messages.py index 5632461..8efbdb3 100755 --- a/syncplay/messages.py +++ b/syncplay/messages.py @@ -270,7 +270,7 @@ en = { "password-required-server-error" : "Password required", "wrong-password-server-error" : "Wrong password supplied", "hello-server-error" : "Not enough Hello arguments", - "version-mismatch-server-error" : "Mismatch between versions of client and server" + "version-mismatch-server-error" : "Mismatch between versions of client and server, please update your client or server software. Current client version is {}, while the server version: {}" } diff --git a/syncplay/protocols.py b/syncplay/protocols.py index ce18661..2c0b34d 100644 --- a/syncplay/protocols.py +++ b/syncplay/protocols.py @@ -293,14 +293,16 @@ class SyncServerProtocol(JSONCommandProtocol): username, serverPassword, roomName, version = self._extractHelloArguments(hello) if not username or not roomName or not version: self.dropWithError(getMessage("hello-server-error")) + return elif version.split(".")[0:2] != syncplay.version.split(".")[0:2]: - self.dropWithError(getMessage("version-mismatch-server-error")) + self.dropWithError(getMessage("version-mismatch-server-error").format(version, syncplay.version)) + return else: if not self._checkPassword(serverPassword): return self._factory.addWatcher(self, username, roomName) self._logged = True - self.sendHello(version) + self.sendHello(syncplay.version) def setWatcher(self, watcher): self._watcher = watcher diff --git a/syncplay/server.py b/syncplay/server.py index d87a48e..8c0d2e3 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -78,7 +78,7 @@ class SyncFactory(Factory): self._roomManager.broadcast(watcher, l) def removeWatcher(self, watcher): - if watcher.getRoom(): + if watcher and watcher.getRoom(): self.sendLeftMessage(watcher) self._roomManager.removeWatcher(watcher)