]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
+ ModeChangeMessage class
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 12 Apr 2008 22:53:56 +0000 (00:53 +0200)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 12 Apr 2008 22:53:56 +0000 (00:53 +0200)
lib/rbot/ircbot.rb
lib/rbot/message.rb
lib/rbot/plugins.rb

index 3d20b71df3c4578d77395e02f49306e65661863f..0286ed1b0359d6260428f2d916b1729bf509734e 100644 (file)
@@ -638,7 +638,10 @@ class Bot
       @plugins.irc_delegate("quit", m)
     }
     @client[:mode] = proc {|data|
+      m = ModeChangeMessage.new(self, server, data[:source], data[:channel], data[:modestring])
+      m.modes = data[:modes]
       irclog "@ Mode #{data[:modestring]} by #{data[:source]}", data[:channel]
+      @plugins.delegate "modechange", m
     }
     @client[:join] = proc {|data|
       m = JoinMessage.new(self, server, data[:source], data[:channel], data[:message])
index 616bef286e1ee9521febac7af1833093a11d9dbe..b3a8eb3bccbbf295f09656fff01515aa9d654634 100644 (file)
@@ -462,6 +462,16 @@ module Irc
     end
   end
 
+  # class to manage mode changes
+  class ModeChangeMessage < BasicUserMessage
+    attr_accessor :modes
+    def initialize(bot, server, source, channel, message="")
+      super(bot, server, source, channel, message)
+      @address = (source == @bot.myself)
+      @modes = []
+    end
+  end
+
   class QuitMessage < BasicUserMessage
     def initialize(bot, server, source, target, message="")
       super(bot, server, source, target, message)
index 631984c14a85147371f9797bdd718fd777b3f180..7f6db9bd98d825452bba901557bb3c34d5333c6e 100644 (file)
@@ -118,6 +118,8 @@ module Plugins
 
   nick(NickMessage)::
                          Called when a user (or the bot) changes Nick
+  modechange(ModeChangeMessage)::
+                         Called when a User or Channel mode is changed
   topic(TopicMessage)::
                          Called when a user (or the bot) changes a channel
                          topic