If user presses unpause when not ready and others not ready, set to ready rather than unpausing
This commit is contained in:
parent
06a8d5dddf
commit
24e9afb2b6
@ -162,12 +162,19 @@ class SyncplayClient(object):
|
|||||||
pauseChange, seeked = self._determinePlayerStateChange(paused, position)
|
pauseChange, seeked = self._determinePlayerStateChange(paused, position)
|
||||||
self._playerPosition = position
|
self._playerPosition = position
|
||||||
self._playerPaused = paused
|
self._playerPaused = paused
|
||||||
if pauseChange and utils.meetsMinVersion(self.serverVersion, constants.USER_READY_MIN_VERSION) and self.userlist.currentUser.canControl():
|
if pauseChange and utils.meetsMinVersion(self.serverVersion, constants.USER_READY_MIN_VERSION):
|
||||||
lastPausedDiff = time.time() - self.lastPausedOnLeaveTime if self.lastPausedOnLeaveTime else None
|
if not paused and not self.userlist.currentUser.isReady() and not self.userlist.areAllOtherUsersInRoomReady():
|
||||||
if lastPausedDiff is not None and lastPausedDiff < constants.LAST_PAUSED_DIFF_THRESHOLD:
|
paused = True
|
||||||
self.lastPausedOnLeaveTime = None
|
self._player.setPaused(paused)
|
||||||
|
self._playerPaused = paused
|
||||||
|
self.changeReadyState(True, manuallyInitiated=True)
|
||||||
|
pauseChange = False
|
||||||
else:
|
else:
|
||||||
self.changeReadyState(not self.getPlayerPaused(), manuallyInitiated=False)
|
lastPausedDiff = time.time() - self.lastPausedOnLeaveTime if self.lastPausedOnLeaveTime else None
|
||||||
|
if lastPausedDiff is not None and lastPausedDiff < constants.LAST_PAUSED_DIFF_THRESHOLD:
|
||||||
|
self.lastPausedOnLeaveTime = None
|
||||||
|
else:
|
||||||
|
self.changeReadyState(not self.getPlayerPaused(), manuallyInitiated=False)
|
||||||
if self._lastGlobalUpdate:
|
if self._lastGlobalUpdate:
|
||||||
self._lastPlayerUpdate = time.time()
|
self._lastPlayerUpdate = time.time()
|
||||||
if (pauseChange or seeked) and self._protocol:
|
if (pauseChange or seeked) and self._protocol:
|
||||||
@ -882,6 +889,12 @@ class SyncplayUserlist(object):
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def areAllOtherUsersInRoomReady(self):
|
||||||
|
for user in self._users.itervalues():
|
||||||
|
if user.room == self.currentUser.room and user.isReady() == False:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def readyUserCount(self):
|
def readyUserCount(self):
|
||||||
readyCount = 0
|
readyCount = 0
|
||||||
if self.currentUser.isReady():
|
if self.currentUser.isReady():
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user