Fix !game and !lynch to not display the same vote twice

Players may no longer vote-spam individual players (or mistakenly vote
the same person/game mode twice)
This commit is contained in:
Vgr E. Barry 2015-10-13 16:46:21 -04:00
parent 4befeef033
commit 45d13846a1

View File

@ -4581,17 +4581,20 @@ def lynch(cli, nick, chan, rest):
lcandidates = list(var.VOTES.keys())
for voters in lcandidates: # remove previous vote
if voters == voted and nick in var.VOTES[voters]:
break
if nick in var.VOTES[voters]:
var.VOTES[voters].remove(nick)
if not var.VOTES.get(voters) and voters != voted:
del var.VOTES[voters]
break
if voted not in var.VOTES.keys():
var.VOTES[voted] = [nick]
else:
var.VOTES[voted] = []
if nick not in var.VOTES[voted]:
var.VOTES[voted].append(nick)
cli.msg(chan, ("\u0002{0}\u0002 votes for "+
"\u0002{1}\u0002.").format(nick, voted))
cli.msg(chan, ("\u0002{0}\u0002 votes for "+
"\u0002{1}\u0002.").format(nick, voted))
var.LAST_VOTES = None # reset
@ -8267,8 +8270,9 @@ def game(cli, nick, chan, rest):
gamemode = match
if gamemode != "roles":
var.GAMEMODE_VOTES[nick] = gamemode
cli.msg(chan, "\u0002{0}\u0002 votes for the \u0002{1}\u0002 game mode.".format(nick, gamemode))
if var.GAMEMODE_VOTES.get(nick) != gamemode:
var.GAMEMODE_VOTES[nick] = gamemode
cli.msg(chan, "\u0002{0}\u0002 votes for the \u0002{1}\u0002 game mode.".format(nick, gamemode))
else:
cli.notice(nick, "You can't vote for that game mode.")