From 4fd0126d6dd2254a43436045db855393b8bb6ad3 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Wed, 14 Feb 2007 15:22:33 +0000 Subject: [PATCH] lart pluing: use plugin.map instead of plugin.register --- data/rbot/plugins/lart.rb | 109 +++++++++++++------------------------- 1 file changed, 36 insertions(+), 73 deletions(-) diff --git a/data/rbot/plugins/lart.rb b/data/rbot/plugins/lart.rb index 2f470c96..9b627fc5 100644 --- a/data/rbot/plugins/lart.rb +++ b/data/rbot/plugins/lart.rb @@ -22,20 +22,6 @@ class LartPlugin < Plugin - # Keep a 1:1 relation between commands and handlers - @@handlers = { - "lart" => "handle_lart", - "praise" => "handle_praise", - "addlart" => "handle_addlart", - "rmlart" => "handle_rmlart", - "addpraise" => "handle_addpraise", - "rmpraise" => "handle_rmpraise" - } - - def name - "lart" - end - def initialize @larts = Array.new @praises = Array.new @@ -79,9 +65,6 @@ class LartPlugin < Plugin @changed = false end - def cleanup - end - def save return unless @changed Dir.mkdir("#{@bot.botclass}/lart") if not FileTest.directory? "#{@bot.botclass}/lart" @@ -95,89 +78,67 @@ class LartPlugin < Plugin @changed = false end - def privmsg(m) - if not m.params - m.reply "What a crazy fool! Did you mean |help stats?" - return - end - - meth = self.method(@@handlers[m.plugin]) - meth.call(m) if(@bot.auth.allow?(m.plugin, m.source, m.replyto)) - end - def help(plugin, topic="") "Lart: The lart plugin allows you to lart/praise someone in the channel. You can also add new larts and new praises as well as delete them. For the curious, LART is an acronym for Luser Attitude Readjustment Tool. Usage: lart [] -- larts for . praise [] -- praises for . [add|rm][lart|praise] -- Add or remove a lart or praise." end - # The following are command handler - - def handle_lart(m) - for_idx = m.params =~ /\s+\bfor\b/ - if for_idx - nick = m.params[0, for_idx] - else - nick = m.params - end + def handle_lart(m, params) lart = @larts[get_msg_idx(@larts.length)] - if lart == nil + if not lart m.reply "I dunno any larts" return end - if nick == @bot.nick - lart = replace_who lart, m.sourcenick - lart << " for trying to make me lart myself" - else - lart = replace_who lart, nick - lart << m.params[for_idx, m.params.length] if for_idx + who = params[:who].to_s + reason = params[:why] + if who == @bot.nick + who = m.sourcenick + reason = "for trying to make me lart myself" end + lart = replace_who lart, who + lart << " #{reason}" unless reason.empty? - @bot.action m.replyto, lart + m.act lart end - def handle_praise(m) - for_idx = m.params =~ /\s+\bfor\b/ - if for_idx - nick = m.params[0, for_idx] - else - nick = m.params - end + def handle_praise(m, params) praise = @praises[get_msg_idx(@praises.length)] if not praise m.reply "I dunno any praises" return end - - if nick == m.sourcenick - praise = @larts[get_msg_idx(@larts.length)] - praise = replace_who praise, nick - else - praise = replace_who praise, nick - praise << m.params.gsub("#{nick}", "") + who = params[:who].to_s + reason = params[:why] + if who == m.sourcenick + params[:why] = "for praising himself" + handle_lart(m, params) + return end + praise = replace_who praise, who + praise << " #{reason}" unless reason.empty? - @bot.action m.replyto, praise + m.act praise end - def handle_addlart(m) - @larts << m.params + def handle_addlart(m, params) + @larts << params[:lart] @changed = true m.okay end - def handle_rmlart(m) - @larts.delete m.params + def handle_rmlart(m, params) + @larts.delete params[:lart] @changed = true m.okay end - def handle_addpraise(m) - @praises << m.params + def handle_addpraise(m, params) + @praises << params[:praise] @changed = true m.okay end - def handle_rmpraise(m) - @praises.delete m.params + def handle_rmpraise(m, params) + @praises.delete params[:praise] @changed = true m.okay end @@ -192,12 +153,14 @@ class LartPlugin < Plugin end end + plugin = LartPlugin.new -plugin.register("lart") -plugin.register("praise") -plugin.register("addlart") -plugin.register("addpraise") +plugin.map "lart *who [*why]", :requirements => { :why => /(?:for|because)\s+.*/ }, :action => :handle_lart +plugin.map "praise *who [*why]", :requirements => { :why => /(?:for|because)\s+.*/ }, :action => :handle_praise + +plugin.map "addlart *lart", :action => :handle_addlart +plugin.map "addpraise *praise", :action => :handle_addpraise -plugin.register("rmlart") -plugin.register("rmpraise") +plugin.map "rmlart *lart", :action => :handle_rmlart +plugin.map "rmpraise *praise", :action => :handle_rmpraise -- 2.39.2