@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])
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)
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