Add !mp abort, fix match not being set as in progress when starting it
This commit is contained in:
parent
3653447761
commit
5adc7f4261
|
@ -936,6 +936,11 @@ def multiplayer(fro, chan, message):
|
||||||
_match.sendUpdates()
|
_match.sendUpdates()
|
||||||
return "Match settings have been updated!"
|
return "Match settings have been updated!"
|
||||||
|
|
||||||
|
def mpAbort():
|
||||||
|
_match = glob.matches.matches[getMatchIDFromChannel(chan)]
|
||||||
|
_match.abort()
|
||||||
|
return "Match aborted!"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subcommands = {
|
subcommands = {
|
||||||
"make": mpMake,
|
"make": mpMake,
|
||||||
|
@ -951,6 +956,7 @@ def multiplayer(fro, chan, message):
|
||||||
"invite": mpInvite,
|
"invite": mpInvite,
|
||||||
"map": mpMap,
|
"map": mpMap,
|
||||||
"set": mpSet,
|
"set": mpSet,
|
||||||
|
"abort": mpAbort,
|
||||||
}
|
}
|
||||||
requestedSubcommand = message[0].lower().strip()
|
requestedSubcommand = message[0].lower().strip()
|
||||||
if requestedSubcommand not in subcommands:
|
if requestedSubcommand not in subcommands:
|
||||||
|
|
|
@ -77,7 +77,8 @@ server_silenceEnd = 92
|
||||||
server_userSilenced = 94
|
server_userSilenced = 94
|
||||||
server_userPresenceBundle = 96
|
server_userPresenceBundle = 96
|
||||||
client_userPanelRequest = 97
|
client_userPanelRequest = 97
|
||||||
client_tournamentMatchInfoRequest = 93
|
client_tournamentMatchInfoRequest = 937
|
||||||
|
server_matchAbort = 106
|
||||||
server_switchServer = 107
|
server_switchServer = 107
|
||||||
client_tournamentJoinMatchChannel = 108
|
client_tournamentJoinMatchChannel = 108
|
||||||
client_tournamentLeaveMatchChannel = 109
|
client_tournamentLeaveMatchChannel = 109
|
|
@ -264,6 +264,9 @@ def playerFailed(slotID):
|
||||||
def matchTransferHost():
|
def matchTransferHost():
|
||||||
return packetHelper.buildPacket(packetIDs.server_matchTransferHost)
|
return packetHelper.buildPacket(packetIDs.server_matchTransferHost)
|
||||||
|
|
||||||
|
def matchAbort():
|
||||||
|
return packetHelper.buildPacket(packetIDs.server_matchAbort)
|
||||||
|
|
||||||
def switchServer(address):
|
def switchServer(address):
|
||||||
return packetHelper.buildPacket(packetIDs.server_switchServer, [[address, dataTypes.STRING]])
|
return packetHelper.buildPacket(packetIDs.server_switchServer, [[address, dataTypes.STRING]])
|
||||||
|
|
||||||
|
|
|
@ -396,13 +396,7 @@ class match:
|
||||||
self.inProgress = False
|
self.inProgress = False
|
||||||
|
|
||||||
# Reset slots
|
# Reset slots
|
||||||
for i in range(0,16):
|
self.resetSlotsReady()
|
||||||
if self.slots[i].user is not None and self.slots[i].status == slotStatuses.PLAYING:
|
|
||||||
self.slots[i].status = slotStatuses.NOT_READY
|
|
||||||
self.slots[i].loaded = False
|
|
||||||
self.slots[i].skip = False
|
|
||||||
self.slots[i].complete = False
|
|
||||||
self.slots[i].score = 0
|
|
||||||
|
|
||||||
# Send match update
|
# Send match update
|
||||||
self.sendUpdates()
|
self.sendUpdates()
|
||||||
|
@ -417,6 +411,15 @@ class match:
|
||||||
# Console output
|
# Console output
|
||||||
log.info("MPROOM{}: Match completed".format(self.matchID))
|
log.info("MPROOM{}: Match completed".format(self.matchID))
|
||||||
|
|
||||||
|
def resetSlotsReady(self):
|
||||||
|
for i in range(0,16):
|
||||||
|
if self.slots[i].user is not None and self.slots[i].status == slotStatuses.PLAYING:
|
||||||
|
self.slots[i].status = slotStatuses.NOT_READY
|
||||||
|
self.slots[i].loaded = False
|
||||||
|
self.slots[i].skip = False
|
||||||
|
self.slots[i].complete = False
|
||||||
|
self.slots[i].score = 0
|
||||||
|
|
||||||
def getUserSlotID(self, userID):
|
def getUserSlotID(self, userID):
|
||||||
"""
|
"""
|
||||||
Get slot ID occupied by userID
|
Get slot ID occupied by userID
|
||||||
|
@ -726,7 +729,7 @@ class match:
|
||||||
glob.streams.add(self.playingStreamName)
|
glob.streams.add(self.playingStreamName)
|
||||||
|
|
||||||
# Change inProgress value
|
# Change inProgress value
|
||||||
match.inProgress = True
|
self.inProgress = True
|
||||||
|
|
||||||
# Set playing to ready players and set load, skip and complete to False
|
# Set playing to ready players and set load, skip and complete to False
|
||||||
# Make clients join playing stream
|
# Make clients join playing stream
|
||||||
|
@ -752,3 +755,16 @@ class match:
|
||||||
for i in range(matchSize, 16):
|
for i in range(matchSize, 16):
|
||||||
if self.slots[i].status != slotStatuses.LOCKED:
|
if self.slots[i].status != slotStatuses.LOCKED:
|
||||||
self.toggleSlotLocked(i)
|
self.toggleSlotLocked(i)
|
||||||
|
|
||||||
|
def abort(self):
|
||||||
|
if not self.inProgress:
|
||||||
|
log.warning("MPROOM{}: Match is not in progress!".format(self.matchID))
|
||||||
|
return
|
||||||
|
self.inProgress = False
|
||||||
|
self.isStarting = False
|
||||||
|
self.resetSlotsReady()
|
||||||
|
self.sendUpdates()
|
||||||
|
glob.streams.broadcast(self.playingStreamName, serverPackets.matchAbort())
|
||||||
|
glob.streams.dispose(self.playingStreamName)
|
||||||
|
glob.streams.remove(self.playingStreamName)
|
||||||
|
log.info("MPROOM{}: Match aborted".format(self.matchID))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user