Set duck_lines to -1 when a duck is waiting to quack - do not allow bef/trap

closes #177
This commit is contained in:
jesopo 2019-10-15 10:32:56 +01:00
parent aa3906dfa3
commit 124fc4fc42

View file

@ -32,13 +32,15 @@ class Module(ModuleManager.BaseModule):
ducks_enabled = channel.get_setting("ducks-enabled", False)
if ducks_enabled and not channel.duck_active:
if (ducks_enabled and
not channel.duck_active and
not channel.duck_lines == -1):
channel.duck_lines += 1
min_lines = channel.get_setting("ducks-min-messages",
DEFAULT_MIN_MESSAGES)
if channel.duck_lines >= min_lines:
show_duck = random.SystemRandom().randint(1, 20) == 1
show_duck = random.SystemRandom().randint(1, 2) == 1
if show_duck:
self._trigger_duck(channel)
@ -52,13 +54,15 @@ class Module(ModuleManager.BaseModule):
self._activity(event["target"])
def _trigger_duck(self, channel):
channel.duck_lines = 0
channel.duck_lines = -1
delay = random.SystemRandom().randint(5, 20)
channel.duck_active = time.time()+delay
self.timers.add("duck", self._send_duck, delay, channel=channel)
def _send_duck(self, timer):
timer.kwargs["channel"].send_message(DUCK)
channel = timer.kwargs["channel"]
channel.duck_active = time.time()
channel.duck_lines = 0
channel.send_message(DUCK)
def _duck_action(self, channel, user, action, setting):
duck_timestamp = channel.duck_active