From 45d13846a12d9db9b5f9194c321b8367e6db4ad2 Mon Sep 17 00:00:00 2001 From: "Vgr E. Barry" Date: Tue, 13 Oct 2015 16:46:21 -0400 Subject: [PATCH] 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) --- src/wolfgame.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/wolfgame.py b/src/wolfgame.py index 7696c3e..bcd935b 100644 --- a/src/wolfgame.py +++ b/src/wolfgame.py @@ -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.")