]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - data/rbot/plugins/autoop.rb
AutoOp now triggers on nick change too
[user/henk/code/ruby/rbot.git] / data / rbot / plugins / autoop.rb
index 5f416e41ee31db953c4aee5871eb5c880cac506b..a47375ca69d00e6ae5ccf096d07a4b1f961fdfa0 100644 (file)
@@ -14,6 +14,24 @@ class AutoOP < Plugin
       }
     end
 
+    def nick(m)
+      return if m.address?
+      is_on = m.server.channels.inject(ChannelList.new) { |list, ch|
+        list << ch if ch.users.include?(m.source)
+        list
+      }
+      is_on.each { |channel|
+        ch = channel.to_s
+        @registry.each { |mask,channels|
+          if m.source.matches?(mask.to_irc_netmask(:server => m.server)) &&
+            (channels.empty? || channels.include?(ch))
+            @bot.mode(ch, "+o", m.source.nick)
+            return
+          end
+        }
+      }
+    end
+
     def add(m, params)
       @registry[params[:mask]] = params[:channels].dup
       m.okay