partial matches work with !game/!fgame, also using !fgame on an invalid roleset will no longer reset it to default

This commit is contained in:
jacob1 2014-11-28 22:41:03 -05:00
parent c964b556de
commit 788707ffb1

View File

@ -5942,21 +5942,32 @@ def game(cli, nick, chan, rest):
return
if rest:
roleset = rest.split(' ')[0]
roleset = rest.lower().split()[0]
else:
rolesets = ", ".join(["\002{}\002".format(roleset) if len(var.list_players()) in range(var.GAME_MODES[roleset][1],
var.GAME_MODES[roleset][2]+1) else roleset for roleset in var.GAME_MODES.keys() if var.GAME_MODES[roleset][3] > 0])
cli.notice(nick, "No roleset specified. Available rolesets: " + rolesets)
return
if roleset in var.GAME_MODES.keys():
if var.GAME_MODES[roleset][3] > 0:
var.ROLESET_VOTES[cloak] = roleset
cli.msg(chan, "\002{0}\002 votes for the \002{1}\002 roleset.".format(nick, roleset))
if roleset not in var.GAME_MODES.keys():
#players can vote by only using partial name
matches = 0
possibleroleset = roleset
for gamemode in var.GAME_MODES.keys():
if gamemode.startswith(roleset) and var.GAME_MODES[gamemode][3] > 0:
possibleroleset = gamemode
matches += 1
if matches != 1:
cli.notice(nick, "\002{0}\002 isn't a valid roleset.".format(roleset))
return
else:
cli.notice(nick, "You can't vote for that roleset.")
roleset = possibleroleset
if var.GAME_MODES[roleset][3] > 0:
var.ROLESET_VOTES[cloak] = roleset
cli.msg(chan, "\002{0}\002 votes for the \002{1}\002 roleset.".format(nick, roleset))
else:
cli.notice(nick, "\002{0}\002 isn't a valid roleset.".format(roleset))
cli.notice(nick, "You can't vote for that roleset.")
def game_help(args=''):
return "Votes to make a specific roleset more likely. Available game mode setters: " +\
@ -6116,14 +6127,25 @@ if botconfig.DEBUG_MODE or botconfig.ALLOWED_NORMAL_MODE_COMMANDS:
cli.notice(nick, 'You\'re currently not playing.')
return
rest = rest.strip().lower()
if rest:
if cgamemode(cli, rest):
rest = roleset = rest.lower().split()[0]
if rest not in var.GAME_MODES.keys():
#players can vote by only using partial name
matches = 0
for gamemode in var.GAME_MODES.keys():
if gamemode.startswith(rest):
roleset = gamemode
matches += 1
if matches != 1:
cli.notice(nick, "\002{0}\002 isn't a valid roleset.".format(rest))
return
if cgamemode(cli, roleset):
cli.msg(chan, ('\u0002{}\u0002 has changed the game settings '
'successfully.').format(nick))
var.FGAMED = True
else:
cli.notice(nick, fgame.__doc__())
def fgame_help(args=''):
args = args.strip()