X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=lib%2Frbot%2Fmessage.rb;h=3292cb8323a1f9aad8c638c25a69059002a40fda;hb=12906a51f698aebe1c9a5e19b15555ebbbcc4368;hp=f1293e787a1d1e4878f7945e34a083228fed3e6c;hpb=41b34863e2064ff7e04c5886277da21abb52e349;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git
diff --git a/lib/rbot/message.rb b/lib/rbot/message.rb
index f1293e78..3292cb83 100644
--- a/lib/rbot/message.rb
+++ b/lib/rbot/message.rb
@@ -14,10 +14,11 @@ module Irc
:desc => "when replying with nick put this character after the nick of the user the bot is replying to"
)
- Color = "\003"
Bold = "\002"
Underline = "\037"
Reverse = "\026"
+ Color = "\003"
+ ColorRx = /#{Color}\d\d?(?:,\d\d?)?/
# base user message class, all user messages derive from this
# (a user message is defined as having a source hostmask, a target
@@ -64,8 +65,8 @@ module Irc
@server = server
@identified = false
- if @msg_wants_id && @server.capabilities["identify-msg".to_sym]
- if @message =~ /([-+])(.*)/
+ if @msg_wants_id && @server.capabilities[:"identify-msg"]
+ if @message =~ /^([-+])(.*)/
@identified = ($1=="+")
@message = $2
else
@@ -112,7 +113,7 @@ module Irc
# strip mIRC colour escapes from a string
def BasicUserMessage.stripcolour(string)
return "" unless string
- ret = string.gsub(/\cC\d\d?(?:,\d\d?)?/, "")
+ ret = string.gsub(ColorRx, "")
#ret.tr!("\x00-\x1f", "")
ret
end
@@ -214,27 +215,27 @@ module Irc
# @bot.say m.replyto, string
# So if the message is private, it will reply to the user. If it was
# in a channel, it will reply in the channel.
- def plainreply(string)
- @bot.say @replyto, string
+ def plainreply(string, options={})
+ @bot.say @replyto, string, options
@replied = true
end
# Same as reply, but when replying in public it adds the nick of the user
# the bot is replying to
- def nickreply(string)
+ def nickreply(string, options={})
extra = self.public? ? "#{@source}#{@bot.config['core.nick_postfix']} " : ""
- @bot.say @replyto, extra + string
+ @bot.say @replyto, extra + string, options
@replied = true
end
# the default reply style is to nickreply unless the reply already contains
# the nick or core.reply_with_nick is set to false
#
- def reply(string)
+ def reply(string, options={})
if @bot.config['core.reply_with_nick'] and not string =~ /\b#{@source}\b/
- return nickreply(string)
+ return nickreply(string, options)
end
- plainreply(string)
+ plainreply(string, options)
end
# convenience method to reply to a message with an action. It's the
@@ -242,8 +243,8 @@ module Irc
# @bot.action m.replyto, string
# So if the message is private, it will reply to the user. If it was
# in a channel, it will reply in the channel.
- def act(string)
- @bot.action @replyto, string
+ def act(string, options={})
+ @bot.action @replyto, string, options
@replied = true
end
@@ -267,7 +268,10 @@ module Irc
# the default okay style is the same as the default reply style
#
def okay
- self.reply @bot.lang.get("okay")
+ if @bot.config['core.reply_with_nick']
+ return nickokay
+ end
+ plainokay
end
end