]> jfr.im git - irc/freenode/Sigyn.git/commitdiff
reset user presence duration to 0 in moderated channel when voiced
authorNicolas Coevoet <redacted>
Mon, 22 Feb 2016 15:07:32 +0000 (15:07 +0000)
committerNicolas Coevoet <redacted>
Mon, 22 Feb 2016 15:07:32 +0000 (15:07 +0000)
plugin.py

index 91ec0b91f318a81e4af10fc35caa34a3ccf8a61d..86007bb71e576e70ddf3450aa9cd7842c10b464b 100644 (file)
--- a/plugin.py
+++ b/plugin.py
@@ -754,6 +754,19 @@ class Sigyn(callbacks.Plugin,plugins.ChannelDBHandler):
                     i.opered = False
                     if len(self.registryValue('operatorNick')) and len(self.registryValue('operatorPassword')):
                         irc.queueMsg(ircmsgs.IrcMsg('OPER %s %s' % (self.registryValue('operatorNick'),self.registryValue('operatorPassword'))))
+        elif target in irc.state.channels and 'm' in irc.state.channels[target].modes:
+            modes = ircutils.separateModes(msg.args[1:])
+            for change in modes:
+                (mode,value) = change
+                if mode == '+v':
+                    chan = self.getChan(irc,target)
+                    if value in chan.nicks:
+                        a = chan.nicks[value]
+                        if len(a) == 5:
+                            chan.nicks[msg.nick] = [time.time(),a[1],a[2],a[3],a[4]]
+                        else:
+                            chan.nicks[msg.nick] = [time.time(),a[1],a[2],'','']
+                       
 
     def getIrc (self,irc):
         if not irc.network in self._ircs: