# Convert a String or Symbol into a color number
def Irc.find_color(data)
- if Integer === data
+ "%02d" % if Integer === data
data
else
f = if String === data
def Irc.color(fg=nil,bg=nil)
str = Color.dup
if fg
- str << Irc.find_color(fg).to_s
+ str << Irc.find_color(fg)
end
if bg
- str << "," << Irc.find_color(bg).to_s
+ str << "," << Irc.find_color(bg)
end
return str
end
# has the message been replied to/handled by a plugin?
attr_accessor :replied
+ # should the message be ignored?
+ attr_accessor :ignored
+ alias :ignored? :ignored
+
# instantiate a new Message
# bot:: associated bot class
# server:: Server where the message took place
@message = BasicUserMessage.stripcolour message
@replied = false
@server = server
+ @ignored = false
@identified = false
if @msg_wants_id && @server.capabilities[:"identify-msg"]
end
+ # class for handling welcome messages from the server
+ class WelcomeMessage < BasicUserMessage
+ end
+
+ # class for handling MOTD from the server. Yes, MotdMessage
+ # is somewhat redundant, but it fits with the naming scheme
+ class MotdMessage < BasicUserMessage
+ end
+
# class for handling IRC user messages. Includes some utilities for handling
# the message, for example in plugins.
# The +message+ member will have any bot addressing "^bot: " removed
# class to pass IRC Nick changes in. @message contains the old nickame,
# @sourcenick contains the new one.
class NickMessage < BasicUserMessage
+ attr_accessor :is_on
def initialize(bot, server, source, oldnick, newnick)
super(bot, server, source, oldnick, newnick)
+ @is_on = []
end
def oldnick
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
+ 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
+ end
+
class QuitMessage < BasicUserMessage
+ attr_accessor :was_on
def initialize(bot, server, source, target, message="")
super(bot, server, source, target, message)
+ @was_on = []
end
end
# topic set on channel
attr_reader :channel
+ # :info if topic info, :set if topic set
+ attr_accessor :info_or_set
def initialize(bot, server, source, channel, topic=ChannelTopic.new)
super(bot, server, source, channel, topic.text)
@topic = topic
@timestamp = topic.set_on
@channel = channel
+ @info_or_set = nil
end
end
# same as a join, but can have a message too
class PartMessage < JoinMessage
end
+
+ class UnknownMessage < BasicUserMessage
+ end
end