diff --git a/syncplay/protocols.py b/syncplay/protocols.py index 05425b8..ddba3f0 100644 --- a/syncplay/protocols.py +++ b/syncplay/protocols.py @@ -326,6 +326,9 @@ class SyncServerProtocol(JSONCommandProtocol): def meetsMinVersion(self, version): return self._version >= version + def getVersion(self): + return self._version + def _extractHelloArguments(self, hello): roomName = None username = hello["username"] if hello.has_key("username") else None @@ -357,9 +360,9 @@ class SyncServerProtocol(JSONCommandProtocol): else: if not self._checkPassword(serverPassword): return + self._version = version self._factory.addWatcher(self, username, roomName) self._logged = True - self._version = version self.sendHello(version) def handleChat(self,chatMessage): diff --git a/syncplay/server.py b/syncplay/server.py index f5ecc5e..4bf0e9d 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -106,7 +106,7 @@ class SyncFactory(Factory): self._roomManager.broadcast(watcher, l) def sendJoinMessage(self, watcher): - l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"joined": True}) if w != watcher else None + l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"joined": True, "version": watcher.getVersion()}) if w != watcher else None self._roomManager.broadcast(watcher, l) self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), watcher.isReady(), False)) @@ -417,6 +417,9 @@ class Watcher(object): def getName(self): return self._name + def getVersion(self): + return self._connector.getVersion() + def getFile(self): return self._file