+ attr_accessor :is_on
+ def initialize(bot, server, source, oldnick, newnick)
+ super(bot, server, source, oldnick, newnick)
+ @address = (source == @bot.myself)
+ @is_on = []
+ end
+
+ def oldnick
+ return @target
+ end
+
+ def newnick
+ return @message
+ end
+
+ def inspect
+ fields = ' old=' << oldnick
+ fields << ' new=' << newnick
+ super(fields)
+ end
+ end
+
+ # class to manage mode changes
+ class ModeChangeMessage < BasicUserMessage
+ attr_accessor :modes
+ def initialize(bot, server, source, target, message="")
+ super(bot, server, source, target, message)
+ @address = (source == @bot.myself)
+ @modes = []
+ end
+
+ def inspect
+ fields = ' modes=' << modes.inspect
+ super(fields)
+ end
+ end
+
+ # class to manage WHOIS replies
+ class WhoisMessage < BasicUserMessage
+ attr_reader :whois
+ def initialize(bot, server, source, target, whois)
+ super(bot, server, source, target, "")
+ @address = (target == @bot.myself)
+ @whois = whois
+ end
+
+ def inspect
+ fields = ' whois=' << whois.inspect
+ super(fields)
+ end
+ end
+
+ # class to manage LIST replies
+ class ListMessage < BasicUserMessage
+ attr_accessor :list
+ def initialize(bot, server, source, target, list=Hash.new)
+ super(bot, server, source, target, "")
+ @list = []
+ end
+
+ def inspect
+ fields = ' list=' << list.inspect
+ super(fields)
+ end
+ end
+
+
+ # class to manage NAME replies
+ class NamesMessage < BasicUserMessage
+ attr_accessor :users
+ def initialize(bot, server, source, target, message="")
+ super(bot, server, source, target, message)
+ @users = []
+ end
+
+ def inspect
+ fields = ' users=' << users.inspect
+ super(fields)
+ end
+ end
+
+ # class to manager Ban list replies
+ class BanlistMessage < BasicUserMessage
+ # the bans
+ attr_accessor :bans
+
+ def initialize(bot, server, source, target, message="")
+ super(bot, server, source, target, message)
+ @bans = []
+ end
+
+ def inspect
+ fields = ' bans=' << bans.inspect
+ super(fields)