pep.py/events/stopSpectatingEvent.py
2016-07-31 11:11:37 +02:00

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()