653303831b
BATs with Donor have bright yellow username in chat General performance improvements Code cleaning Multiplayer improvements and fixes Fixed some spectator bugs
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
from objects import glob
|
|
from constants import slotStatuses
|
|
from constants import serverPackets
|
|
|
|
def handle(userToken, _):
|
|
|
|
# Get match ID and match object
|
|
matchID = userToken.matchID
|
|
|
|
# Make sure we are in a match
|
|
if matchID == -1:
|
|
return
|
|
|
|
# Make sure the match exists
|
|
if matchID not in glob.matches.matches:
|
|
return
|
|
|
|
# The match exists, get object
|
|
match = glob.matches.matches[matchID]
|
|
|
|
# Host check
|
|
if userToken.userID != match.hostUserID:
|
|
return
|
|
|
|
# Make sure we have enough players
|
|
if (match.countUsers() < 2 or match.checkTeams() == False):
|
|
return
|
|
|
|
# Change inProgress value
|
|
match.inProgress = True
|
|
|
|
# Set playing to ready players and set load, skip and complete to False
|
|
for i in range(0,16):
|
|
if (match.slots[i].status & slotStatuses.ready) > 0:
|
|
match.slots[i].status = slotStatuses.playing
|
|
match.slots[i].loaded = False
|
|
match.slots[i].skip = False
|
|
match.slots[i].complete = False
|
|
|
|
# Send match start packet
|
|
for i in range(0,16):
|
|
if (match.slots[i].status & slotStatuses.playing) > 0 and match.slots[i].userID != -1:
|
|
token = glob.tokens.getTokenFromUserID(match.slots[i].userID)
|
|
if token != None:
|
|
token.enqueue(serverPackets.matchStart(matchID))
|
|
|
|
# Send updates
|
|
match.sendUpdate()
|