Add !mp team

This commit is contained in:
Giuseppe Guerra 2017-08-07 23:21:49 +02:00
parent ce889e608a
commit 3bb1029832
2 changed files with 25 additions and 3 deletions

View File

@ -10,7 +10,7 @@ from common import generalUtils
from common.constants import mods from common.constants import mods
from common.log import logUtils as log from common.log import logUtils as log
from common.ripple import userUtils from common.ripple import userUtils
from constants import exceptions, slotStatuses, matchModModes from constants import exceptions, slotStatuses, matchModModes, matchTeams
from common.constants import gameModes from common.constants import gameModes
from common.constants import privileges from common.constants import privileges
from constants import serverPackets from constants import serverPackets
@ -994,6 +994,22 @@ def multiplayer(fro, chan, message):
_match.matchModMode = matchModModes.FREE_MOD if freeMod else matchModModes.NORMAL _match.matchModMode = matchModModes.FREE_MOD if freeMod else matchModModes.NORMAL
_match.changeMods(newMods) _match.changeMods(newMods)
return "Match mods have been updated!"
def mpTeam():
if len(message) < 3:
raise exceptions.invalidArgumentsException("Wrong syntax: !mp team <username> <colour>")
username = message[1]
colour = message[2].lower().strip()
if colour not in ["red", "blue"]:
raise exceptions.invalidArgumentsException("Team colour must be red or blue")
userID = userUtils.getIDSafe(username)
if userID is None:
raise exceptions.userNotFoundException("No such user")
_match = glob.matches.matches[getMatchIDFromChannel(chan)]
_match.changeTeam(userID, matchTeams.BLUE if colour == "blue" else matchTeams.RED)
return "{} is now in {} team".format(username, colour)
try: try:
subcommands = { subcommands = {
@ -1015,6 +1031,7 @@ def multiplayer(fro, chan, message):
"password": mpPassword, "password": mpPassword,
"randompassword": mpRandomPassword, "randompassword": mpRandomPassword,
"mods": mpMods, "mods": mpMods,
"team": mpTeam,
} }
requestedSubcommand = message[0].lower().strip() requestedSubcommand = message[0].lower().strip()
if requestedSubcommand not in subcommands: if requestedSubcommand not in subcommands:

View File

@ -652,13 +652,17 @@ class match:
c+=1 c+=1
return c return c
def changeTeam(self, userID): def changeTeam(self, userID, newTeam=None):
""" """
Change userID's team Change userID's team
:param userID: id of user :param userID: id of user
:return: :return:
""" """
# Make sure this match's mode has teams
if self.matchTeamType != matchTeamTypes.TEAM_VS or self.matchTeamType != matchTeamTypes.TAG_TEAM_VS:
return
# Make sure the match is not locked # Make sure the match is not locked
if self.isLocked or self.isStarting: if self.isLocked or self.isStarting:
return return
@ -669,6 +673,7 @@ class match:
return return
# Update slot and send update # Update slot and send update
if newTeam is None:
newTeam = matchTeams.BLUE if self.slots[slotID].team == matchTeams.RED else matchTeams.RED newTeam = matchTeams.BLUE if self.slots[slotID].team == matchTeams.RED else matchTeams.RED
self.setSlot(slotID, None, newTeam) self.setSlot(slotID, None, newTeam)
self.sendUpdates() self.sendUpdates()