35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from objects import glob
|
|
from constants import serverPackets
|
|
from constants import exceptions
|
|
from helpers import logHelper as log
|
|
|
|
def handle(userToken, _):
|
|
try:
|
|
# get user token data
|
|
userID = userToken.userID
|
|
username = userToken.username
|
|
|
|
# Remove our userID from host's spectators
|
|
target = userToken.spectating
|
|
targetToken = glob.tokens.getTokenFromUserID(target)
|
|
if targetToken == None:
|
|
raise exceptions.tokenNotFoundException
|
|
targetToken.removeSpectator(userID)
|
|
|
|
# Send the spectator left packet to host
|
|
targetToken.enqueue(serverPackets.removeSpectator(userID))
|
|
for c in targetToken.spectators:
|
|
spec = glob.tokens.getTokenFromUserID(c)
|
|
spec.enqueue(serverPackets.fellowSpectatorLeft(userID))
|
|
|
|
targetToken.enqueue(serverPackets.fellowSpectatorLeft(userID))
|
|
|
|
# Console output
|
|
# TODO: Move messages in stop spectating
|
|
log.info("{} are no longer spectating whoever they were spectating".format(username))
|
|
except exceptions.tokenNotFoundException:
|
|
log.warning("Spectator stop: token not found")
|
|
finally:
|
|
# Set our spectating user to 0
|
|
userToken.stopSpectating()
|