X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Finsult.rb;h=c79170c4807238038ee2ac3581d4de391cac804a;hb=8b811d21babf8f9e5a10a953b595d55ebd08820d;hp=f610efc0cb2524866eab2cd7c0654d29dad09efc;hpb=1b365e5063f49c88d4d15832f08345975b16e397;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/insult.rb b/data/rbot/plugins/insult.rb index f610efc0..c79170c4 100644 --- a/data/rbot/plugins/insult.rb +++ b/data/rbot/plugins/insult.rb @@ -134,7 +134,7 @@ class InsultPlugin < Plugin ] ## -# Amounts +# Amounts ## @@amt = [ "accumulation", @@ -206,57 +206,56 @@ class InsultPlugin < Plugin "cold sores", "anal warts", ] - + def help(plugin, topic="") - if(plugin == "insult") - return "insult me| => insult you or " - elsif(plugin == "msginsult") - return "msginsult => insult via /msg" - else - return "insult module topics: msginsult, insult" - end + return "[msg]insult me| => insult you or . msginsult insults in private" end - def privmsg(m) - suffix="" - unless(m.params) - m.reply "incorrect usage: " + help(m.plugin) - return - end - msgto = m.channel - if(m.plugin =~ /^msginsult$/) - prefix = "you are " - if (m.params =~ /^#/) - prefix += "all " - end - msgto = m.params - suffix = " (from #{m.sourcenick})" - elsif(m.params =~ /^me$/) + + def insult(m, params) + who = params[:who] + who = m.sourcenick if ["me", @bot.nick].include?(who) + + priv = params[:priv] || m.plugin == "msginsult" + + case who + when /^#/ + prefix = "you are all " + when m.sourcenick prefix = "you are " else - who = m.params - if (who == @bot.nick) - who = m.sourcenick - end - prefix = "#{who} is " + prefix = priv ? "you are " : "#{who} is " end + + suffix = "" + + if priv + msgto = who + suffix = " (from #{m.sourcenick})" unless who == m.sourcenick + else + msgto = m.channel + end + msgto = m.source.to_s if not msgto + insult = generate_insult @bot.say msgto, prefix + insult + suffix end + def generate_insult - adj = @@adj[rand(@@adj.length)] + adj = @@adj.pick_one adj2 = "" loop do - adj2 = @@adj[rand(@@adj.length)] + adj2 = @@adj.pick_one break if adj2 != adj end - amt = @@amt[rand(@@amt.length)] - noun = @@noun[rand(@@noun.length)] + amt = @@amt.pick_one + noun = @@noun.pick_one start = "a " - start = "an " if ['a','e','i','o','u'].include?(adj[0].chr) + start = "an " if ['a','e','i','o','u'].include?(adj[0,1]) "#{start}#{adj} #{amt} of #{adj2} #{noun}" end end + plugin = InsultPlugin.new -plugin.register("insult") -plugin.register("msginsult") +plugin.map "insult :who [:priv]", :action => :insult, :requirements => { :priv => /in private/ } +plugin.map "msginsult :who", :action => :insult