pep.py/events/stopSpectatingEvent.py

38 lines
1.2 KiB
Python
Raw Normal View History

2016-05-18 17:12:46 +00:00
from objects import glob
from constants import serverPackets
from constants import exceptions
from helpers import logHelper as log
from helpers import chatHelper as chat
2016-04-19 17:40:59 +00:00
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)
# Part #spectator channel
chat.partChannel(token=userToken, channel="#spect_{}".format(target))
2016-04-19 17:40:59 +00:00
# Send the spectator left packet to host
targetToken.enqueue(serverPackets.removeSpectator(userID))
2016-06-08 15:26:31 +00:00
for c in targetToken.spectators:
spec = glob.tokens.getTokenFromUserID(c)
spec.enqueue(serverPackets.fellowSpectatorLeft(userID))
#targetToken.enqueue(serverPackets.fellowSpectatorLeft(userID))
2016-04-19 17:40:59 +00:00
# Console output
log.info("{} are no longer spectating {}".format(username, target))
2016-04-19 17:40:59 +00:00
except exceptions.tokenNotFoundException:
log.warning("Spectator stop: token not found")
2016-04-19 17:40:59 +00:00
finally:
# Set our spectating user to 0
userToken.stopSpectating()