Allow !vote to be restricted to voiced-and-above users

This commit is contained in:
jesopo 2019-10-25 14:21:30 +01:00
parent 226ebe1f1f
commit b23cc1e1bd

View file

@ -14,6 +14,8 @@ class VoteCastResult(enum.Enum):
@utils.export("channelset", utils.BoolSetting("votes-start-restricted", @utils.export("channelset", utils.BoolSetting("votes-start-restricted",
"Whether starting a vote should be restricted to ops")) "Whether starting a vote should be restricted to ops"))
@utils.export("channelset", utils.BoolSetting("votes-cast-restricted",
"Whether casting a vote should be restricted to voiced-and-above users"))
class Module(ModuleManager.BaseModule): class Module(ModuleManager.BaseModule):
def _get_vote(self, channel, vote_id): def _get_vote(self, channel, vote_id):
return channel.get_setting("vote-%s" % vote_id, None) return channel.get_setting("vote-%s" % vote_id, None)
@ -111,9 +113,14 @@ class Module(ModuleManager.BaseModule):
@utils.hook("received.command.vote", channel_only=True, min_args=1) @utils.hook("received.command.vote", channel_only=True, min_args=1)
def vote(self, event): def vote(self, event):
""" """
:help: Vote in the channel's current vote :help: Cast choice for a given vote
:usage: <id> [choice] :usage: <id> [choice]
""" """
if event["target"].get_setting("votes-scast-restricted", True):
event["check_assert"](utils.Check("channel-mode", "v")|
utils.Check("permission", "vote")|
utils.Check("channel-access", "vote"))
vote_id = event["args_split"][0] vote_id = event["args_split"][0]
vote = self._get_vote(event["target"], vote_id) vote = self._get_vote(event["target"], vote_id)
if vote == None: if vote == None: