summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--data/rbot/plugins/keywords.rb4
-rw-r--r--lib/rbot/ircbot.rb3
-rw-r--r--lib/rbot/plugins.rb5
4 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5d3a7258..4655e5ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-02-15 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Plugin: new unreplied() method to handle PRIVMSGs which have not
+ been replied to.
+
2007-02-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
* Remote Service Provider: from an idea by halorgium <rbot@spork.in>,
diff --git a/data/rbot/plugins/keywords.rb b/data/rbot/plugins/keywords.rb
index 0c1b3526..855bfe6a 100644
--- a/data/rbot/plugins/keywords.rb
+++ b/data/rbot/plugins/keywords.rb
@@ -489,8 +489,8 @@ class Keywords < Plugin
end
end
- def listen(m)
- return if m.address?
+ def unreplied(m)
+ # return if m.address?
# in channel message, not to me
# TODO option to do if(m.message =~ /^(.*)$/, ie try any line as a
# keyword lookup.
diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb
index ed435fb4..0ef6b1de 100644
--- a/lib/rbot/ircbot.rb
+++ b/lib/rbot/ircbot.rb
@@ -498,6 +498,9 @@ class IrcBot
unless ignored
@plugins.delegate "listen", m
@plugins.privmsg(m) if m.address?
+ if not m.replied
+ @plugins.delegate "unreplied", m
+ end
end
}
@client[:notice] = proc { |data|
diff --git a/lib/rbot/plugins.rb b/lib/rbot/plugins.rb
index 564495e0..e101e627 100644
--- a/lib/rbot/plugins.rb
+++ b/lib/rbot/plugins.rb
@@ -61,11 +61,14 @@ module Plugins
etc.
privmsg(PrivMessage)::
- called for a PRIVMSG if the first word matches one
+ Called for a PRIVMSG if the first word matches one
the plugin register()d for. Use m.plugin to get
that word and m.params for the rest of the message,
if applicable.
+ unreplied(PrivMessage)::
+ Called for a PRIVMSG which has not been replied to.
+
kick(KickMessage)::
Called when a user (or the bot) is kicked from a
channel the bot is in.